如何使用GitLab API按名称过滤指定流水线中的单个job
GitLab API 过滤指定名称流水线Job调整方案
问题原因
你之前的请求存在两处错误导致过滤失效:
- 使用了接口不支持的
name过滤参数,GitLab 该接口无此字段过滤规则,无效参数会被直接忽略,返回全量Job列表 - 参数值额外添加了双引号,即使参数正确,带引号的参数值也会被识别为要匹配带引号的Job名,无法命中目标
正确请求方式
方案1:直接接口过滤(模糊匹配)
GitLab v4 流水线Job查询接口支持search参数做内容模糊匹配,直接构造如下请求即可:gitlab.com/api/v4/projects/:proj_id/pipelines/:pipeline_id/jobs?search=rpm:build
注意:如果你的项目ID是
组/项目的路径格式,需要先做URL编码转为组%2F项目再填入请求,否则会触发404错误。
方案2:全量查询后本地过滤(精准匹配)
如果需要100%匹配Job名称,避免命中名称包含rpm:build的其他Job,可以先请求全量Job列表,再在返回结果中过滤name字段完全等于rpm:build的条目即可。
内容的提问来源于stack exchange,提问作者Double_Mind
相关产品推荐
相关产品推荐

