GitLab API:按名称从管道中过滤作业
Posted
技术标签:
【中文标题】GitLab API:按名称从管道中过滤作业【英文标题】:GitLab API: filter jobs from pipeline by its name 【发布时间】:2021-12-23 18:40:35 【问题描述】:我在 GitLab API 上有一个 URL,它具有以下结构:
gitlab.com/api/v4/projects/:proj_id/pipelines/:pipeline_id/jobs
现在我只想得到一个下一个名字的工作:“rpm:build”。
gitlab.com/.../jobs/?name="rpm:build"
之类的请求会将整批作业返回给我。
那么我应该怎么做才能只得到一份工作呢?
【问题讨论】:
【参考方案1】:你能用管道连接到 JQ 吗?如食谱所述:
https://github.com/stedolan/jq/wiki/Cookbook#filter-objects-based-on-the-contents-of-a-key
类似这样的:
curl -L gitlab.com/api/v4/projects/:proj_id/pipelines/:pipeline_id/jobs \
| jq -c '.[] | select(.name | contains("rpm:build"))'
【讨论】:
感谢您的回答!不幸的是,我得到了相同的结果,包括所有工作中的所有id
(没有过滤器)。
哦,也许我误会了。所以我猜你只需要第一个发现?
您可以像这样过滤列表:jq -c 'first(.[] | select(.name | contains("rpm:build")))'
您也可以将first
替换为nth(n)
或last
以上是关于GitLab API:按名称从管道中过滤作业的主要内容,如果未能解决你的问题,请参考以下文章
如果前一个管道中正在运行相同的作业,如何等待 GitLab 作业?