如何通过命令行查询GitLab当日产生的全部push事件
GitLab命令行查询当日所有push事件操作指南
原有命令问题说明
你当前使用的是项目标签操作接口,请求方法为POST,用途是创建指定版本的项目标签,和查询push事件完全无关,因此无法返回对应结果。
前提准备
- 提前申请GitLab个人访问令牌(PAT),权限范围勾选read_api即可,查询全实例事件需要管理员权限的令牌
- 确认你要查询的目标项目ID,或确认需要查询整个GitLab实例的所有事件
操作命令
单项目当日push事件查询
使用GitLab事件查询接口,指定过滤push动作和当日起始时间即可,命令如下:
# Linux环境执行 curl --header "PRIVATE-TOKEN: 替换为你的实际PAT" "https://gitlab.com/api/v4/projects/389/events?action=pushed&after=$(date -d 'today 00:00:00' +%Y-%m-%dT%H:%M:%SZ)&per_page=100" # macOS环境执行 curl --header "PRIVATE-TOKEN: 替换为你的实际PAT" "https://gitlab.com/api/v4/projects/389/events?action=pushed&after=$(date -v0H -v0M -v0S +%Y-%m-%dT%H:%M:%SZ)&per_page=100"
参数说明:
action=pushed:仅返回push类型的事件after参数值为当日0点的ISO8601格式时间,确保只返回当日产生的事件per_page=100:调整单页返回条数,最大支持100,若事件超过100条可读取返回头的x-next-page字段,拼接page=页码参数查询下一页- 如果你使用私有部署的GitLab,将域名
gitlab.com替换为你实际的GitLab实例域名即可
全实例当日push事件查询
如果需要查询整个GitLab实例所有项目的当日push事件,将接口路径替换为全局事件接口即可,需要管理员权限的PAT:
# Linux环境示例 curl --header "PRIVATE-TOKEN: 替换为你的管理员PAT" "https://gitlab.com/api/v4/events?action=pushed&after=$(date -d 'today 00:00:00' +%Y-%m-%dT%H:%M:%SZ)&per_page=100"
结果格式化
如果需要更易读的格式化输出,可以安装jq工具后在命令末尾拼接| jq .,即可将返回的JSON结构格式化打印。
内容的提问来源于stack exchange,提问作者Anjan
相关产品推荐
相关产品推荐

