如何通过API获取Gitlab CI/CD已使用分钟数及组配额剩余量
获取GitLab组CI/CD分钟数的单次API调用方案
你可以通过GitLab的组统计API实现单次调用获取所需数据,无需遍历所有流水线:
核心API端点
使用GET /groups/:id/statistics接口,其中:id替换为目标组的数字ID或完整路径(如my-group/sub-group)。
关键返回字段及计算方式
接口返回的JSON中包含以下核心字段(单位为秒,需转换为分钟):
- 已使用总分钟数:
shared_runners_seconds→ 转换公式:shared_runners_seconds / 60 - 配额总分钟数:
shared_runners_seconds_limit→ 转换公式:shared_runners_seconds_limit / 60 - 剩余分钟数:通过计算得到 →
(shared_runners_seconds_limit - shared_runners_seconds) / 60
示例请求(curl)
curl --header "PRIVATE-TOKEN: YOUR_ACCESS_TOKEN" "https://gitlab.example.com/api/v4/groups/123/statistics"
示例返回片段
{ "shared_runners_seconds": 7200, "shared_runners_seconds_limit": 216000, // 其他统计字段... }
对应计算结果:
- 已用分钟数:7200 / 60 = 120分钟
- 配额总分钟数:216000 / 60 = 3600分钟
- 剩余分钟数:(216000 - 7200) / 60 = 3480分钟
注意事项
- 权限要求:需要目标组的开发者及以上权限,访问令牌需包含
read_group或api范围 - 版本要求:该API从GitLab 12.8版本开始支持,请确保你的GitLab实例版本符合要求
内容的提问来源于stack exchange,提问作者D Malan
相关产品推荐
相关产品推荐

