Azure DevOps Cloud からの移行について
GitHub Enterprise Importer を使って、リポジトリを Azure DevOps から GitHub Enterprise Cloud (GitHub.com または GHE.com) に移行できます。
GitHub Enterprise Importer を使用して移行できるのは Azure DevOps Cloud からのみであり、Azure DevOps Server からは移行できません。 現在 Azure DevOps Server を使用していて、GitHub に移行する場合は、まず Azure DevOps Cloud に移行できます。 詳しくは、Azure サイトの「Azure DevOps への移行」を参照してください。
GitHub でエンタープライズ アカウントを作成する前に、企業で Enterprise Managed Users を使用するかどうかを決定します。 これは、メンバーの認証方法と、ID とアクセスの管理方法に影響します。 「GitHub Enterprise Cloud におけるエンタープライズ種別の選択」を参照してください。
Azure Pipelines と Azure Boards のサポート
Azure Pipelines と Azure Boards はどちらも、 GitHub エクスペリエンスと完全に統合できます。 これらのサービスを引き続き使用できるようにエンタープライズ アカウントと Azure DevOps を構成すると同時に、GitHub でリポジトリをホストする利点も得られます。
Azure Pipelines を GitHub Actions に移行する場合は、担当の GitHub アカウント マネージャーにお問い合わせください。
移行されるデータ
GitHub Enterprise Importer は現在、Azure DevOps から GitHub Enterprise Cloud への次のリポジトリ データの移行をサポートしています。
- Git ソース (コミット履歴を含む)
- Pull Request
- pull request のユーザー履歴
- プルリクエスト内の作業項目リンク
- プルリクエストに対する添付ファイル
- リポジトリのブランチ ポリシー (ユーザー スコープのブランチ ポリシーとリポジトリ間ブランチ ポリシーは含まれません)
移行されたデータに関する制限
GitHub Enterprise Importer で何を移行できるかについては、制限があります。 GitHub の制限に起因するものもあれば、GitHub Enterprise Importer 自体の制限事項であるものもあります。
GitHub の制限事項
-
**1 つの Git コミットに対する 2 GiB サイズの制限:** Git リポジトリ内の 1 つのコミットは、2 GiB を超える可能性はありません。 いずれかのコミットが 2 GiB を超える場合は、コミットを 2 GiB 以下の小さなコミットに分割する必要があります。 -
**Git 参照の 255 バイトの制限:** 255 バイトを超える名前を持つ Git 参照 (一般に "ref" と呼ばれる) は 1 つもありません。 通常、これは、参照の長さ 255 文字を超えることはできませんが、絵文字などの ASCII 以外の文字が複数のバイトを消費する可能性があることを意味します。 いずれかの Git 参照が大きすぎる場合は、明確なエラー メッセージが返されます。 -
**100 MiB ファイル サイズの制限:** 移行が完了すると、Git リポジトリ内の 1 つのファイルは 100 MiB を超えなくなります。 リポジトリの移行中に、この制限は 400 MiB に引き上げられます。 大きなファイルを格納するためには、Git LFS を使用することを検討してください。
GitHub Enterprise Importer の制限事項
- Git リポジトリの 40 GB のサイズ制限 (パブリック プレビュー): この制限はソース コードにのみ適用されます。 リポジトリ アーカイブが制限を超えているかどうかをチェックするには、git-sizer ツールを使用して出力の合計 BLOB サイズを確認します。 git-sizer ツールは、大きなファイル、BLOB サイズ、コミット サイズ、移行に影響する恐れがあるツリー数に関連する潜在的な問題を特定することにも役立ちます。
-
**400 MiB のファイル サイズ制限:** GitHub Enterprise Importer を使ってリポジトリを移行する場合、1 つで 400 MiB を超えるファイルが Git リポジトリ内に存在することはできません。 大きなファイルを格納するためには、Git LFS を使用することを検討してください。 -
**Git LFS オブジェクトは移行されない**: Importer で、Git LFS を使用するリポジトリを移行できますが、LFS オブジェクト自体は移行されません。 これらは、移行完了後にフォローアップ タスクとして移行先にプッシュできます。 -
**遅延コード検索機能:** リポジトリ移行後の検索インデックスの再作成には数時間かかることがあります。また、インデックスの再作成が完了するまで、コード検索で予期しない結果が返される可能性があります。 -
**Organization 用に構成されたルールセットによって移行が失敗する可能性がある**: たとえば、コミット作成者のメール アドレスが `@monalisa.cat` で終わるように要求するルールを構成し、移行するリポジトリにこのルールに準拠していないコミットが含まれている場合、移行は失敗します。 -
**マネキンの内容が検索できない場合あり:** マネキンは、インポートされた内容 (問題、pull request、コメントなど) が関連付けられているプレースホルダー ユーザーです。 割り当てられた問題など、マネキンに関連付けられている内容を検索しても、問題が見つからない可能性があります。 マネキンが回収されると、新しい所有者を介してコンテンツが見つかります。
次のステップ
次の記事では、移行を実行するユーザーを決定し、Azure DevOps と GitHub Enterprise Cloud の両方へのアクセスを準備します。 「フェーズ 2: アクセスを管理する」を参照してください。