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

如何获取Azure DevOps版本关联的提交记录(基于上一版本)

获取Azure DevOps发布版本的提交记录

方法一:通过Release Changes API获取跨版本提交

你提到的变更接口确实能返回两次发布间的所有提交,但需要先拿到当前流水线上一次成功发布的版本ID:

1. 拉取上一版本ID

在流水线的PowerShell或Bash任务中调用这个API:

GET $(System.TeamFoundationCollectionUri)$(System.TeamProject)/_apis/release/releases?definitionId=$(Release.DefinitionId)&sourceBranch=$(Build.SourceBranch)&$top=2&queryOrder=descending&api-version=7.1-preview.8

参数说明:

  • definitionId:用内置变量$(Release.DefinitionId)指定当前发布流水线ID
  • sourceBranch:可选,过滤同分支的发布,用$(Build.SourceBranch)
  • $top=2:取最新的两个发布,第二个结果的id就是你要的previousReleaseId

2. 调用变更接口拿提交记录

用拿到的previousReleaseId调用:

GET $(System.TeamFoundationCollectionUri)$(System.TeamProject)/_apis/release/releases/$(Release.ReleaseId)/changes?baseReleaseId={previousReleaseId}&api-version=7.1-preview.1

返回的changes数组里,changeType为commit的条目就是提交记录,包含哈希、提交信息、作者等内容。

方法二:直接从关联构建拉取提交(更简单)

如果你的发布是和构建流水线绑定的,直接调用构建的提交记录API就行,不用管上一版本:

GET $(System.TeamFoundationCollectionUri)$(System.TeamProject)/_apis/build/builds/$(Build.BuildId)/changes?api-version=7.1-preview.2

这个接口返回的内容和发布阶段显示的提交列表完全一致,因为发布的变更本质来自关联的构建。

流水线实现提示

  • 确保流水线服务账号有Release Read和Build Read权限
  • 用Azure DevOps CLI能简化操作,比如一行命令拿上一版本ID:
    az devops release list --project $(System.TeamProject) --definition-id $(Release.DefinitionId) --top 2 --query "[1].id" -o tsv
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 11:07:23