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

GitLab API查询指定分支提交:起始日期未包含的解决方法

GitLab API 获取提交时包含since起始日期提交的解决方案

GitLab API 的 since 参数默认仅返回提交时间大于指定时间的记录,而非「大于等于」,这就是你设置 since=2022-12-01T12:17:30.000+02:00 后,结果只从12月2日开始的原因——12月1日当天只有提交时间晚于12:17:30的记录才会被纳入,但你的返回结果里没有符合该条件的提交。

解决方法

针对这个问题,有两种调整方式:

  • 方式一:覆盖起始日期全天的提交
    将 since 参数的时间设为起始日期的00:00:00(对应你使用的时区),这样就能包含该日期当天所有提交。比如把原来的 since_date 改为:

    2022-12-01T00:00:00.000+02:00
    
  • 方式二:严格包含指定时间点的提交
    如果需要精确包含等于原 since 时间点的提交,可以将 since 的时间往前调整1秒,利用API的「大于」逻辑覆盖目标时间点。比如原时间是 2022-12-01T12:17:30.000+02:00,修改为:

    2022-12-01T12:17:29.000+02:00
    

修改后的curl命令示例

以方式二为例,调整后的命令如下:

curl -s --header "PRIVATE-TOKEN: <token>" "https://gitlab.example.com/api/v4/projects/ID/repository/commits?ref_name=${branch}&since=2022-12-01T12:17:29.000+02:00&until=${until_date}" | jq -r '.[] | .committed_date + "	" + .title'

补充说明

first_parent=true 参数的作用是仅返回分支的第一父提交(排除合并提交的其他父分支记录),和日期范围的过滤逻辑无关,所以添加这个参数无法解决你的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:15:38