python - 如何使用 Azure DevOps 服务 API 跨分支创建 PR?
问题描述
我在 Azure DevOps 上有两个存储库,我们称它们parent_repo
为child_repo
. 这child_repo
是父级的叉子。我想做的是通过其 Python library 创建一个 PR 以使用Azure DevOps Services API进行合并master
。child_repo
master
parent_repo
根据这些文档和这个线程,forkSource
是指示源分支位于分支中并提供该分支所需的参数repo_id
。
from azure.devops.connection import Connection
from msrest.authentication import BasicAuthentication
_connection = Connection(base_url=URL, creds=BasicAuthentication("", PAT))
CLIENT = _connection.clients.get_git_client()
args = {
"git_pull_request_to_create": {
"sourceRefName": f"refs/heads/master",
"targetRefName": f"refs/heads/master",
"forkSource": {"repository": {"repository": child_repo_id}},
"title": "...",
"description": "...",
},
"repository_id": parent_repo_id,
}
res = CLIENT.create_pull_request(**args)
我提供的嵌套字典forkSource
是库的反复试验的结果,它确实成功地创建了一个 PR。但是,这创建的 PR 是要合并parent:master
到parent:master
,所以它没有用。
我该如何更改,以便为toargs
创建 PR ?child:master
parent:master
解决方案
好的,我对文档进行了更深入的研究,从forkSource
. 按照这个链接到这里然后在这里很明显forkSource
必须像这样制定:
"forkSource": {"repository": {"id": child_repo_id}}
奇怪的是,DevOps API 忽略了嵌套repository
参数,而不是(最好)抛出错误。此更改解决了该问题并创建了一个类似于我所追求的 PR。
完整代码:
from azure.devops.connection import Connection
from msrest.authentication import BasicAuthentication
_connection = Connection(base_url=URL, creds=BasicAuthentication("", PAT))
CLIENT = _connection.clients.get_git_client()
args = {
"git_pull_request_to_create": {
"sourceRefName": f"refs/heads/master",
"targetRefName": f"refs/heads/master",
"forkSource": {"repository": {"id": child_repo_id}}, # the only change required
"title": "...",
"description": "...",
},
"repository_id": parent_repo_id,
}
res = CLIENT.create_pull_request(**args)
推荐阅读
- rxjs - 如何从 rxjs 访问以前的 mergeMap 值
- amazon-web-services - S3 存储桶访问被锁定
- razor - ASP .Net Core Razor:无法从我的 PageModel 返回 ViewComponent
- c - C 带指针的动态分配
- r - R读取powerpoint .ppt文件
- dataset - 属性选择方法 Weka
- javascript - 服务器端渲染 - Redux 将状态传递给客户端
- jquery - 在将 ID 输入到输入字段时从 postgresql 获取数据
- angular - 使用 npm install -g @angular/cli 安装 CLI 时,出现以下错误:
- javascript - 如何从 ArrayBuffer 构建 Float32Array