我正在尝试使用 ADO 中的构建状态更新链接的工作项。 我创建了一个脚本,使用 build.id 从 RestApi 获取链接项目并发布所需的更新。脚本运行良好。我的问题是,我发现某些版本中有 1-2 个链接项,但其他版本列出了所有更改和工作项,这在这种情况下是一个大问题。
存储库中的工作流程如下。开发人员从开发分支创建新分支,提交更改并将 PR 返回到开发,并将正确的票证附加到 PR。管道在合并时启动,并且在所有阶段都将 PR 引入到 main 中。
有人可以解释为什么有些构建显示来自 PR 的正确链接项目,而有些构建则将所有更改显示为链接项目?我不相信这是设计使然。
有人知道如何以编程方式从构建本身获取 PR id 吗?如果我能获得 PR,我只需查询 restApi 来查找链接到 PR 的项目,而不是构建。
关于如何克服这个问题还有其他创意吗?
- 有人可以解释为什么有些构建显示来自 PR 的正确链接项目,而有些则将所有更改显示为链接项目?
如果您的管道已启用自动将工作项链接到构建或发布,请注意
自动链接包含哪些工作项?
开发软件时,您可以在创建分支、提交或拉取请求时链接工作项。或者,您可以从工作项启动分支、提交或拉取请求,自动链接这些对象,如从工作项驱动 Git 开发中所述。
自动将工作项链接到构建时,会进行以下计算:
- 对于首次构建:
- 识别链接到与构建相关的分支、提交和拉取请求的所有工作项。
- 对于后续构建:
- 识别与正在构建的当前提交 (C1) 关联的所有工作项。
- 识别与同一源分支的最后一个成功构建的提交 (C2) 相关的所有工作项。
- 识别与提交树中C1 和 C2 之间的提交相关的所有工作项。
如果管道的构建是由 PR 触发的(有人知道如何以编程方式从构建本身获取 PR id 吗?
$(Build.Reason)
是
PullRequest
),您可以获得引用
$(System.PullRequest.PullRequestId)
的预定义变量值的 PR id。