移行の種類
行える移行は3種類あります。
- GitHub Enterprise Server インスタンスから別の既存の GitHub Enterprise Server インスタンスへの移行。 インスタンス上の任意のユーザあるいはOrganizationが所有する任意の数のリポジトリを移行できます。 移行を行う前に、双方のインスタンスにサイト管理者としてアクセスできなければなりません。
- GitHub.com Organization から GitHub Enterprise Server インスタンスへの移行。 Organizationが所有する任意の数のリポジトリを移行できます。 移行を実行する前に、GitHub.com Organization への管理アクセスと、ターゲット インスタンスへのサイト管理者アクセスが必要です。
- テスト実行 は、ステージング インスタンスにデータをインポートする移行です。 これらは、移行が お使いの GitHub Enterprise Server インスタンス に適用された場合に何が "起こるか" を確認するのに役立ちます。__ 運用インスタンスへデータをインポートする前に、ステージング インスタンスでテスト実行を行うことを強くおすすめします。
注: 異なるハイパーバイザー間で GitHub Enterprise Server を転送する場合は、ghe-migrator を使うことはお勧めしません。 代わりに、GitHub Enterprise Server Backup Utilities を使って新しい場所にバックアップして復元するか、新しい場所にレプリカを作成してからレプリカ アプライアンスにフェールオーバーすることをお勧めします。 詳細については、「インスタンスでのバックアップの構成」、「High Availabilityレプリカの作成」、および「レプリカアプライアンスへのフェイルオーバーの開始」を参照してください。
データの移行
ghe-migrator では、リポジトリがすべての中心になります。 リポジトリに関係するほとんどのデータは移行できます。 たとえば Organization 内のリポジトリは、リポジトリ および その Organization、またそのリポジトリに関連付けられているユーザー、Team、Issue、pull request のすべてを移行します。
以下の表の項目はレポジトリと共に移行できます。 移行されたデータのリストに表示されていない項目は、Git LFS 資産を含めて移行できません。
注: 移行後は、フォーク リレーションシップは保持されません。
移行されたリポジトリに関連するデータ | Notes |
---|---|
ユーザー | ユーザーの @mentions は、ターゲットに一致するように書き直されます。 |
組織 | Organizationの名前と詳細は移行されます。 |
リポジトリ | Git ツリー、blob、コミット、および行へのリンクは、ターゲットにマッチするよう書き換えられます。 内部リポジトリはプライベート リポジトリとして移行されます。 アーカイブ状態は未設定です。 |
Wiki | すべてのWikiのデータは移行されます。 |
Teams | Team の @mentions は、ターゲットに一致するように書き直されます。 |
マイルストーン | タイムスタンプは保持されます。 |
Projects (classic) ボード | リポジトリとリポジトリを所有する Organization に関連する プロジェクト (クラシック) が移行されます。 新しいプロジェクト エクスペリエンスである Projects (beta) はサポートされていません。 |
問題 | Issueへの参照とタイムスタンプは保持されます。 |
Issueのコメント | コメントへの相互参照は、ターゲットインスタンスに合わせて書き換えられます。 |
Pull Request | プルリクエストへの相互参照はターゲットにマッチするよう書き換えられます。 タイムスタンプは保持されます。 |
プルリクエストのレビュー | プルリクエストのレビューと関連データは移行されます。 |
プルリクエストのレビューのコメント | コメントへの相互参照は、ターゲットインスタンスに合わせて書き換えられます。 タイムスタンプは保持されます。 ファイル レベルのコメントは移行されません。 |
コミットのコメント | コメントへの相互参照は、ターゲットインスタンスに合わせて書き換えられます。 タイムスタンプは保持されます。 |
リリース | すべてのリリースデータは移行されます。 |
プルリクエストあるいはIssueに対して行われたアクション | ユーザの割り当て、タイトルの変更、ラベルの変更など、プルリクエストあるいはIssueに対するすべての変更は、それぞれのアクションのタイムスタンプと共に保持されます。 |
添付ファイル | Issue と pull request の添付ファイルが移行されます。 移行に関するこの機能は無効化できます。 |
Webhooks | アクティブなwebhookのみが移行されます。 |
リポジトリのデプロイキー | リポジトリのデプロイキーは移行されます。 |
保護されたブランチ | 保護されたブランチの設定と関連データは移行されます。 |
外部認証データの移行について
移行のソースの場所が、LDAP または SAML 認証を使用する GitHub 製品である場合、ghe-migrator
はユーザー アカウントにリンクされている外部認証データは移行されません。 認証オプションの詳細については、「GitHub Enterprise Server」を参照してください。Enterprise の認証については、GitHub Enterprise Server ドキュメントまたは GitHub Enterprise Cloud ドキュメントを参照してください。
移行先インスタンスに移行し、外部認証を構成する場合、ユーザーは、ソース インスタンスのアカウントと同じユーザー名またはユーザー ID を持つユーザー アカウントを使用して、移行先インスタンスにサインインする必要があります。 管理者は、インスタンスがユーザー アカウント名のマッピングに使用する外部属性を [Management Console] から確認できます。 詳しくは、「管理コンソールへのアクセス」を参照してください。