如何跨Azure DevOps组织迁移Pull Requests历史至目标项目?
Azure DevOps项目迁移中Pull Request元数据缺失的解决方案
方案1:使用Azure DevOps Migration Tools批量迁移
这是社区维护的官方兼容工具,专门解决跨组织迁移的元数据同步问题:
- 下载工具并配置
migration-config.json,重点配置PullRequestMigrationContext节点:- 指定源、目标组织的PAT令牌和项目信息
- 开启
IncludeComments、IncludeReviewers、IncludeBuildAssociations等开关,确保PR的完整元数据被迁移
- 确认源和目标仓库的分支、提交历史完全一致(你已完成代码迁移,这步可跳过)
- 执行迁移命令:
dotnet run -- --config migration-config.json - 注意:工具会自动处理用户映射,需确保源和目标组织的用户邮箱一致,否则评审者会无法正确关联
方案2:基于ADO Rest API自定义脚本导入
如果你已经能拉取源PR数据,可通过脚本模拟PR创建和元数据补全:
- 调用源组织的
Pull Requests - Get Pull Requests接口,拉取完整PR数据(包括reviews、comments、associatedWorkItems、builds字段) - 在目标组织中,先调用
Pull Requests - Create接口创建草稿状态的PR,分支对应源PR的源分支和目标分支 - 调用
Pull Request Reviews - Create接口添加评审者,用Pull Request Comments - Create接口批量复制评论内容 - 若需关联构建历史,先完成Azure Pipeline的迁移,再调用
Pull Requests - Update接口关联目标组织的对应构建ID - 最后手动或通过脚本触发PR合并(ADO不允许直接创建已完成状态的PR)
方案3:手动补录(适用于PR数量较少的场景)
如果项目PR数量不多,可针对性补录关键元数据:
- 对核心业务相关的PR,手动添加原评审者、复制评论内容,在PR描述中注明原PR ID
- 重新关联PR到已迁移的工作项(若工作项已同步)
- 构建历史可在PR描述中添加原构建的链接,或关联目标组织中已迁移的对应构建
注意事项
- 用户映射必须匹配:源和目标组织的用户需使用相同邮箱,否则评审者、评论作者会无法正确对应
- 已完成PR无法100%还原:ADO的PR状态不可逆,目标组织的PR只能从草稿到合并,无法直接生成已完成状态的历史PR
- 先迁移Pipeline再关联PR:构建历史依赖已迁移的Pipeline,需确保Pipeline先完成迁移再处理PR关联
内容的提问来源于stack exchange,提问作者Nishu Tayal
相关产品推荐
相关产品推荐

