ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2020-11-12. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

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

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

ここには以下の内容があります:

GitHub でソース Organization を準備する

  1. ソースOrganizationのリポジトリにオーナー権限を持っていることを確認してください。

  2. GitHub.com上の repo及びadmin:orgスコープでアクセストークンを生成してください。。

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

Exporting the organization's repositories

ノート: フォークの関係は移行のあとまで存続しません。

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

移行APIは現在プレビュー期間です。すなわち、エンドポイントとパラメータは将来変更されることがあります。 移行APIにアクセスするには、カスタムのメディアタイプとしてapplication/vnd.github.wyandotte-preview+jsonAcceptヘッダで渡さなければなりません。 以下の例にはカスタムのメディアタイプが含まれています。

移行アーカイブの生成

ノート: リポジトリをロックすると、ユーザはそのリポジトリにプッシュしたり、Issue、ラベル、マイルストーン、wiki、コメントといったリポジトリのリソースを修正したりできなくなります。 新しいTeamやコラボレータは、ロックされたリポジトリに関連づけできません。

トライアル実行をしているなら、リポジトリをロックする必要はありません。 そうでない場合は、ロックすることを強くおすすめします。 詳細は「移行について」を参照してください。

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

  2. 移行エンドポイント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
    • 移行する前にリポジトリをロックするには、lock_repositoriestrue になっていることを確認してください。 これについては強くおすすめします。
    • exclude_attachments: true をエンドポイントに渡すと、添付ファイルを除外できます。 添付ファイルは大きくなる場合があり、最終的なマイグレーションアーカイブを不必要に膨らませてしまう場合があります。 最終的なアーカイブのサイズは 20 GB 未満でなければなりません。

    このリクエストは移行を表す一意の id を返します。 これは次の移行 API の呼び出しに必要となります。

  3. 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。移行がまだ始まっていないことを示します。
    • exporting。移行が進行中であることを示します。
    • exported。移行が正常に終了したことを示します。
    • failed。移行に失敗したことを示します。
  4. 移行がエクスポートされたら、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
  5. 移行アーカイブは 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
  6. アーカイブされたマイグレーションデータを GitHub Enterprise Server のインスタンスにインポートする方法については「GitHub Enterprise Server へのマイグレーションデータのインポート」を参照してください。