1

目标环境:TFS 2015 更新 3

我们正在尝试让 vNext 构建系统允许我们在通过发布管理部署后仅将变更集和工作项与构建相关联。但是,TFS vNext 构建系统会在构建时自动将这些项目与构建相关联(基于上次成功的构建)。旧的 XAML 构建系统有一个名为 SkipGetChangesetsAndUpdateWorkItems 的属性来关闭它,但它不再存在于新系统中。

因此,我需要在 vNext 构建过程结束时添加一个任务/脚本来删除这些关联(然后向 Release Management 添加一个类似的任务以重新关联它们)。这不是世界上最简单的任务,但似乎通过 TFS REST API 应该是可行的。

但是,我终其一生都无法弄清楚这些关联是如何形成的。变更集的 JSON 似乎没有提及关联的构建,构建的 JSON 似乎也没有提及关联变更集的列表。

变更集/工作项和构建之间的这些关联是如何定义的?

4

1 回答 1

1

没有这样的 Rest API 可以实现remove changeset。在 XAML 构建中,相关信息存储在名为 的 SQL 表dto.tbl_BuildDefinition中,您希望为此重新关联变更集并更改 和 中的LastBuildUri值。详情请参考这个链接:Re-associate changesets and work items with build对于vNext构建定义,我在SQL中没有找到类似的东西。但是必须有一些地方存储了该关联。LastGoodBuildUriLastGoodBuildLabel

对于workitem和build的关联,有一个方法叫做$WorkItemAssociatedURL比如

$WorkItemAssociatedURL = $collectionURL + $project + “/_apis/build/builds/” + $BuildId + “/workitems?api-version=2.0”

$ResponseJSON = Invoke-RestMethod -Uri $WorkItemAssociatedURL -ContentType “application/json” -headers $headers -Method GET

有关更多详细信息,您可以参考此博客:与 vNext 中的工作项建立关联

于 2016-11-17T10:10:23.237 回答