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

如何通过GitLab API获取特定事项或任务的详细时间追踪数据?

GitLab 详细时间追踪报告实现方案

现有API的局限性

目前我在GitLab官方文档中仅能找到单个Issue的时间统计接口:

GET /projects/:id/issues/:issue_iid/time_stats

返回的是该Issue的时间汇总数据:

{
  "human_time_estimate": "2h",
  "human_total_time_spent": "1h",
  "time_estimate": 7200,
  "total_time_spent": 3600
}

但这个接口只能提供单Issue的合计值,无法生成截图中那种包含时间花费明细、人员记录的完整追踪报告(该截图来自GitLab企业版)。

GitLab企业版时间追踪报告

生成详细报告的可行方法

1. 使用EE专属的时间明细接口

GitLab企业版提供了获取单个Issue下所有时间花费记录的接口,能拿到每条时间投入的具体信息:

GET /projects/:id/issues/:issue_iid/time_spent_entries

返回示例(包含提交人、时间、时长、备注等明细):

[
  {
    "id": 101,
    "spent_at": "2024-05-21T09:30:00Z",
    "user": {
      "id": 202,
      "name": "Jane Smith"
    },
    "hours": 2.0,
    "human_hours": "2h",
    "note": "完成接口开发"
  },
  {
    "id": 102,
    "spent_at": "2024-05-22T14:15:00Z",
    "user": {
      "id": 303,
      "name": "Mike Lee"
    },
    "hours": 1.5,
    "human_hours": "1h30m",
    "note": "修复测试反馈的bug"
  }
]

2. 组合接口生成完整报告

如果需要覆盖多个Issue的汇总+明细报告,可按以下步骤实现:

  • 调用GET /projects/:id/issues批量拉取目标项目的Issue列表(可通过state、labels等参数过滤范围);
  • 对每个Issue分别调用/time_spent_entries获取明细,同时调用/time_stats获取该Issue的时间预估、总花费汇总;
  • 自行聚合这些数据,整理成类似截图的格式,比如按Issue分组,展示预估时间、已花费时间,再列出每条时间记录的人员、时长、备注等信息。

注意事项

  • time_spent_entries接口仅GitLab企业版(EE)支持,社区版无此功能;
  • 调用API时需确保使用的令牌拥有read_api权限;
  • 批量调用时需遵守GitLab的API速率限制,可添加适当延迟避免被限流。

内容的提问来源于stack exchange,提问作者Михайлуц Юрий

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 18:16:18