咨询Bitbucket Server获取拉取请求Diff Stat的REST API方案
获取Bitbucket Server拉取请求的Diff统计信息
官方REST API方案
Bitbucket Server提供了两个直接对应需求的REST API端点,替代你在Bitbucket Cloud中使用的diff接口:
1. 直接获取汇总统计数据
使用stats端点可以直接返回拉取请求的新增行数、删除行数等核心统计,无需解析完整diff内容:
GET /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/stats
响应示例(JSON结构):
{ "addedLines": 125, "removedLines": 42, "changedFiles": 18, "commits": 5 }
2. 获取完整Diff并提取统计
如果需要同时获取diff内容和统计信息,可使用diff端点:
GET /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/diff
返回的响应头部会包含X-Diff-Added和X-Diff-Removed字段,也可以从返回的diff文本末尾的统计行中提取行数数据。
替代方案:Git命令行方式
若无法通过API访问,可通过Git命令直接计算分支间的diff统计:
- 拉取仓库并切换到拉取请求的目标分支(如
main) - 拉取PR的源分支(如
feature/new-function) - 执行统计命令:
git diff --shortstat main..feature/new-function
输出示例:
18 files changed, 125 insertions(+), 42 deletions(-)
该方式需要确保拥有仓库访问权限,适合在服务器端脚本中执行。
版本兼容性说明
上述API端点适用于Bitbucket Server 5.0及以上版本,不同小版本可能存在细微字段差异,建议结合对应版本的官方文档确认细节。
内容的提问来源于stack exchange,提问作者Yusuf Musa
相关产品推荐
相关产品推荐

