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

如何用jq语法筛选含制品的GitLab作业ID?

获取GitLab作业中包含制品的作业ID的jq语法实现

针对你的需求,这里提供两种符合要求的jq命令,解决你之前只返回制品信息、丢失作业ID的问题:

方式一:通过检查artifacts_file键是否存在返回作业ID

直接遍历每个作业对象,筛选出包含artifacts_file键的对象,再提取其id字段:

jq '.[] | select(has("artifacts_file")) | .id'

逻辑说明:.[]遍历所有作业对象,select(has("artifacts_file"))过滤出存在目标键的作业,最后| .id输出对应作业ID。

方式二:通过检查artifacts数组是否非空返回作业ID

判断作业对象的artifacts数组长度是否大于0,满足条件则提取作业ID:

jq '.[] | select(.artifacts | length > 0) | .id'

逻辑说明:你之前的命令错误地深入到artifacts数组的元素层级,导致丢失了上层作业对象的ID信息。这个命令在作业对象层级做判断,确保能拿到对应的ID。

如果需要同时返回作业ID和对应的制品信息,可以用以下命令:

jq '.[] | select(.artifacts | length > 0) | {id: .id, artifacts: .artifacts}'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 07:30:54