You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps REST API:如何计算变更前置时间(Lead Time To Change)

用Azure DevOps REST API计算变更前置时间的可行方案

既然你已经拿到了完成的PR和关联工作项,接下来要关联部署的话,有两个实用的路径,我给你详细拆解下:

路径1:从拉取请求顺藤摸瓜到部署

这个路径顺着「PR合并记录→构建→部署」的链路走,适合需要精准关联PR直接触发的部署场景:

  1. 获取PR的合并提交记录
    每个完成的PR都会有合并到目标分支的commit,你可以用PR ID调用这个接口拿到所有关联的commit:
GET https://dev.azure.com/{org}/{proj}/_apis/git/repositories/{repoId}/pullRequests/{prId}/commits?api-version=7.1-preview.1

响应里的commitId就是后续需要的关键标识。

  1. 通过Commit ID找到对应的构建
    构建任务通常会关联触发它的commit,用上面拿到的commitId调用构建查询接口,建议加上构建定义ID和成功状态的筛选,缩小范围:
GET https://dev.azure.com/{org}/{proj}/_apis/build/builds?api-version=7.1-preview.7&commitId={commitId}&definitionId={生产构建定义ID}&statusFilter=succeeded
  1. 通过构建ID找关联的生产部署
    拿到构建ID后,调用部署查询接口,明确筛选生产环境且状态为成功的记录:
GET https://dev.azure.com/{org}/{proj}/_apis/release/deployments?api-version=7.1-preview.3&buildId={buildId}&environmentName={你的生产环境名称}&status=succeeded

响应里的completedOn就是部署完成的时间,结合PR的closedDate(PR完成时间)就能算出变更前置时间。

路径2:从关联的工作项直接获取部署

既然你的工作项已经关联了部署,这个路径更直接,不需要绕PR的commit:

  1. 获取工作项的关联关系
    调用工作项详情接口,展开relations字段,就能看到所有关联的链接:
GET https://dev.azure.com/{org}/{proj}/_apis/wit/workitems/{workItemId}?$expand=relations&api-version=7.1-preview.3
  1. 筛选出关联的部署链接
    在返回的relations数组里,找类型为ArtifactLink,且url包含/release/deployments/的条目,类似这样的结构:
{
  "rel": "ArtifactLink",
  "url": "https://dev.azure.com/{org}/{proj}/_apis/release/deployments/{deploymentId}",
  "attributes": {
    "name": "Deployed"
  }
}

提取里面的deploymentId即可。

  1. 获取部署详情
    用deploymentId调用部署详情接口,拿到部署时间和环境信息:
GET https://dev.azure.com/{org}/{proj}/_apis/release/deployments/{deploymentId}?api-version=7.1-preview.3

同样要确认是生产环境的成功部署,再用PR完成时间和部署完成时间计算差值。

一些关键注意事项

  • 一定要筛选生产环境的成功部署,否则如果拿了测试/预发环境的部署记录,计算出来的前置时间会完全不准确。
  • Azure DevOps返回的时间是UTC时区,计算时差时记得转换成你需要的时区,避免出现时间差错误。
  • 部分场景下一个PR可能对应多次部署(比如重新部署生产),建议取最早的那次成功部署时间来计算前置时间。

内容的提问来源于stack exchange,提问作者andomeda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 21:39:06