同一组织内迁移ADO项目至新项目的工具与API咨询
Azure DevOps Server 2022同组织内项目迁移方案
一、可用迁移工具
- Azure DevOps Migration Tools:微软官方维护的开源工具,支持迁移工作项(含看板配置、Epics相关映射)、代码库、流水线等。针对你的ADO Server 2022.0.1版本,只需编写JSON配置文件指定源项目和目标项目,就能处理工作项类型映射、版本控制迁移、流水线复制等场景。注意提前调整目标项目的过程模板(比如选择支持Epics的Scrum模板),确保源与目标的工作项类型能对应匹配。
- Git命令行迁移代码库:如果是Git仓库,直接本地克隆源项目仓库,添加目标项目仓库作为远程地址,推送所有分支和标签即可。若使用TFVC仓库,可通过
git-tf工具转成Git再迁移,或者直接在ADO Server内将TFVC仓库导入到新项目的Git库。 - 流水线快速复制:在ADO界面打开源流水线,点击“另存为”直接选择目标项目保存,单条流水线用这种方式最快;批量迁移可结合下方的API操作。
二、Rest API实现迁移
1. 工作项迁移
分导出和导入两步操作:
- 导出:先调用WIQL查询API获取所有工作项ID:
GET https://{instance}/{collection}/{project}/_apis/wit/wiql?api-version=7.1-preview.2,再逐个调用工作项详情API拉取完整数据:GET https://{instance}/{collection}/{project}/_apis/wit/workitems/{id}?api-version=7.1-preview.3。 - 导入:调用创建工作项API,将导出的字段(排除ID、创建时间这类系统字段)映射到目标项目对应字段后提交:
POST https://{instance}/{collection}/{targetProject}/_apis/wit/workitems/${workItemType}?api-version=7.1-preview.3。链接、附件、历史记录需单独调用对应API处理。
2. 版本控制迁移
- Git仓库:通过Git API拉取源仓库的分支和标签信息,再调用推送API同步内容到目标仓库:
POST https://{instance}/{collection}/{targetProject}/_apis/git/repositories/{repoId}/pushes?api-version=7.1-preview.1,实际操作中命令行效率更高。 - TFVC仓库:调用TFVC文件API获取所有文件内容:
GET https://{instance}/{collection}/{project}/_apis/tfvc/items?api-version=7.1-preview.1,再导入到目标项目的TFVC或Git库。
3. 流水线迁移
- 先获取源项目所有流水线列表:
GET https://{instance}/{collection}/{project}/_apis/pipelines?api-version=7.1-preview.1 - 再调用创建流水线API,将源流水线的配置(YAML或经典编辑器配置)传入目标项目:
POST https://{instance}/{collection}/{targetProject}/_apis/pipelines?api-version=7.1-preview.1
三、关键注意事项
- 先确认目标项目已启用Epics功能(选择Scrum模板或在自定义模板中添加Epics工作项类型),迁移前做好源项目工作项类型与目标的映射,比如将源中的大型需求映射为目标的Epics。
- 迁移前务必备份源项目,避免数据丢失;迁移完成后逐一验证工作项状态、代码提交记录、流水线运行是否正常。
- 权限配置可通过Groups and Permissions API批量复制源项目的权限到目标项目。
内容的提问来源于stack exchange,提问作者Sunil Bindra
相关产品推荐
相关产品推荐

