Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。

GitHub Enterprise Importer の移行サポート

GitHub Enterprise Importer を使用すると、サポートされている移行元からさまざまなデータを GitHub に移行できます。

注: GitHub Enterprise Importer は現在パブリック ベータであり、変更される可能性があります。

GitHub Enterprise Importer の移行サポートについて

GitHub Enterprise Importer を使用すると、サポートされている任意の移行元から GitHub Enterprise Cloud に移行できます。 それぞれの移行に含まれるデータは、移行元によって異なります。

GitHub Enterprise Importer は、次の移行元から GitHub Enterprise Cloud への移行をサポートしています。

  • Azure DevOps (ADO) クラウド
  • Bitbucket Server と Bitbucket Data Center 5.14 以降
  • GitHub.com
  • GitHub Enterprise Server (GHES) 3.4.1 以降

ベータ期間中、Importer にはすべての移行元に適用される既知の制限があります。

Azure DevOps の移行サポート

移行元が Azure DevOps の場合は、リポジトリを移行できます。

GitHub Enterprise Importer を使用して移行できるのは Azure DevOps Cloud からのみであり、Azure DevOps Server からは移行できません。 現在 Azure DevOps Server を使用していて、GitHub に移行する場合は、まず Azure DevOps Cloud に移行できます。 詳しくは、Azure サイトの「Azure DevOps への移行」を参照してください。

現在、次のリポジトリ データのみについて、Azure DevOps から GitHub Enterprise Cloud への移行がサポートされています。

  • Git ソース (コミット履歴を含む)
  • Pull Request
  • pull request のユーザー履歴
  • pull request の作業項目リンク
  • pull request の添付ファイル
  • リポジトリのブランチ保護 (ユーザー スコープのブランチ保護は含まれません)

Azure Pipelines を GitHub Actions に移行する場合は、担当の GitHub アカウント マネージャーにお問い合わせください。

Bitbucket Server の移行サポート

注: 現在、GitHub Enterprise Importer を使った Bitbucket Server からの移行はプライベート ベータ版であり、変更される可能性があります。 ベータ版へのアクセスを要求するには、「Bitbucket Server 移行待機リストに参加する」を参照してください。

Bitbucket Server からの移行は、Bitbucket Server または Bitbucket Data Center バージョン 5.14 以降でのみサポートされています。

移行元が Bitbucket Server の場合は、リポジトリを移行できます。 現在、次のリポジトリ データのみについて、Bitbucket Server から GitHub Enterprise Cloud への移行がサポートされています。

  • Git ソース (コミット履歴を含む)
  • pull request (pull request のレビュー、必須のレビュー担当者、コメント、添付ファイルを含むが、ファイル レベルのコメントを除く)

現時点では、次のデータは移行されません

  • pull request のファイル レベルのコメント
  • 分岐アクセス許可
  • コミットのコメント
  • リポジトリ設定

GitHub Enterprise Importer で Bitbucket Server から CI パイプラインは移行されません。

GitHub.com の移行サポート

移行元が GitHub.com の場合は、個々のリポジトリまたは Organization 全体を移行できます。

Organization を移行すると、移行先の Enterprise アカウント内に新しい Organization が作成されます。 その後、次のデータが新しい Organization に移行されます。

  • Teams
  • リポジトリ
  • リポジトリへのチーム アクセス
  • メンバー特権
  • Organization レベルの Webhook
  • Organization 内に作成された新しいリポジトリの既定のブランチ名

すべてのリポジトリは、可視性を非公開として移行されます。 リポジトリの可視性を公開または内部に設定する場合は、移行後に UI または API を使用して行うことができます。

チーム メンバーシップは移行されません。 移行後、移行されたチームにメンバーを追加する必要があります。 詳しくは、「GitHub Enterprise Importer を使用した GitHub 製品間の移行」を参照してください。

注: チームへの参照 (@octo-org/octo-team など) は、Organization の移行の一部として更新されません。 これにより、CODEOWNERS ファイルが期待どおりに動作しないなど、移行先の Organization で問題が発生する可能性があります。 これらの問題を回避および解決する方法について詳しくは、「GitHub Enterprise Importer を使用した移行のトラブルシューティング」を参照してください。

リポジトリを直接、または Organization 移行の一部として移行すると、次のデータのみが移行されます。

  • Git ソース (コミット履歴を含む)
  • Pull Request
  • issue
  • マイルストーン
  • Wiki
  • リポジトリ レベルのプロジェクト (クラシック)
  • GitHub Actionsのワークフロー
  • コミットのコメント
  • アクティブな Webhook
  • リポジトリトピック
  • リポジトリ設定
    • ブランチ保護 (詳しくは「ブランチ保護」を参照してください)
    • GitHub Pages の設定
    • 自動リンク参照
    • GitHub Advanced Security の設定
    • pull request の設定
      • head ブランチを自動的に削除する
      • 自動マージを許可する
      • マージ コミットを許可する (コミット メッセージの設定が既定のメッセージにリセットされる)
      • スカッシュ マージを許可する (コミット メッセージの設定が既定のメッセージにリセットされる)
      • リベース マージを許可する
  • リリース (リポジトリあたり最大 10 GB)
  • 上記のデータのユーザー履歴

現在、次のデータは移行されません

  • Git LFS オブジェクトと大きなバイナリ (Git LFS を使うリポジトリは引き続きサポートされます。「GitHub Enterprise Importerの制限事項」をご覧ください)
  • GitHub Actions のシークレット、環境、またはワークフロー実行履歴
  • Webhook のシークレット
  • GitHub Codespaces のシークレット
  • Code scanning の結果
  • secret scanning の結果の修復状態
  • Dependabot のアラート
  • Dependabot のシークレット
  • Organization レベルのプロジェクト (クラシック)
  • すべての Projects (新しいプロジェクト エクスペリエンス)
  • リポジトリ レベルでのディスカッション
  • GitHub Packages 内のパッケージ
  • GitHub アプリ
  • リポジトリ間のフォーク関係 (「フォークについて」を参照)
  • リポジトリへのユーザー アクセス

リポジトリを直接移行する場合、チームと、リポジトリへのチーム アクセスは移行されません。

ブランチ保護

ブランチ保護により、特定のブランチ名またはブランチ名パターンに、指定した一連の規則が適用されます。 詳しくは、「保護されたブランチについて」を参照してください。

ブランチ保護は常に移行されますが、特定の規則は移行されません。 次のブランチ保護規則は移行されません。

  • 特定のアクターが必須の pull request をバイパスできるようにする
  • 最新のプッシュの承認を要求する
  • Require deployments to succeed before merging
  • ブランチをロックする
  • 一致するブランチを作成するプッシュを制限する
  • フォースプッシュを許可

また、次の制限事項が適用されます。

  • ブランチ保護規則で、規則の適用対象外とするユーザー、チーム、またはアプリを必要に応じて指定できる場合 ("pull request レビューを無視できるユーザーを制限する" など)、例外は移行されません。
  • "強制プッシュを許可する" 規則が "強制プッシュできるユーザーを指定する" モードで有効になっている場合、規則は移行されません。

GitHub Enterprise Server の移行サポート

移行元が GitHub Enterprise Server の場合は、リポジトリを移行できます。

GitHub Enterprise Server (GHES) から移行するには、GHES バージョン 3.4.1 以降が必要です。

ItemGHES 3.4.1 以降GHES 3.5.0 以降
Git ソース (コミット履歴を含む)XX
Pull RequestXX
issueXX
マイルストーンXX
WikiXX
リポジトリ レベルのプロジェクト (クラシック)XX
GitHub ActionsのワークフローXX
コミットのコメントXX
アクティブな WebhookXX
ブランチ保護XX
GitHub Pages の設定XX
上記のデータのユーザー履歴XX
リリースX

GHES のバージョンに応じて、リポジトリあたりの異なるサイズ制限が適用されます。

制限GHES <3.8.0GHES 3.8.0 以降
Git ソース2GB10 GB
メタデータ2GB10 GB

現在、次のデータは移行されません

  • Git LFS オブジェクトと大きなバイナリ (Git LFS を使うリポジトリは引き続きサポートされます。「GitHub Enterprise Importerの制限事項」をご覧ください)
  • GitHub Actions のシークレット、環境、またはワークフロー実行履歴
  • Webhook のシークレット
  • GitHub Codespaces のシークレット
  • Code scanning の結果
  • secret scanning の結果の修復状態
  • Dependabot のアラート
  • Dependabot のシークレット
  • Organization レベルのプロジェクト (クラシック)
  • すべての Projects (新しいプロジェクト エクスペリエンス)
  • リポジトリ レベルでのディスカッション
  • GitHub Packages 内のパッケージ
  • GitHub アプリ
  • リポジトリ間のフォーク関係 (「フォークについて」を参照)
  • Teams
  • リポジトリへのユーザーまたはチームのアクセス
  • pull request のリポジトリ設定

制限事項

GitHub Enterprise Importer で何を移行できるかについては、制限があります。 GitHub.com の制限に起因するものもあれば、GitHub Enterprise Importer 自体の制限事項であるものもあります。

GitHub.com の制限事項

  • 1 つの Git コミットに対する 2 GB のサイズ制限: Git リポジトリ内の 1 つのコミットが 2 GB を超えることはできません。 いずれかのコミットが 2 GB を超える場合は、そのコミットを、それぞれが 2 GB 以下の小さなコミットに分割する必要があります。
  • Git 参照の 255 バイトの制限: "ref" と呼ばれる 1 つの Git 参照には、255 バイトを超える名前を付けることはできません。 通常、これは、参照の長さは 255 文字を超えることはできませんが、絵文字などの ASCII 以外の文字は複数バイトを消費する可能性があることを意味します。 いずれかの Git 参照が大きすぎる場合は、明確なエラー メッセージが返されます。
  • 100 MB のファイル サイズ制限: Git リポジトリ内の 1 つのファイルが 100 MB を超えることはできません。 大きなファイルを格納するためには、Git LFS を使用することを検討してください。 詳しくは、「大きなファイルを管理する」を参照してください。

GitHub Enterprise Importer の制限事項

  • Git リポジトリの 10 GB のサイズ制限: この制限はソース コードにのみ適用されます。 リポジトリのサイズを調べるには、git-sizer ツールを使用し、BLOB の合計サイズを確認します。
  • メタデータの 10 GB の制限: 10 GB を超えるメタデータを持つリポジトリは、Importer で移行できません。 メタデータには、issue、pull request、リリース、添付ファイルが含まれます。 ほとんどの場合、大きなメタデータの原因は、リリースにアタッチされたバイナリ資産です。 migrate-repo コマンドの --skip-releases フラグを使用して移行からリリースを除外し、移行後にリリースを手動で移動できます。
  • Git LFS オブジェクトは移行されない: Importer で、Git LFS を使用するリポジトリを移行できますが、LFS オブジェクト自体は移行されません。 これらは、移行完了後にフォローアップ タスクとして移行先にプッシュできます。 詳しくは、「リポジトリを複製する」を参照してください。
  • 必要なフォローアップ タスク: GitHub 製品間で移行する場合、特定の設定は移行されず、新しいリポジトリで再構成する必要があります。 それぞれの移行後に完了する必要があるフォローアップ タスクの一覧については、「GitHub Enterprise Importer を使用した GitHub 製品間の移行」を参照してください。
  • 遅延コード検索機能: リポジトリ移行後の検索インデックスの再作成には数時間かかることがあります。また、インデックスの再作成が完了するまで、コード検索で予期しない結果が返される可能性があります。