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

如何通过GitLab API统计指定时间段的议题创建/关闭数量?

问题描述

我需要统计特定GitLab群组的两个数据:

  • 过去一年内创建的议题总数(无论当前状态是开启还是关闭)
  • 过去一年内关闭的议题总数(无论创建时间)

我尝试使用GitLab Issues statistics API查询,但无法解读结果:

使用创建时间范围的请求

curl --header "PRIVATE-TOKEN: <token>" "https://<gitlab-url>/api/v4/groups/<group-id>/issues_statistics?created_after=2023-01-01T00:00:00Z&created_before=2024-01-01T00:00:00Z"

返回结果:

{"statistics":{"counts":{"all":226,"closed":149,"opened":77}}}

使用更新时间范围的请求

curl --header "PRIVATE-TOKEN: <token>" "https://<gitlab-url>/api/v4/groups/<group-id>/issues_statistics?updated=2023-01-01T00:00:00Z&updated_before=2024-01-01T00:00:00Z"

返回结果:

{"statistics":{"counts":{"all":536,"closed":433,"opened":103}}}

我有两个疑问:返回结果中的“opened”是否应为“open”?有没有其他方法实现我的统计需求?


解决方案

1. 过去一年内创建的议题总数

第一个请求的结果已经直接给出了你需要的数据:

  • all:226 就是2023-01-01至2024-01-01期间创建的所有议题总数,包含开启和关闭状态的所有议题。
  • 关于字段名:GitLab API的响应里确实使用opened而非open,这是API的标准返回字段,无需纠结。

2. 过去一年内关闭的议题总数

你之前用updated参数的方式不正确,因为updated包含所有类型的更新操作(比如修改议题内容、添加评论、变更标签等),无法精准筛选出“关闭时间”在目标范围内的议题。

正确的做法是使用closed_after和closed_before参数,同时指定state=closed聚焦关闭状态的议题,请求示例如下:

curl --header "PRIVATE-TOKEN: <token>" "https://<gitlab-url>/api/v4/groups/<group-id>/issues_statistics?state=closed&closed_after=2023-01-01T00:00:00Z&closed_before=2024-01-01T00:00:00Z"

该请求返回的all字段数值,就是过去一年内关闭的议题总数,无论这些议题的创建时间是什么时候。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 07:02:14