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

问题描述

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

  1. 确定所有已关闭\已完成且与当前版本中包含的变更集相关联的工作项
  2. 更新用当前内部版本号标识的工作项上的自定义字段

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

解决方法

标识所有已关闭\已完成并与之关联的工作项 当前版本中包含的变更集

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

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

要获取已关闭/已完成的工作项,可以使用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

enter image description here

,

市场中的WorkItem Updater插件将帮助您实现某些要求。

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

然后,您可以选择修改多个内置字段或定义要更新的自定义字段。

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

enter image description here