TFS 2019 vNext构建:如何通过API识别构建自身签入的变更集?
识别TFS2019 vNext构建自行签入的变更集(API方式)
vNext构建的关联变更会包含两次成功构建间的所有变更,但可以通过以下API逻辑精准筛选出构建自身签入的变更集:
1. 从构建详情中提取关联变更
调用构建变更列表API,获取目标构建的所有关联变更:
GET https://{tfs-server}/DefaultCollection/{project}/_apis/build/builds/{buildId}/changes?api-version=5.1
返回的每个变更对象中,重点关注两个字段:
author:构建自行签入的变更,提交者通常是Project Collection Build Service ({collection})这类构建服务账户comment:自动签入的变更注释会包含固定格式,比如[Build {buildId}] Automated check-in,直接关联当前构建ID
2. 校验变更集的构建关联
对目标变更集(如C114、C115、C116),调用变更集详情API:
GET https://{tfs-server}/DefaultCollection/_apis/tfvc/changesets/{changesetId}?api-version=5.1
- 检查变更集的
comments是否包含当前构建ID,自行签入的变更会明确标注关联的构建编号 - 查看
workItems数组,构建自行签入的变更会关联对应的构建工作项(类型为Build)
3. 时间与版本辅助验证
- 构建的
sourceVersion是启动时的基准版本(如C113),自行签入的变更集(如C116)编号必然大于该值 - 变更集的
createdDate会落在构建的startTime和finishTime区间内,无关变更(如C114、C115)的创建时间可能早于构建启动,或不在构建运行窗口内
核心判断规则
满足以下任意2条即可判定为构建自行签入的变更集:
- 提交者为构建服务账户
- 变更注释包含当前构建ID
- 变更集创建时间在构建运行时段内
- 变更集关联当前构建的工作项
内容的提问来源于stack exchange,提问作者Gábor Szikszai
相关产品推荐
相关产品推荐

