AZDO API - 获取构建的拉取请求

问题描述 投票:0回答:1

我对如何获得与每个版本相关的 PR 感到困惑。 这是非常关键的事情,因为我们需要知道谁批准了每个构建(PR 批准)。

已提取构建数据 (https://dev.azure.com/{org}/{acc}/_apis/build/builds/{bid}?api-version=7.1)

..但里面没有什么对我来说是显而易见的:(

还做了很多谷歌搜索,也许我没有寻找正确的术语? 一篇文章提到,构建输出上有一个带有 PR id 的参数对象,但那是在 API v5 上的,现在在 v7 中不会出现。

欣赏任何智慧。

azure-devops
1个回答
0
投票

要获取与 Azure DevOps 中的构建关联的拉取请求 (PR) 信息,您是正确的,它没有直接在版本 7.1 中的构建 API 响应中公开。但是,您可以通过利用构建数据中的

sourceVersion
来检索 PR 信息,然后查询与该提交关联的 PR。

第 1 步:从构建中获取
sourceVersion

从您使用 API 提取的构建数据中,查找

sourceVersion
字段。这代表触发构建的提交哈希。

来自构建 API 的示例响应:

{
  "id": 12345,
  "sourceVersion": "abcdef1234567890abcdef1234567890abcdef12",
  // other fields
}

第2步:查询与该提交相关的PR

现在,使用

sourceVersion
(提交哈希),您可以查询 Pull Request API 以查找包含该提交的 PR。您需要像这样调用 Pull Requests API:

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

第 3 步:提取 PR 详细信息

从 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
        }
      ]
    }
  ]
}

在此回复中,您可以看到审阅者及其批准状态。

步骤摘要:

  1. 从构建详细信息中获取
    sourceVersion
    (提交哈希)。
  2. 使用 PR API 查询与该提交关联的拉取请求。
  3. 从 PR 响应中检索审阅者及其批准状态。

这将为您提供触发构建的 PR 以及批准。

© www.soinside.com 2019 - 2024. All rights reserved.