要从 Azure DevOps 迁移仓库到 GitHub,您需要对源(Azure DevOps 上的组织)和目标(GitHub 上的组织)拥有足够的访问权限。完成本文中的步骤后,您的访问权限和权限将为迁移做好准备。
决定谁将执行迁移
如果将要执行迁移的人员不是 GitHub 组织所有者,则必须先由 GitHub 组织所有者授予其迁移者角色。
- 如果您是 GitHub 组织所有者,并且计划自行执行迁移,您可以继续阅读本指南。
- 如果您希望将迁移者角色分配给其他人,请立即进行此操作。随后,迁移者应在这些指南中完成其余步骤。参见授予迁移者角色。
在 GitHub 上创建个人访问令牌(经典)
接下来,您需要创建一个个人访问令牌(经典),该令牌将被 GitHub CLI 的 ADO2GH 扩展用于与 GitHub 通信。所需的令牌作用域取决于您的角色和要完成的任务。
注意
您只能使用个人访问令牌(经典),而不能使用细粒度个人访问令牌。这意味着如果您的组织使用“限制个人访问令牌(经典)访问您的组织”策略,则无法使用 GitHub Enterprise Importer。更多信息,请参见 在企业中强制执行个人访问令牌的策略。
| 任务 | 组织所有者 | 迁移者 |
|---|---|---|
| 为仓库迁移分配迁移者角色 | admin:org | |
| 执行仓库迁移(目标组织) | repo, admin:org, workflow | repo, read:org, workflow |
| 下载迁移日志 | repo, admin:org, workflow | repo, read:org, workflow |
| 回收假人 | admin:org |
要了解如何创建令牌,请参阅管理您的个人访问令牌。
在 Azure 上创建个人访问令牌
您的 Azure DevOps 个人访问令牌必须具备work item (read)、code (read)和identity (read)作用域。
我们建议为您的个人访问令牌授予完整访问权限,以便在第 4 阶段使用inventory-report标志。
如果您想从多个组织迁移,请允许该个人访问令牌访问所有可访问的组织。
请参阅 Microsoft Docs 中的使用个人访问令牌。
在 GitHub 上配置 IP 白名单
如果您使用 GitHub 的 IP 白名单功能,则必须将以下 GitHub IP 范围添加到源组织和/或目标组织的白名单中。
如果您的目标组织位于 GitHub.com,则需要允许以下 IP 地址:
- 192.30.252.0/22
- 185.199.108.0/22
- 140.82.112.0/20
- 143.55.64.0/20
- 135.234.59.224/28(已添加于2025年7月28日)
- 2a0a:a440::/29
- 2606:50c0::/32
- 20.99.172.64/28(已添加于2025年7月28日)
请参阅管理组织的允许 IP 地址以及使用 IP 白名单限制企业网络流量。
临时配置身份提供商 (IdP) 的限制
如果您使用 IdP 的 IP 白名单(例如 Azure CAP)来限制对 GitHub 上企业的访问,请在迁移完成前在企业账户设置中暂时禁用这些限制。
允许迁移绕过仓库规则集
如果目标组织或企业已启用规则集,迁移后的仓库历史可能会违反这些规则。为在不禁用规则集的情况下完成迁移,请将“仓库迁移”添加到每个适用规则集的绕过列表中。此绕过仅在迁移期间生效。迁移完成后,所有新贡献将继续受规则集约束。
配置绕过
- 导航至每个企业或组织的规则集。
- 在“绕过列表”部分,点击添加绕过。
- 选择仓库迁移。
更多信息,请参阅在组织中为仓库创建规则集。