使用 GitLab REST api 获取有关运行管道的信息

问题描述 投票:0回答:1

这是我的管道定义的伪代码:

include:
  - template: Security/Container-Scanning.gitlab-ci.yml

stages:
  - build
  - scan
  - query

build_job:
  stage: build
  ...

container_scanning:
  stage: scan
  ...

query_job:
  stage: query
  ...
  script:
    - curl --header "Authorization: Bearer <token>" \ 
"https://git.example.com/api/v4/projects/${CI_PROJECT_ID}/vulnerability_findings?report_type=container_scanning&pipeline_id=${CI_PIPELINE_ID}"
  ...

我尝试从

container scanning
(仍在运行
)查询
CI pipeline信息。但是,此查询仅返回 []
,当我在完成后对同一管道进行相同的查询时,报告不为空。

因此,当管道仍在运行时,似乎无法通过 GitLab REST API 进行查询。

您知道解决此问题的方法吗?还是我只是在这里犯了一个错误?

continuous-integration gitlab-ci continuous-deployment gitlab-api
1个回答
1
投票
这取决于您尝试使用的 API。例如,可以在管道运行期间使用

pipelinesjobs API。

但是对于

漏洞发现 API - 当管道尚未完成时,您无法获得发现结果。 API 文档中对此没有确切的限制,但它存在于管道的 security 选项卡的文档中:

管道漏洞报告仅在管道启动后显示 完全的。如果管道有阻塞手动作业,则管道 等待手动作业,漏洞无法显示 如果阻塞手动作业未运行。

并在管道的安全选项卡上显示漏洞报告 -

vulnerability findings

 使用 API。

© www.soinside.com 2019 - 2024. All rights reserved.