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

如何获取构建关联的变更或提交列表 能否使用Build.Repository等预定义变量查询

构建关联变更/提交列表获取方案

预定义变量Build.Repository的作用说明

你无法直接通过Build.Repository前缀的预定义变量获取完整的变更或提交列表,这类变量仅用于存储仓库基础元信息,常见取值包括:

  • Build.Repository.Id:仓库唯一标识
  • Build.Repository.Name:仓库名称
  • Build.Repository.Provider:仓库托管类型(Git、TFVC等)
  • Build.Repository.Uri:仓库访问地址
    所有该前缀的变量都不包含本次构建对应的提交记录、文件变更内容。

获取构建关联变更/提交列表的可行方法

1. 单提交场景直接取基础变量

如果构建是单提交触发的,可直接用以下预定义变量获取当前提交的基础信息:

  • Build.SourceVersion:本次构建对应的完整提交SHA
  • Build.SourceVersionMessage:本次提交的备注内容
  • Build.SourceBranch:提交所属的完整分支路径

2. 多提交场景用版本控制命令拉取

如果是批量提交触发的构建、PR合并构建这类涉及多个提交的场景,可配合版本控制工具命令行拉取变更:

以下为Git仓库的操作示例,操作前需要先把流水线的代码克隆深度调整为0(默认通常为浅克隆仅拉取最新1次提交,无法查询历史差异)

要获取两次构建之间的所有提交列表,执行命令:
git log --pretty=format:"%h %s %an" [上次成功构建的提交SHA]..[当前构建提交SHA]
其中上次成功构建的提交SHA可以通过流水线内置的Build.LastGoodBuildSourceVersion变量获取,也可以自行存储历史构建的Build.SourceVersion值对比。

要获取具体的变更文件列表,执行命令:
git diff --name-only [上次成功构建的提交SHA]..[当前构建提交SHA]

3. 调用CI/CD平台接口获取

所有主流CI/CD平台都提供了构建详情查询接口,你可以在流水线中使用合法身份调用对应接口,直接获取平台已经解析完成的本次构建关联的所有提交、变更文件列表,无需自行处理版本控制命令的适配逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:39:03