1

问题:我试图弄清楚如何从 GitLab API 获取待处理的作业/构建/管道的数量。

背景:目标是使用这些数据作为基于待定构建自动扩展 CI 运行器的基础。由于我们工作的尖峰性质,基于 CPU 的常规自动缩放不能很好地工作。工作完成得太快,跑步者启动时间太长。

我所做的:我查看了Pipelines APIJobs API。我们使用 轮询所有作业Scope pending和所有管道Status pending,但这些始终为零。即使有挂起的构建。

TBH 我什至不确定这里的术语。我应该查看 Jobs API、Pipelines API 还是其他东西?

我也不确定Scopevs.Status这里的含义。不幸的是,API 文档中没有解释。

任何帮助,将不胜感激。

4

1 回答 1

2

您应该从Jobs API获取待处理作业的列表:

curl -g --header "PRIVATE-TOKEN: <your_private_token>" "https://<gitlab_url>/api/v4/projects/<project_id>/jobs?scope=pending"

示例:我启动了一个管道,其中是9作业,但concurrency我的跑步者设置为3

curl -g --header "PRIVATE-TOKEN: <your_private_token>" "https://<gitlab_url>/api/v4/projects/<project_id>/jobs?scope=pending" | jq '. | length'

并且输出正确6

于 2018-02-27T12:32:51.343 回答