我正在使用 GitLab api 来列出管道中的作业。过去一直很好,但我在流程中添加了一些额外的项目,现在它没有返回所有的工作:
$ curl --globoff -sSH "$CURL_HEADER" https://.../api/v4/projects/$CI_PROJECT_ID/pipelines/$PIPEID/jobs?scope[]=success | jq --raw-output '.[] | "\(.id)"' | wc -l
20
缺少的作业不是重试(如 noted here )。
我可以在 Web 界面中看到缺少的 jobid。
通过这种方法是否最多有 20 个作业?
最佳答案
原来这个 API 响应是分页的,文档中没有关于 this item 的指示.
有一个通用项目描述this here ,但它没有给出与之相关的路线列表。如果是这样,它可能会更容易出现在搜索结果中。
我需要做的就是附加 &per_page=100
(qq-ing 用于我的用例的 &
)。或者,您可以检查 X-Next-Page
值的返回 header ,然后附加 &page=X
以获取后续页面...
相关的页面变量是:
x-next-page: 2
x-page: 1
x-per-page: 20
x-prev-page:
x-total: 23
x-total-pages: 2
关于gitlab-ci - 亚搏体育应用程序 API : pipeline not returning all jobs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64394016/