Skip to main content

GitHub.com からの移行データのエクスポート

API を使用して移行するリポジトリを選択し、GitHub Enterprise Server インスタンスにインポートできる移行アーカイブを生成することで、GitHub.com 上の Organization から移行データをエクスポートできます。

この記事の内容

GitHub

でソース Organization を準備する

  1. ソース Organization のリポジトリに対する所有者のアクセス許可があることを確認します。

  2. GitHub.com上の repo および admin:org スコープを使用してアクセス トークンを生成する

  3. ダウンタイムを最小化するには、ソースインスタンスからエクスポートしたいリポジトリのリストを作成してください。 各行にそれぞれのリポジトリのURLをリストアップしたテキストファイルを使えば、複数のリポジトリをエクスポートに一度に追加できます。

組織のリポジトリのエクスポート

メモ

移行後は、フォークのリレーションシップは保持されません。

GitHub.com からリポジトリ データをエクスポートするには、Migrations API を使用します。

移行APIは現在プレビュー期間です。すなわち、エンドポイントとパラメータは将来変更されることがあります。

移行アーカイブの生成

メモ

リポジトリをロックすると、リポジトリへのすべての書き込みアクセスができなくなります。 ロックされたリポジトリには、新しいTeamやコラボレータを関連づけることはできません。

トライアル実行をしているなら、リポジトリをロックする必要はありません。 使用中のリポジトリからデータを移行する場合、GitHub はリポジトリをロックすることを強くお勧めします。 詳しくは、「ghe-migrator について」をご覧ください。

  1. 組織のメンバーに移行を実施することを通知します。 エクスポートには、対象のリポジトリ数に応じて数分がかかることがあります。 インポートを含む完全な移行には何時間もかかる可能性があるため、完全な処理にかかる時間を判断するためにまず試行することをおすすめします。 詳しくは、「AUTOTITLE」をご覧ください。

  2. 要求を移行エンドポイントに送信して、移行を開始します。 必要なものは次のとおりです。

    • 認証のためのアクセストークン。

    • 移行するリポジトリのリスト:

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -X POST \
      -H "Accept: application/vnd.github+json" \
      -d'{"lock_repositories":true,"repositories":["ORG_NAME/REPO_NAME", "ORG_NAME/REPO_NAME"]}' \
      https://api.github.com/orgs/ORG_NAME/migrations
      
    • 移行する前にリポジトリをロックする場合は、 が に設定されていることを確認します。 これについては強くおすすめします。

    • エンドポイントに を渡すことで、添付ファイルを除外できます。 添付ファイルは大きくなる場合があり、最終的なマイグレーションアーカイブを不必要に膨らませてしまう場合があります。 最終的なアーカイブのサイズは 20 GB 未満である必要があります。

この要求により、移行を表す一意の識別子<unique_identifier>が返されます。 これは次の移行 API の呼び出しに必要となります。

  1. 移行の状態を取得するために、移行ステータスエンドポイントにリクエストを送信します。 必要なものは次のとおりです。

    • 認証のためのアクセストークン。

    • 移行の一意の属性:

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -H "Accept: application/vnd.github+json" \
      https://api.github.com/orgs/ORG_NAME/migrations/ID
      

    移行のステータスは以下のいずれかになります:

    • : 移行はまだ開始されていないことを意味します。
    • : 移行が進行中であることを意味します。
    • : 移行が正常に完了したことを意味します。
    • : 移行が失敗したことを意味します。
  2. 移行がエクスポートされたら、移行ダウンロード エンドポイントに 要求を送信して移行アーカイブをダウンロードします。 必要なものは次のとおりです。

    • 認証のためのアクセストークン。

    • 移行の特有の側面:

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -H "Accept: application/vnd.github+json" \
      -L -o migration_archive.tar.gz \
      https://api.github.com/orgs/ORG_NAME/migrations/ID/archive
      
  3. 移行アーカイブは 7 日間経過すると自動的に削除されます。 より早く削除する場合は、移行アーカイブ削除エンドポイントに 要求を送信できます。 必要なものは次のとおりです。

    • 認証のためのアクセストークン。

    • 移行のユニークな点については

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -X DELETE \
      -H "Accept: application/vnd.github+json" \
      https://api.github.com/orgs/ORG_NAME/migrations/ID/archive
      
  4. GitHub Enterprise Server インスタンスにインポートするためにアーカイブされた移行データを準備するには、「GitHub Enterprise Server へのデータの移行」を参照してください。