繁体   English   中英

通过 API 从一个 azure devops 组织导入存储库到另一个

[英]Import repository from one azure devops organization to another through the API

我正在尝试自动化我们组织中的一些流程,其中一部分包括能够将我们 azure devops 组织之一中的存储库转移到另一个组织(将其视为开发组织和测试组织,因此我们正在从开发人员推动到测试)

通过 API https://docs.microsoft.com/en-us/rest/api/azure/devops/git/import%20requests/create?view=azure-devops-rest-6.0我正在尝试创建导入请求.

这就是我难过的地方,文档并没有说太多。

如果我使用示例中的请求正文:

{
  "parameters": {
    "gitSource": {
      "url": "https://github.com/Microsoft/vsts-agent.git"
    }
  }
}

只要我要导入一个空的存储库,导入请求就可以正常工作。 但是我需要能够同步现有的存储库。 [文档中有一个名为 overwrite 的属性似乎是为此目的][1]:https://i.stack.imgur.com/ezCB3.png

唯一的问题是当我将其添加到请求正文并设置为 true

{
  "parameters": {
    "gitSource": {
      "url": "https://github.com/Microsoft/vsts-agent.git",
      "overwrite": true
    }
  }
}

我收到错误的请求消息,提示参数组合无效如果存储库不是空的,我会收到一条错误消息,说我只能导入一个空的存储库。

所以看起来这个属性正是我正在做的事情,但是当该属性设置为 true 以使请求成功时,似乎需要更多参数,但是这方面的文档缺乏。

任何帮助将非常感激

我怀疑overwrite = true会给您带来错误,因为您的后一个仓库中可能存在一些权限问题或 Auth 问题。

或者,您可以分叉您的父存储库并仅同步提供的 refs

CURL:

POST https://dev.azure.com/{organization}/_apis/git/repositories?sourceRef=users/heads/master&api-version=6.0

请求正文:

{
  "name": "forkRepositoryWithOnlySourceRef",
  "project": {
    "id": "3b046b6a-d070-4cd5-ad59-2eace5d05b90"
  },
  "parentRepository": {
    "id": "76b510af-7910-4a96-9902-b978d6226bee"
  }
}

示例响应(HTTP 201):

{
  "id": "29230c30-9125-459b-a3f6-ffab329053bd",
  "name": "forkRepositoryWithOnlySourceRef",
  "url": "https://dev.azure.com/fabrikam/MyFirstProject/_apis/git/repositories/29230c30-9125-459b-a3f6-ffab329053bd",
  "project": {
    "id": "3b046b6a-d070-4cd5-ad59-2eace5d05b90",
    "name": "MyFirstProject",
    "url": "https://dev.azure.com/fabrikam/_apis/projects/3b046b6a-d070-4cd5-ad59-2eace5d05b90",
    "state": "wellFormed",
    "revision": 12,
    "visibility": "private",
    "defaultTeamImageUrl": null
  },
  "size": 0,
  "remoteUrl": "https://dev.azure.com/fabrikam/MyFirstProject/_git/forkRepositoryWithOnlySourceRef",
  "sshUrl": "git@ssh.dev.azure.com:v3/fabrikam/MyFirstProject/forkRepositoryWithOnlySourceRef",
  "isFork": true,
  "_links": {
    "forkSyncOperation": {
      "href": "https://dev.azure.com/fabrikam/_apis/git/repositories/29230c30-9125-459b-a3f6-ffab329053bd/forkSyncRequests/7"
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM