GitHub.comのOrganizationのリポジトリのエクスポート
移行 API を使うと、Organization のリポジトリをエクスポートできます。 リポジトリをエクスポートすると、インポートプロセスで使用される移行アーカイブをダウンロードします。
メモ: マイグレーション後には、フォークの関係性は保持されません。
GitHub.com からリポジトリデータをエクスポートするには、移行 API を使います。
移行APIは現在プレビュー期間です。すなわち、エンドポイントとパラメータは将来変更されることがあります。 移行APIにアクセスするには、カスタムのメディアタイプとしてapplication/vnd.github.wyandotte-preview+json
をAccept
ヘッダで渡さなければなりません。 以下の例にはカスタムのメディアタイプが含まれています。
移行アーカイブの生成
メモ: リポジトリをロックすれば、ユーザによるリポジトリへのプッシュや、Issue、ラベル、マイルストーン、ウィキ、コメントなどのリポジトリのリソースの変更を防ぐことができます。ロックされたリポジトリには、新しい Team やコラボレーターを関連付けることはできません。
トライアル実行を行っているなら、リポジトリをロックする必要はありません。そうでない場合は、強く推奨します。詳細は「移行について」を参照してください。
-
移行を行うOrganizationのメンバーに通知します。 エクスポートには、対象のリポジトリ数に応じて数分がかかることがあります。 インポートを含む完全な移行には何時間もかかる可能性があるため、完全な処理にかかる時間を判断するためにまず試行することをおすすめします。 詳細は「移行について」を参照してください。
-
移行エンドポイントに
POST
することで移行を開始します。 以下が必要です:-
認証のためのアクセストークン。
-
移行するリポジトリのリスト。
curl -H "Authorization: token GITHUB_ACCESS_TOKEN" -X POST \ -H "Accept: application/vnd.github.wyandotte-preview+json" \ -d'{"lock_repositories":true,"repositories":["orgname/reponame", "orgname/reponame"]}' \ https://api.github.com/orgs/orgname/migrations
- If you want to lock the repositories before migrating them, make sure
lock_repositories
is set totrue
. これについては強くおすすめします。 - You can exclude file attachments by passing
exclude_attachments: true
to the endpoint. 添付ファイルは大きくなる場合があり、最終的なマイグレーションアーカイブを不必要に膨らませてしまう場合があります。 最終的なアーカイブのサイズは 5 GB 未満でなければなりません。
-
このリクエストは移行を表す一意の id
を返します。 これは次の移行 API の呼び出しに必要となります。
-
GET
リクエストを移行ステータスエンドポイントに送って移行のステータスをフェッチします。 以下が必要です:-
認証のためのアクセストークン。
-
移行の一意の
id
。curl -H "Authorization: token GITHUB_ACCESS_TOKEN" \ -H "Accept: application/vnd.github.wyandotte-preview+json" \ https://api.github.com/orgs/orgname/migrations/id
-
移行のステータスは以下のいずれかになります:
* `pending`, which means the migration hasn't started yet.
* `exporting`, which means the migration is in progress.
* `exported`, which means the migration finished successfully.
* `failed`, which means the migration failed.
-
移行がエクスポートされたら、
GET
リクエストを移行ダウンロードエンドポイントに送って移行アーカイブをダウンロードします。 以下が必要です:-
認証のためのアクセストークン。
-
移行の一意の
id
。curl -H "Accept: application/vnd.github.wyandotte-preview+json" \ -u GITHUB_USERNAME:GITHUB_ACCESS_TOKEN \ -L -o migration_archive.tar.gz \ https://api.github.com/orgs/orgname/migrations/id/archive
-
-
移行アーカイブは 7 日間経過すると自動的に削除されます。 もっと早く削除したい場合は、
DELETE
リクエストを移行アーカイブ削除エンドポイントに送ることもできます。 以下が必要です:-
認証のためのアクセストークン。
-
移行の一意の
id
。curl -H "Authorization: token GITHUB_ACCESS_TOKEN" -X DELETE \ -H "Accept: application/vnd.github.wyandotte-preview+json" \ https://api.github.com/orgs/orgname/migrations/id/archive
-
-
アーカイブされたマイグレーションデータを GitHub Enterprise Server のインスタンスにインポートする方法については「GitHub Enterprise Server へのマイグレーションデータのインポート」を参照してください。