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

如何通过GitLab API获取MR层面的代码行数净变更统计值

GitLab MR级净代码变更行数API使用方案

GitLab官方原生提供了直接返回MR维度净代码变更统计的API,无需自行累加该MR下所有Commit的统计值,具体使用方式如下:

  • 调用API路径为 GET /projects/:id/merge_requests/:merge_request_iid
  • 请求时必须携带参数 statistics=true,返回结果中会包含三个和代码变更相关的核心字段:
    • changes_count:对应MR页面「变更」顶部展示的总变更行数
    • diff_stats.additions:该MR维度的净新增代码行数
    • diff_stats.deletions:该MR维度的净删除代码行数

上述三个字段的统计逻辑和UI完全一致,会自动抵消同一行代码多次增删的重复统计,比如你提到的「第一个Commit加10行、第二个Commit删相同10行」的场景,最终返回的additions和deletions均为0,不会出现累加Commit得到20行新增的错误结果。

如果使用curl请求,示例代码如下:
curl --header "PRIVATE-TOKEN: <你的私有访问令牌>" "https://<你的GitLab实例域名>/api/v4/projects/<项目ID>/merge_requests/<MR的IID>?statistics=true"

如果你的GitLab实例版本低于13.10,该statistics参数尚未支持,可以改用 GET /projects/:id/merge_requests/:merge_request_iid/diffs 接口拉取全量diff内容,自行统计净增删行数,最终结果也会和UI保持一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:45:05