移行する必要がある量を決定する
タイムラインを決定します。これによって、アプローチが大きく異なります。 タイムラインを決定するための最初の手順は、移行する必要があるもののインベントリを取得することです。
- リポジトリの数
- pull request の数
メモ
移行の所要時間は、主にリポジトリ内の pull request の数に基づきます。 1,000 個のリポジトリを移行し、各リポジトリに平均で 100 個のプル要求がある場合は、移行が非常に迅速になる可能性があります。 100 個のリポジトリのみを移行したいが、リポジトリごとに平均で 75,000 個のプル要求がある場合、移行にははるかに時間がかかり、より多くの計画とテストが必要になります。
ADO2GH extension of the GitHub CLI の inventory-report コマンドをお勧めします。 このコマンドは、Azure DevOps API に接続し、いくつかの CSV ファイルを作成します。
repos.csv には、プル要求の数など、リポジトリに関する情報が含まれています。
CSV ファイルを生成するには、次のコマンドを使用して、YOUR_ADO_ORG を Azure DevOps の組織名に置き換えてください。
gh ado2gh inventory-report --ado-org YOUR_ADO_ORG
gh ado2gh inventory-report --ado-org YOUR_ADO_ORG
移行する必要があるリポジトリのインベントリを取得したら、インベントリ データを目的のタイムラインと比較します。
- 組織がより高度な変更に耐えられる場合、すべてのリポジトリを一度に移行して、移行作業を数日で完了できる可能性があります。
- 同時に移行できないチームがある場合は、チームのタイムラインに合わせて移行をバッチ処理して調整し、移行作業を拡張することができます。
GitHub 組織構造を決定する
次に、GitHub で作成する Organization 構造を計画します。 ADO と GitHub には、企業の作業を整理する方法が異なります。
- ADO: Organization > チームプロジェクト > リポジトリ
- GitHub: Enterprise > organization > リポジトリ
GitHub に移行した後は、Enterprise アカウントを 1 つのみにし、その Enterprise で所有する Organization の数を少なくする必要があります。 ADO の各組織は、GitHub 上の単一の Organization に対応する必要があります。
メモ
注: ADO でリポジトリのグループ化に使用されるチーム プロジェクトの概念は、GitHub には存在しません。 ADO 上の各チーム プロジェクトの GitHub で組織を作成することはお勧めしません。これにより、各組織内のグループ化されていないリポジトリが多数リストされる可能性があるためです。 ただし、チームを作成すると、リポジトリのグループへのアクセスを管理できます。
移行作業をバッチに分割する場合は、新しい構造を使用してそれらを特定できます。 ADO に複数の組織があり、各組織のリポジトリが適切なサイズのバッチである場合は、組織ごとのバッチ処理を検討します。
データ再利用可能なエンタープライズ移行ツールの組織構造タスク %}
リポジトリのアクセス許可の構成
GitHub と ADO ではアクセス許可の動作が異なるため、GitHub Enterprise Importer は ADO からリポジトリのアクセス許可を移行しようとはしません。
ADO2GH CLI を使用すると、GitHub Enterprise Importer は、ADO の各チーム プロジェクトに対して GitHub に 2 つのチームを作成します。 各チームには、チーム プロジェクトから作成されたすべてのリポジトリへの異なるレベルのアクセス権が付与されます。
| チーム | 移行されたリポジトリへのアクセス |
|---|---|
| TEAM-PROJECT-管理者 | メンテナ |
| TEAM-PROJECTの管理者 | 管理者 |
移行されたリポジトリへのアクセス権を付与するには、これらのチームにユーザーを追加します。 これは、GitHub で手動で行うことができます。または、移行中にチームを Azure Active Directory (AAD) グループにリンクすることを選択した場合は、AAD でグループ メンバーシップを管理します。 チーム メンバーシップの手動による管理について詳しくは、「チームに組織メンバーを追加する」を参照してください。
次のステップ
次のフェーズでは、ドライ ランを実行し、リポジトリを移行します。 「フェーズ 5. リポジトリを Azure DevOps から Github に移行する」を参照してください。