【问题标题】:GitLab API: filter jobs from pipeline by its nameGitLab API:按名称从管道中过滤作业
【发布时间】: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" 之类的请求会将整批作业返回给我。

那么我应该怎么做才能只得到一份工作呢?

【问题讨论】:

    标签: gitlab gitlab-api cicd


    【解决方案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
    猜你喜欢
    • 2022-06-11
    • 2021-03-27
    • 2022-01-16
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-17
    • 2020-08-18
    相关资源
    最近更新 更多