跳至主要内容

准备从 Azure DevOps 迁移到 GitHub

通过了解时间表、要迁移的数据以及组织结构来规划迁移。

确定需要迁移的内容量

确定您的时间表,这将在很大程度上决定您的方法。确定时间表的第一步是获取需要迁移的清单。

  • 仓库数量
  • 拉取请求数量

注意

迁移时间主要取决于仓库中的拉取请求数量。如果您想迁移 1,000 个仓库,并且每个仓库平均有 100 个拉取请求,迁移可能会非常快。如果只迁移 100 个仓库,但每个仓库平均有 75,000 个拉取请求,迁移将需要更长时间并需要更多的规划和测试。

我们建议使用 GitHub CLI 的 ADO2GH 扩展中的 inventory-report 命令。该命令会连接 Azure DevOps API,然后生成多个 CSV 文件。repos.csv 包含有关仓库的信息,包括拉取请求数量。

要生成这些 CSV 文件,请使用以下命令,将 YOUR_ADO_ORG 替换为您在 Azure DevOps 上的组织名称。

Shell
gh ado2gh inventory-report --ado-org YOUR_ADO_ORG

在完成需要迁移的仓库清单后,将清单数据与您期望的时间表进行比对。

  • 如果贵组织能够承受较高程度的变更,那么您可能能够一次性迁移所有仓库,在几天内完成迁移工作。
  • 如果有团队无法同时迁移,您可能需要将迁移分批并错开,以符合各团队的时间表,从而延长迁移周期。

确定 GitHub 组织结构

接下来,规划您将在 GitHub 中创建的组织结构。ADO 和 GitHub 对企业工作组织的方式不同。

  • ADO:组织 > 团队项目 > 仓库
  • GitHub:Enterprise > organization > repositories

迁移到 GitHub 后,您应该只有一个企业账户和少量该企业拥有的组织。每个来自 ADO 的组织应对应 GitHub 上的单个组织。

注意

在 ADO 中用于将仓库分组的团队项目概念在 GitHub 中不存在。我们不建议为 ADO 的每个团队项目在 GitHub 上创建一个组织,因为这可能导致每个组织内部出现大量未分组的仓库。不过,您可以通过创建团队来管理对一组仓库的访问权限。

如果您希望将迁移工作拆分为批次,新结构可以帮助您确定批次。如果您在 ADO 中拥有多个组织,并且每个组织的仓库规模适合作为批次,考虑按组织进行批量迁移。

  1. 决定新组织结构的形式。
  2. 决定是否需要将迁移工作拆分为更小的批次。
  3. 如果是,请决定如何拆分迁移。

配置仓库权限

由于权限在 GitHub 中的工作方式与 ADO 不同,GitHub Enterprise Importer 不会尝试从 ADO 迁移仓库权限。

当您使用 ADO2GH CLI 时,GitHub Enterprise Importer 将为 ADO 中的每个团队项目在 GitHub 创建两个团队。每个团队被授予对该团队项目所产生的所有仓库的不同访问级别。

团队对迁移仓库的访问权限
TEAM-PROJECT-Maintainers维护者
TEAM-PROJECT-Admins管理员

要授予对迁移仓库的访问权限,您可以将人员添加到这些团队中。您可以在 GitHub 上手动完成此操作,或如果在迁移期间选择将团队链接到 Azure Active Directory(AAD)组,则通过在 AAD 中管理组成员资格来实现。有关手动管理团队成员资格的更多信息,请参阅 向团队添加组织成员

© . This site is unofficial and not affiliated with GitHub, Inc.