我正在尝试自动化一些发布后的过程,用于在发布后创建Pull Request(发布分支->主)。虽然我能够自动化PR的创建,它链接提交,但它不链接工作项。
注意:我使用Python,使用来自PyPi(https://pypi.org/project/azure-devops/)的(官方支持的)azure-devops模块。它是围绕REST API的一个薄薄的 Package 器,我已经阅读了REST API文档本身,看看是否有任何其他选项(到目前为止还没有找到任何选项)。下面是我的代码:
def create_pull_request(self, repo_id, source_branch, target_branch, title, description):
pull_request = {
"title": title,
"description": description,
"sourceRefName": "refs/heads/" + source_branch,
"targetRefName": "refs/heads/" + target_branch,
}
response = self._git_client.create_pull_request(pull_request, repository_id=repo_id)
下面是我连接到git客户端的函数:
def __init__(self, personal_access_token=None, organization_url=None):
# Create a connection to the org
credentials = BasicAuthentication('', personal_access_token)
self._connection = azure.devops.connection.Connection(base_url=organization_url,
creds=credentials)
# Get a client (the "core" client provides access to projects, teams, etc)
self._git_client = self._connection.clients.get_git_client()
我还尝试过拉取单个提交,看看是否能找到与之关联的工作项,并在创建后将它们附加到拉取请求中,但这些响应返回的工作项是空的。
有没有其他方法可以做到这一点?
3条答案
按热度按时间pdtvr36n1#
下面是一些链接工作项的方法:
首先,您的
pull_request
可能应该包括:workItemRefs
在https://learn.microsoft.com/en-us/rest/api/azure/devops/git/pull%20requests/create?view=azure-devops-rest-6.0的REST API文档中进行了说明。你需要在那里放什么可能是一些实验的问题。第二,作为替代,你的提交可以以如下形式创建:
然后,当PR被创建时,它将自动链接它在PR中找到的提交中的那些工作项。
fkvaft9z2#
我们无法通过合并请求创建API和合并请求更新API添加工作项链接。我发现了一个feature request,你可以关注门票以获得最新消息。
作为一个工作项,我们可以通过这个REST API Work Items - Update将工作项链接到拉取请求
步骤:
通过以下API获取拉取请求字段
artifactId
:将工作项链接到合并请求:
请求URL:
请求正文:
结果:
更新1
有没有什么地方我可以找到与提交相关的工作项
我们可以列出通过提交ID关联的工作项。
请求URL:
请求正文:
结果:
zxlwwiss3#
有一个API ' CommitsBatch '可以返回2个分支之间的所有提交。此API有一个布尔参数'includeWorkItems',它将返回链接的工作项。您可以从该响应中提取一个唯一的Workitems列表,以在PR创建中使用。