一些 ADO 构建管道显示链接项目中的所有工作项目,而其他项目仅显示相关项目。寻找想法

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

我正在尝试使用 ADO 中的构建状态更新链接的工作项。 我创建了一个脚本,使用 build.id 从 RestApi 获取链接项目并发布所需的更新。脚本运行良好。我的问题是,我发现某些版本中有 1-2 个链接项,但其他版本列出了所有更改和工作项,这在这种情况下是一个大问题。

存储库中的工作流程如下。开发人员从开发分支创建新分支,提交更改并将 PR 返回到开发,并将正确的票证附加到 PR。管道在合并时启动,并且在所有阶段都将 PR 引入到 main 中。

  1. 有人可以解释为什么有些构建显示来自 PR 的正确链接项目,而有些构建则将所有更改显示为链接项目?我不相信这是设计使然。

  2. 有人知道如何以编程方式从构建本身获取 PR id 吗?如果我能获得 PR,我只需查询 restApi 来查找链接到 PR 的项目,而不是构建。

  3. 关于如何克服这个问题还有其他创意吗?

git azure-devops azure-pipelines azure-devops-rest-api
1个回答
0
投票
  1. 有人可以解释为什么有些构建显示来自 PR 的正确链接项目,而有些则将所有更改显示为链接项目?

如果您的管道已启用自动将工作项链接到构建或发布,请注意

自动链接包含哪些工作项?

开发软件时,您可以在创建分支、提交或拉取请求时链接工作项。或者,您可以从工作项启动分支、提交或拉取请求,自动链接这些对象,如从工作项驱动 Git 开发中所述。

自动将工作项链接到构建时,会进行以下计算:

  • 对于首次构建:
    • 识别链接到与构建相关的分支、提交和拉取请求的所有工作项。
  • 对于后续构建:
    • 识别与正在构建的当前提交 (C1) 关联的所有工作项。
    • 识别与同一源分支的最后一个成功构建的提交 (C2) 相关的所有工作项。
    • 识别与提交树中C1 和 C2 之间的提交相关的所有工作项。
    有人知道如何以编程方式从构建本身获取 PR id 吗?
如果管道的构建是由 PR 触发的(

$(Build.Reason)

PullRequest
),您可以获得引用 
$(System.PullRequest.PullRequestId)预定义变量
值的 PR id。

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