GitHub でソース Organization を準備する
-
ソース Organization のリポジトリに対する所有者のアクセス許可があることを確認します。
-
GitHub.com上の
repo
およびadmin:org
スコープを使用してアクセス トークンを生成する。 -
ダウンタイ� を最小化するには、ソースインスタンスからエクスポートしたいリポジトリのリストを作成してく� さい。 各行にそれぞれのリポジトリのURLをリストアップしたテキストファイルを使えば、複数のリポジトリをエクスポートに一度に追� できます。
Organization のリポジトリのエクスポート
注: 移行後は、フォーク リレーションシップは保持されません。
GitHub.com からリポジトリ データをエクスポートするには、Migrations API を使用します。
移行APIは現在プレビュー期間です。すなわち、エンドポイントとパラメータは将来変更されることがあります。
移行アーカイブの生成
注: リポジトリをロックすると、リポジトリへのすべての書き込みアクセスができなくなります。 ロックされたリポジトリには、新しいTeamやコラボレータを関連づけることはできません。
トライアル実行をしているなら、リポジトリをロックする必要はありません。 使用中のリポジトリからデータを移行する� �合、GitHub はリポジトリをロックすることを強くお勧めします。 詳細については、「移行について」を参照してく� さい。
-
移行を行うOrganizationのメンバーに通知します。 エクスポートには、対象のリポジトリ数に応じて数分がかかることがあります。 インポートを含む完全な移行には何時間もかかる可能性があるため、完全な処理にかかる時間を判断するためにまず試行することをおすすめします。 詳細については、「移行について」を参照してく� さい。
-
POST
要求を移行エンドポイントに送信して、移行を開始します。 必要なものは次のとおりです。- 認証のためのアクセストークン。
- 移行するリポジトリのリスト:
curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ -X POST \ -H "Accept: application/vnd.github+json" \ -d'{"lock_repositories":true,"repositories":["orgname/reponame", "orgname/reponame"]}' \ https://api.github.com/orgs/orgname/migrations
- 移行する前にリポジトリをロックする� �合は、
lock_repositories
がtrue
に設定されていることを確認します。 これについては強くおすすめします。 - エンドポイントに
exclude_attachments: true
を渡すことで、添付ファイルを除外できます。 添付ファイルは大きくなる� �合があり、最終的なマイグレーションアーカイブを不必要に膨らませてしまう� �合があります。 最終的なアーカイブのサイズは 20 GB 未満である必要があります。
この要求により、移行を表す一意の
id
が返されます。 これは次の移行 API の呼び出しに必要となります。 -
移行の状態をフェッチするには、移行の状態エンドポイントに
GET
要求を送信します。 必要なものは次のとおりです。- 認証のためのアクセストークン。
- 移行の一意の
id
:curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ -H "Accept: application/vnd.github+json" \ https://api.github.com/orgs/orgname/migrations/id
移行のステータスは以下のいずれかになります:
pending
: 移行はま� 開始されていないことを意味します。exporting
: 移行が進行中であることを意味します。exported
: 移行が正常に完了したことを意味します。failed
: 移行が失敗したことを意味します。
-
移行がエクスポートされたら、移行ダウンロード エンドポイントに
GET
要求を送信して移行アーカイブをダウンロードします。 必要なものは次のとおりです。- 認証のためのアクセストークン。
- 移行の一意の
id
:curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ -H "Accept: application/vnd.github+json" \ -L -o migration_archive.tar.gz \ https://api.github.com/orgs/orgname/migrations/id/archive
-
移行アーカイブは 7 日間経過すると自動的に削除されます。 より早く削除する� �合は、移行アーカイブ削除エンドポイントに
DELETE
要求を送信できます。 必要なものは次のとおりです。- 認証のためのアクセストークン。
- 移行の一意の
id
:curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \ -X DELETE \ -H "Accept: application/vnd.github+json" \ https://api.github.com/orgs/orgname/migrations/id/archive
-
GitHub Enterprise Server インスタンスにインポートするためにアーカイブされた移行データを準備するには、「Enterprise へのデータ移行の準備」を参照してく� さい。