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

如何通过Azure DevOps Rest API获取PR中排除合并提交的关联文件列表

Azure DevOps PR 真实变更文件获取方案

方案1:拉取提交列表时过滤合并提交

Azure DevOps 拉取PR提交列表的接口返回的commit对象中,parents字段可直接用于区分合并提交:合并提交的parents数组长度≥2,普通功能提交的parents数组长度为1。你可以在拉取到PR全量提交后,直接过滤掉所有parents长度≥2的提交,再遍历剩余提交的变更列表,即可得到带对应commit id的非合并提交变更文件。
该方案适配原有Pull Request -> Commits -> Changes的流程,改动量小,但如果PR存在交叉合并场景,可能存在少量误差,要求100%对齐PR Files标签效果的话推荐使用方案2。

方案2:调用PR专属变更接口(完全对齐Files标签展示效果)

Azure DevOps 提供了官方的PR全局变更接口,本身就是PR页面Files标签渲染时调用的接口,返回结果和页面展示完全一致,不需要自行遍历commit或做过滤处理:

  • 接口调用路径:GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullRequests/{pullRequestId}/changes?api-version=7.1-preview.1
  • 返回结果的changeEntries数组中,每个元素都包含文件路径item.path、变更类型changeType、对应提交IDcommitId三个核心字段,没有合并提交带来的多余文件记录,直接解析即可使用。

额外优化建议

如果需要保留原有Commits遍历的流程,除了过滤合并提交外,还可以对同一文件的多次变更做去重处理,只保留最新一次提交对应的变更记录,最终结果和PR Files标签展示效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:54:09