Azure DevOps:识别触发构建的实际用户及REST API回溯方案咨询
如何通过Azure DevOps REST API获取触发构建的实际用户信息
完全可以通过Azure DevOps REST API回溯拿到提交待部署文件列表的实际用户信息,核心是从中间分支的提交记录和流水线触发关联两个维度入手,具体操作如下:
1. 直接查询中间分支的目标提交记录
用户提交待部署文件列表的操作本质是向中间分支推送了一次提交,这个提交记录里直接包含了实际操作的用户信息。你可以调用Git Commits API,通过待部署文件的路径、时间范围精准定位到目标提交:
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/commits?searchCriteria.itemPath={待部署文件列表的路径}&searchCriteria.fromDate={查询起始时间}&api-version=7.1-preview.1
返回结果里的committer字段会包含用户的ID、显示名称、邮箱等完整信息,这就是你要找的实际触发用户。
2. 通过流水线构建记录关联触发源
自动化流水线是由中间分支的提交触发的,你可以先获取对应流水线的构建记录,再从触发信息里关联到提交ID,进而拿到用户信息:
第一步:获取流水线的构建记录
GET https://dev.azure.com/{organization}/{project}/_apis/build/builds?definitions={自动化流水线ID}&api-version=7.1-preview.7
在返回的构建数据中,找到triggerInfo字段下的sourceVersion,这个值就是触发流水线的提交ID。
第二步:用提交ID查询用户信息
把拿到的提交ID代入Git Commits详情API:
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/commits/{commitId}?api-version=7.1-preview.1
直接从返回结果的committer或author字段提取用户信息即可。
3. 通过Pull Request关联源头提交
如果流水线在创建PR时,把中间分支的提交ID写入了PR的描述或自定义字段,也可以通过Pull Requests API反向关联:
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullrequests/{pullRequestId}?api-version=7.1-preview.1
查看返回结果中的commits列表或description内容,找到关联的中间分支提交ID,再按上述方法查询用户信息。
注意事项
- 确保调用API的服务账户拥有仓库提交记录、构建记录的读取权限;
- 如果中间分支提交频繁,建议通过时间范围、文件路径等参数缩小查询范围,提升接口响应效率。
内容的提问来源于stack exchange,提问作者Praneeth
相关产品推荐
相关产品推荐

