我对如何获得与每个版本相关的 PR 感到困惑。 这是非常关键的事情,因为我们需要知道谁批准了每个构建(PR 批准)。
已提取构建数据 (https://dev.azure.com/{org}/{acc}/_apis/build/builds/{bid}?api-version=7.1)
..但里面没有什么对我来说是显而易见的:(
还做了很多谷歌搜索,也许我没有寻找正确的术语? 一篇文章提到,构建输出上有一个带有 PR id 的参数对象,但那是在 API v5 上的,现在在 v7 中不会出现。
欣赏任何智慧。
要获取与 Azure DevOps 中的构建关联的拉取请求 (PR) 信息,您是正确的,它没有直接在版本 7.1 中的构建 API 响应中公开。但是,您可以通过利用构建数据中的
sourceVersion
来检索 PR 信息,然后查询与该提交关联的 PR。
sourceVersion
从您使用 API 提取的构建数据中,查找
sourceVersion
字段。这代表触发构建的提交哈希。
来自构建 API 的示例响应:
{
"id": 12345,
"sourceVersion": "abcdef1234567890abcdef1234567890abcdef12",
// other fields
}
现在,使用
sourceVersion
(提交哈希),您可以查询 Pull Request API 以查找包含该提交的 PR。您需要像这样调用 Pull Requests API:
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullrequests?searchCriteria.sourceRefName=refs/heads/{sourceBranch}&searchCriteria.status=completed&api-version=7.1
或者,您也可以按提交 ID 进行过滤:
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullrequests?searchCriteria.sourceCommitId={commitId}&api-version=7.1
将
{commitId}
替换为上一步中的 sourceVersion
。
从 PR API 的响应中,您将获得与构建关联的 PR。此回复将包括 PR ID、标题、描述和批准详细信息等详细信息。
公关响应示例:
{
"value": [
{
"pullRequestId": 101,
"title": "Fix bug in feature X",
"status": "completed",
"createdBy": {
"displayName": "John Doe"
},
"reviewers": [
{
"displayName": "Jane Smith",
"vote": 10 // Approved
}
]
}
]
}
在此回复中,您可以看到审阅者及其批准状态。
sourceVersion
(提交哈希)。这将为您提供触发构建的 PR 以及批准。