如何通过API获取Azure DevOps当前运行关联环境的变更记录
获取Azure DevOps环境变更标签页数据的API方案
1. 先获取目标环境的所有部署记录
调用Deployments - List API拉取指定环境的全部部署(包含失败部署):
GET https://dev.azure.com/{组织名}/{项目名}/_apis/pipelines/deployments?environmentId={环境ID}&api-version=7.1-preview.3
- 环境ID可从环境页面URL提取,比如环境页URL为
https://dev.azure.com/org/proj/_environments/123,则123就是对应环境ID - 若只需查询失败部署,添加
statusFilter=failed参数即可;留空则返回所有状态的部署
2. 从部署记录中提取变更关联标识
每个返回的部署条目里,properties字段会包含:
- TFVC仓库的
changesetId(变更集ID)或Git仓库的commitId(提交ID) workItemIds(关联的工作项ID列表)
同时记下deploymentId,方便后续核对部署与变更的对应关系
3. 拉取具体的变更详情
代码变更内容
- 针对TFVC变更集,使用以下API:
GET https://dev.azure.com/{组织名}/{项目名}/_apis/tfvc/changesets/{变更集ID}?api-version=7.1-preview.2
- 针对Git提交,使用以下API:
GET https://dev.azure.com/{组织名}/{项目名}/_apis/git/repositories/{仓库ID}/commits/{提交ID}?api-version=7.1-preview.1
(仓库ID可从仓库页面URL或项目仓库列表API中获取)
关联工作项详情
通过以下API批量拉取工作项信息,多个ID用逗号分隔:
GET https://dev.azure.com/{组织名}/{项目名}/_apis/wit/workitems?ids=123,456&api-version=7.1-preview.3
4. 提取失败部署的关联变更
在步骤1的部署记录中筛选status为failed的条目,再重复步骤2、3的操作,即可获取到失败部署对应的变更数据,与环境变更标签页展示内容一致
额外补充
如果不知道目标环境的ID,也可通过以下API列出项目下所有环境后筛选:
GET https://dev.azure.com/{组织名}/{项目名}/_apis/pipelines/environments?api-version=7.1-preview.1
部署记录中的triggerInfo字段还可查看触发部署的分支、PR等信息,便于理清变更的上下文
内容的提问来源于stack exchange,提问作者Anton Kuryan
相关产品推荐
相关产品推荐

