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

如何通过Azure DevOps REST API获取拉取请求的文件变更差异?

获取Azure DevOps拉取请求文件变更差异的REST API方案

要实现和Azure DevOps拉取请求(PR)中Files标签一致的文件变更查询,你需要使用针对Pull Request的专属REST API,而非单个Commit的变更接口:

1. 获取PR的所有变更文件列表

使用Pull Request Changes接口可以拿到PR中所有变更文件的基本信息(变更类型、路径等):

GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/pullrequests/{pullRequestId}/changes?api-version=7.2

2. 获取具体文件的差异内容

如果需要查看文件的具体变更差异(和Files标签里的代码对比一致),可以使用Git Diff接口:

  • 通过Commit ID对比:
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/diffs/commits?baseCommit={baseCommitId}&targetCommit={targetCommitId}&api-version=7.2

其中baseCommitId是PR目标分支的基准Commit,targetCommitId是PR源分支的头部Commit。

  • 通过分支/PR引用对比(更贴合PR场景):
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/diffs?baseVersion=refs/heads/{targetBranchName}&targetVersion=refs/pull/{pullRequestId}/merge&api-version=7.2

这种方式直接基于PR的目标分支和合并引用获取完整差异,和Files标签的展示逻辑一致。

注意事项

  • 两个接口结合使用:先通过Pull Request Changes接口筛选出变更的文件,再用Diff接口获取对应文件的详细差异内容。
  • 确保请求中携带有效的Azure DevOps认证信息(如PAT令牌)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 16:28:18