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

如何在Azure DevOps中获取跨仓库的两个构建版本之间的变更记录

你遇到的返回结果为空的原因是,GetChangesBetweenBuildsAsync和GetBuildChangesAsync两个接口默认仅返回流水线所属仓库的变更记录,不会拉取跨仓库的关联提交,所以你存在Repo2的变更不会被默认返回。

解决方案

方法1:使用带跨仓库查询参数的SDK接口重载

你当前使用的TeamFoundationServer.Client 16.170.0版本SDK已经提供了控制是否返回跨仓库变更的参数,只需要在调用接口时显式将includeExternalSourceChanges参数设为true即可:

查询两个构建之间的跨仓库变更

var changes1 = buildClient.GetChangesBetweenBuildsAsync(
    project: "PipelineTest",
    fromBuildId: 2,
    toBuildId: 3,
    includeExternalSourceChanges: true
).Result;

查询单个构建的跨仓库变更

var buildChanges = buildClient.GetBuildChangesAsync(
    project: "PipelineTest",
    buildId: 3,
    includeExternalSourceChanges: true
).Result;

调用后返回的结果就会包含所有关联仓库的变更记录,和Web门户展示的内容一致。

方法2:兼容旧版本SDK的手动请求方案

如果你使用的SDK版本未暴露上述参数,可以直接调用Azure DevOps REST API获取数据,请求时在查询参数中添加includeExternalSourceChanges=true即可,你可以复用SDK已有的身份验证凭据发起HTTP请求,不需要额外配置权限。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:09:02