这是我的管道定义的伪代码:
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 进行查询。
您知道解决此问题的方法吗?还是我只是在这里犯了一个错误?
漏洞发现 API - 当管道尚未完成时,您无法获得发现结果。 API 文档中对此没有确切的限制,但它存在于管道的 security 选项卡的文档中:
管道漏洞报告仅在管道启动后显示 完全的。如果管道有阻塞手动作业,则管道 等待手动作业,漏洞无法显示 如果阻塞手动作业未运行。并在管道的安全选项卡上显示漏洞报告 -
vulnerability findings
使用 API。