【发布时间】:2021-12-05 11:00:20
【问题描述】:
是否可以使用 Azure DevOps API 将 SourceOrganization 的私有项目中存在的存储库分叉到 DestOrganization 的另一个项目中?
【问题讨论】:
标签: azure-devops azure-devops-rest-api azure-repos
是否可以使用 Azure DevOps API 将 SourceOrganization 的私有项目中存在的存储库分叉到 DestOrganization 的另一个项目中?
【问题讨论】:
标签: azure-devops azure-devops-rest-api azure-repos
您链接到的问题将允许您创建另一个存储库的一次性镜像,但您不会有任何功能,如拉取请求、差异/合并等。
您可以执行导入请求以在另一个组织中创建克隆,但它完全忽略了存储库之间的关系,并且您无法跨组织执行任何拉取请求。
代码分两步:
Code (Read) 访问权限的 PAT 创建一个临时端点。POST https://dev.azure.com/{{ORG}}/{{PROJECT}}/_apis/serviceendpoint/endpoints
{
"authorization":{
"parameters":{
"password":"{{PAT WITH ENOUGH PERMISSIONS}}",
"username":"."
},
"scheme":"UsernamePassword"
},
"name":"{{RANDOM UNIQUE NAME}}",
"type":"git",
"url":"{{CLONE URL OF SOURCE REPO}}"
}
它将以端点 ID 响应:
{
"data":{},
"id":"72d574f0-05f1-481f-af15-f78579b374d4",
"name":"wv1w1",
"type":"git"
...
}
POST https://dev.azure.com/{{ORG}}/{{PROJECT}}/_apis/git/repositories/{{NEW REPO NAME}}/importRequests
{
"parameters":{
"deleteServiceEndpointAfterImportIsDone":true,
"gitSource":{
"overwrite":false,
"url":"{{CLONE URL OF SOURCE REPO}}"
},
"tfvcSource":null,
"serviceEndpointId":"{{ID FROM PREVIOUS REQUEST}}"
}
}
它也不能用于在不同组织之间同步资源。
您可以使用 Azure Pipeline 拼凑一些东西,将更改从一个组织推送到另一个组织。同样,没有“分叉”,而实际上只是同步。
【讨论】: