如何在Azure DevOps组织间导出导入项目?需保留看板等最新版本
Azure DevOps跨组织项目迁移(仅保留最新版本)
一、内置迁移方案
1. 代码仓库(Repo)
因为仅需保留最新版本、无需历史提交,推荐用Git命令快速迁移:
- 本地克隆旧仓库的最新版本(仅拉取最近1次提交):
git clone --depth 1 https://old-org@dev.azure.com/old-org/old-project/_git/old-repo - 进入克隆的仓库目录,添加目标组织的仓库作为远程:
cd old-repo git remote add target https://new-org@dev.azure.com/new-org/new-project/_git/new-repo - 将最新代码推送到目标仓库:
git push target main # 替换为你的实际默认分支名,比如master
Azure DevOps内置的「导入仓库」功能默认会拉取全部历史,不符合需求,不推荐使用。
2. 看板(Board)
Azure DevOps没有直接导出看板结构的工具,但可以通过工作项迁移+手动复刻配置实现:
- 导出旧项目看板工作项:进入Boards→工作项,用看板视图快速筛选出所有看板上的工作项,选择「导出」→「CSV」,保留标题、状态、指派、描述等核心字段即可。
- 导入到新项目:进入新项目Boards→工作项,选择「导入」→「CSV」,按提示完成字段映射后导入工作项。
- 复刻看板配置:手动在新项目看板中添加对应列、泳道,并设置状态映射规则(看板的结构配置无法直接导出,需手动复刻)。
3. 流水线(Pipelines)
YAML流水线
- 在旧项目打开目标流水线,点击「编辑」复制完整YAML内容;或通过流水线菜单的「导出」功能获取YAML文件。
- 在新项目新建流水线,选择「现有YAML」,粘贴复制的内容,调整其中的资源引用:比如仓库URL、变量、服务连接(需提前在新项目配置好同名服务连接)。
经典流水线
- 在旧项目流水线页面,点击「导出」下载JSON格式的流水线定义。
- 在新项目选择「导入流水线」,上传JSON文件,然后修正依赖的服务连接、变量等配置。
二、自定义自动化工具(基于Azure DevOps REST API)
如果需要批量迁移多个项目,可以用REST API构建自动化工具,核心API如下:
代码仓库相关
- 获取项目下所有仓库:
GET https://dev.azure.com/{org}/{proj}/_apis/git/repositories?api-version=7.1-preview.1 - 创建空仓库:
POST https://dev.azure.com/{org}/{proj}/_apis/git/repositories?api-version=7.1-preview.1,请求体需包含仓库名称、描述等信息。 - 获取分支最新提交信息:
GET https://dev.azure.com/{org}/{proj}/_apis/git/repositories/{repoId}/refs/heads/{branchName}?api-version=7.1-preview.1
看板与工作项相关
- 查询看板工作项:通过WIQL查询,调用
POST https://dev.azure.com/{org}/{proj}/_apis/wit/wiql?api-version=7.1-preview.2,请求体为WIQL语句(示例:SELECT [System.Id], [System.Title] FROM WorkItems WHERE [System.BoardColumn] IS NOT NULL)。 - 批量创建工作项:
POST https://dev.azure.com/{org}/{proj}/_apis/wit/workitems/batch?api-version=7.1-preview.3,传入工作项字段信息即可批量创建。 - 获取看板配置:
GET https://dev.azure.com/{org}/{proj}/_apis/work/boards/{boardId}?api-version=7.1-preview.1,用于复刻列、泳道等看板结构。
流水线相关
- 获取项目所有流水线:
GET https://dev.azure.com/{org}/{proj}/_apis/pipelines?api-version=7.1-preview.1 - 获取流水线定义:
GET https://dev.azure.com/{org}/{proj}/_apis/pipelines/{pipelineId}/definition?api-version=7.1-preview.1 - 创建流水线:
POST https://dev.azure.com/{org}/{proj}/_apis/pipelines?api-version=7.1-preview.1,传入YAML或经典定义的JSON内容即可创建。
开发时可以用官方SDK简化流程:.NET使用Microsoft.TeamFoundationServer.Client包,Python使用azure-devops包,无需手动处理HTTP请求和认证逻辑。
内容的提问来源于stack exchange,提问作者One Developer
相关产品推荐
相关产品推荐

