如何通过AZDO API获取各构建关联的Pull Request?
解决Azure DevOps构建关联PR及审批人查询问题
1. 从现有构建API中提取PR关联信息
你调用的构建详情API(https://dev.azure.com/{org}/{acc}/_apis/build/builds/{bid}?api-version=7.1)其实包含PR关联数据,只是藏在triggerInfo字段内。如果构建由PR触发,trigger字段的type会显示为pullRequest,同时triggerInfo里会包含以下关键信息:
pr.number:PR的编号system.pullRequest.pullRequestId:PR的唯一IDsystem.pullRequest.sourceRepositoryUri:PR所属仓库的标识
直接解析这个字段就能拿到PR核心信息,无需切换到旧版本API。
2. 用专用API获取构建关联的PR列表
如果存在构建手动关联多个PR的场景,可以调用构建关联PR的专属接口:
GET https://dev.azure.com/{org}/{acc}/_apis/build/builds/{bid}/pullrequests?api-version=7.1
该接口会直接返回所有与当前构建关联的PR对象,包含PR ID、标题、状态等完整数据。
3. 查询PR的审批人及状态
拿到PR ID后,调用PR评审者接口获取审批人信息:
GET https://dev.azure.com/{org}/{acc}/_apis/git/repositories/{repoId}/pullrequests/{prId}/reviewers?api-version=7.1
返回结果中的vote字段代表审批状态:
10:已批准-10:建议修改-5:已拒绝5:等待中
通过这个字段可以筛选出批准该PR的用户。
补充说明
如果构建并非由PR触发(比如手动构建、分支自动构建),则不会有PR关联数据,这种情况可根据业务需求做忽略或特殊处理。
内容的提问来源于stack exchange,提问作者SiBush
相关产品推荐
相关产品推荐

