要构建的工作项/要发布的工作项,TFS 2015 数据库中的关系

Work Item to Build / Work Item to Release, relationships in TFS 2015 database

工作项与 Build/Release 之间的关系存储在 Team Foundation Server 2015(更新 2.1)数据库中的什么位置?

构建和发布 APIs,根据他们的文档,可以查询与 Build/Release 相关的任何工作项,如下所示:

http://tfsservername:8080/tfs/collectionname/Sandbox/_apis/build/builds/2872/workitems
http://tfsservername:8080/tfs/collectionname/Sandbox/_apis/Release/releases/19/workitem

WorkItem API 没有可用的此类调用。

仅背景信息: 目前,TFS 2015 Update 2.1 中的工作项没有选择 'Add Link' 发布 - 这使得项目经理很难跟踪工作项部署,在数十个项目中管理数十个 builds/releases。我想反转上述 API 调用使用的查询,以添加此功能。

目前,WorkItem、Release 和 Build API 都不包含任何根据 WorkItems 定位 Release 的调用。

同样,Tfs_Warehouse 数据库中不存在此信息(通过启用 TFS Reporting/Analysis 创建),事实上在撰写本文时,'Release' 中没有任何信息完全没有。

为了按工作项查找发布,您可以使用团队项目数据库来访问此信息。虽然不存在直接关系,但您可以对加载发布时 TFS 调用的各种存储过程进行逆向工程(此时显示工作项):

DECLARE @workItem int;

SET @workItem = 751;

SELECT *
FROM Release.tbl_Release AS r
JOIN Release.tbl_ReleaseArtifactSource AS a ON a.ReleaseId = r.Id
JOIN Build.tbl_Change AS c ON c.BuildId = a.ArtifactVersionId
JOIN tbl_Mention AS m ON m.SourceId LIKE CONCAT('%', c.Descriptor, '%') -- Guid
WHERE m.ArtifactId = @workItem;

然后您可以通过 Web API 或通过以编程方式注入作为 WorkItem 团队查询并通过 TFS 扩展调用来使用此查询。