使用 API 将一个存储库从一个 Azure DevOps 组织分叉到另一个组织
Fork a repo from one Azure DevOps Org to another Org using the API
是否可以使用 Azure DevOps API 将存在于 SourceOrganization 的私有项目中的存储库分叉到另一个 DestOrganization 项目中?
不,这不可用。
您链接到的问题将允许您创建另一个存储库的一次性镜像,但您将没有拉取请求、diff/merge 等任何功能
您可以执行导入请求以在另一个组织中创建克隆,但它完全忽略了存储库之间的关系,并且您无法跨组织执行任何拉取请求。
代码分为两步:
- 使用对源组织至少具有
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 拼凑在一起,将更改从一个组织推送到另一个组织。同样,没有“分叉”,但实际上只是一个同步。
是否可以使用 Azure DevOps API 将存在于 SourceOrganization 的私有项目中的存储库分叉到另一个 DestOrganization 项目中?
不,这不可用。
您链接到的问题将允许您创建另一个存储库的一次性镜像,但您将没有拉取请求、diff/merge 等任何功能
您可以执行导入请求以在另一个组织中创建克隆,但它完全忽略了存储库之间的关系,并且您无法跨组织执行任何拉取请求。
代码分为两步:
- 使用对源组织至少具有
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 拼凑在一起,将更改从一个组织推送到另一个组织。同样,没有“分叉”,但实际上只是一个同步。