You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Azure DevOps REST API将Git仓库复制到其他项目

实现Azure DevOps Git仓库跨项目复制(REST API方案)

核心步骤

Azure DevOps REST API没有直接的“一键复制仓库内容”接口,但可以通过创建目标仓库 + 导入原始仓库内容的组合方式实现,具体步骤如下:

1. 创建目标项目下的空Git仓库

先用REST API在目标项目中创建一个空仓库,请求示例:

  • 请求方法:POST
  • 请求URL:https://dev.azure.com/{组织名}/{目标项目名}/_apis/git/repositories?api-version=7.1-preview.1
  • 请求体(JSON):
{
  "name": "目标仓库名",
  "project": {
    "id": "目标项目ID"
  },
  "defaultBranch": "main"
}

执行后会返回新仓库的详细信息,包括仓库ID和克隆地址,保存这些信息备用。

2. 通过Import API导入原始仓库内容

使用Azure DevOps的仓库导入API,将原始仓库的内容同步到新创建的空仓库中,请求示例:

  • 请求方法:POST
  • 请求URL:https://dev.azure.com/{组织名}/{目标项目名}/_apis/git/repositories/{目标仓库ID}/importRequests?api-version=7.1-preview.1
  • 请求体(JSON):
{
  "parameters": {
    "gitSource": {
      "url": "原始仓库的HTTPS克隆地址",
      "overwrite": true,
      "deleteServiceEndpointAfterImportIsDone": true
    },
    "serviceEndpointId": null,
    "gitDestination": {
      "name": "目标仓库名"
    }
  }
}

注意:如果原始仓库是私有仓库,需要在gitSource中添加credentials字段,填入有权限访问原始仓库的用户名和PAT(个人访问令牌):

"credentials": {
  "username": "你的用户名",
  "password": "你的PAT令牌"
}

3. 验证导入状态

可以通过GET请求查询导入任务的状态,确保内容复制完成:

  • 请求方法:GET
  • 请求URL:https://dev.azure.com/{组织名}/{目标项目名}/_apis/git/repositories/{目标仓库ID}/importRequests/{导入请求ID}?api-version=7.1-preview.1

补充说明

  • 确保使用的PAT拥有代码读写权限(对原始仓库和目标项目都需要)
  • 如果需要定期复制,可以将上述步骤封装成脚本,结合定时任务执行
  • 也可以结合Git命令实现:先克隆原始仓库,添加目标仓库作为远程,然后推送所有分支和标签,这种方式适合简单场景,但REST API方式更适合自动化集成

内容的提问来源于stack exchange,提问作者One Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:05:19