如何使用内部版本号更新已完成的 Azure Devops 工作项上的自定义字段

How to update custom field on completed Azure Devops workitem with Build number

我想在我的 Azure Devops 构建管道中添加一个步骤来执行以下操作

  1. 确定 closed\completed 并且与当前构建中包含的变更集相关联的任何工作项
  2. 更新用当前内部版本号标识的工作项的自定义字段

有谁知道现有的市场步骤是否可以做到这一点?如果没有,过去是否有人编写过可以分享的脚本来执行此操作?

Marketplace 中的 WorkItem Updater 插件将帮助您实现您的一些要求。

您可以查看与您的构建或发布相关的工作项列表,或者您已保存在 Azure DevOps 中的查询结果。

然后您可以选择修改多个 built-in 字段或定义要更新的自定义字段。

这是您将在管道中获得的设置屏幕的参考。

Identify any workitems that are closed\completed and associated with changesets included in the current build

要获取与当前构建关联的工作项,您可以使用 Builds - Get Build Work Items Refs:

GET https://{instance}/{collection}/{project}/_apis/build/builds/{buildId}/workitems?api-version=5.0

要获得 closed/completed 的工作项,您可以使用 Wiql - Query By Wiql:

POST https://{instance}/{collection}/{project}/{team}/_apis/wit/wiql?api-version=5.0

要更新工作项的字段,您可以使用 Workitem-update:

PATCH https://{instance}/CollectionName/_apis/wit/workitems/{id}?api-version=5.0

你可以使用Powershell脚本来执行这些api,$(Build.BuildId)变量代表buildID,$(Build.BuildNumber)变量代表buildNumber,你可以查看predefined variables.

我最终创建了一个新的市场扩展来解决这个问题。

该扩展允许您使用关联的内部版本号更新工作项上的字段。

逻辑如下

  1. 开发人员签入具有关联工作项的代码
  2. 构建管道触发器
  3. 构建过程的最后一步是 ReleaseNotesHub 更新内部版本号步骤
  4. ReleaseNotesHub 步骤将获取关联变更集的工作项
  5. ReleaseNotesHub 步骤将使用内部版本号更新工作项上的字段

ReleaseNotesHub 步骤是非常可配置的,非常适合利用 AzureDevops\TFS 查询设计器来查询与特定构建关联的工作项。

The marketplace extension can be found here