Skip to content

Загрузка результатов сканирований

Вы можете загрузить результаты сканирования любого из поддерживаемых сканеров в Vampy командой upload

Для этого необходимо указать:

  • репозиторий или продукт (--repository/--product)
  • файл для загрузки (--file)
  • имя сканера, результаты которого загружаются (--scanner)

Пример загрузки результатов сканирования сканера TRIVY репозитория vmp/product/vampy-engine:

vampy-cli upload --repository vmp/product/vampy-engine --file ~/scans_trivy_image.json --scanner TRIVY_IMAGE

Вывод команды:

ScanUpload: 0101e9e8-a49c-49d2-b7fb-a129bfcc9d3e

В результате вы получите id фоновой задачи, статус которой необходимо отслеживать для оценки успешности загрузки сканирования

Скан-пайплайн: привязка и ожидание

Ответ может содержать scanPipelineID, если пайплайн создан или привязан к загрузке. Параметры:

  • --pipeline-id — внешний идентификатор (например CI_COMMIT_SHA), чтобы несколько загрузок попали в один пайплайн;
  • --pipeline-name — человекочитаемое имя;
  • --pipeline-finish — после этой загрузки сообщить платформе о завершении стороны пайплайна (внешние джобы сделаны);
  • --check-pipeline — ждать финального статуса и aggregationCompleted; обязателен --pipeline-finish, иначе ошибка валидации CLI;
  • --check-full — полный контур: фоновая задача, QG и при выполнении условий — ожидание пайплайна.

Ожидание пайплайна после upload включается только если в ответе API есть scanPipelineID, задан --pipeline-finish и указан --check-full или --check-pipeline.

--check-full --pipeline-finish Ожидание пайплайна
да да да
да нет нет (только BG и QG)
нет да да, только с --check-pipeline
нет нет нет

Пример финальной загрузки в CI с ожиданием пайплайна:

vampy-cli upload --repository vmp/product/vampy-engine --file ~/scans_last.json --scanner TRIVY_FS \
  --pipeline-id "$CI_COMMIT_SHA" --pipeline-finish --check-pipeline --verbose

Подробнее о командах pipeline create / list / status см. Управление пайплайнами сканирования.

Дополнительные параметры

Автоматическое отслеживание обработки результатов сканирования

Используя опцию --check-full вы можете автоматически отслеживать обработку результатов сканирования (фоновая задача, QG и при сценарии с пайплайном — см. таблицу выше):

vampy-cli upload --repository vmp/product/vampy-engine \
  --file ~/scans_trivy_image.json --scanner TRIVY_IMAGE --check-full

Пример вывода команды:

ScanUpload: e75c4c39-8c15-4166-8711-f5fefc398816
QG: FAILED

Автоматическая проверка на соответствие SQG

Используя опцию --check-qg вы автоматически получите результаты прохождения Security Quality Gate после загрузки результатов сканирования:

vampy-cli upload --repository vmp/product/vampy-engine --file ~/scans_trivy_image.json --scanner TRIVY_IMAGE --check-qg --details

Пример вывода команды:

--------
Run scan result uploading for repository vmp/product/vampy-engine | scanner TRIVY_IMAGE ...
--------
✅ Scan successful uploaded
Parser: TRIVY_IMAGE
Repository:  [CRITICAL]Vampy Engine
Link: https://vampy.hexway.io/repositories/11234494-738c-404b-aa1b-14a8959de52d/
TaskID: b51c7920-d0b2-463c-96f7-ee7d78a1256d
Task Link: https://vampy.hexway.io/admin/bgTasks?id=b51c7920-d0b2-463c-96f7-ee7d78a1256d
Pipeline Link: https://vampy.hexway.io/repositories/91ffb93e-0323-45f2-9778-a70da8409474/scans?pipelinePanelId=bfd77d07-3167-4d14-a7b8-ceb9310c8696

--------
Checking SQG for repository 'vmp/product/vampy-engine' ...
--------

⛔ QualityGate: 'Critical'
Repository: 'Vampy Engine'
Link: https://vampy.hexway.io/repositories/11234494-738c-404b-aa1b-14a8959de52d/
Status: FAILED
Results:
┌────────┬──────────────┬────────────┬───────────┬───────────────┐
│ STATUS │ SCANNER TYPE │ SEVERITIES │ MAX VALUE │ CURRENT VALUE │
├────────┼──────────────┼────────────┼───────────┼───────────────┤
│ PASSED │ SAST         │ CRITICAL   │         0 │             0 │
│ PASSED │ DAST         │ CRITICAL   │         0 │             0 │
│ FAILED │ SCA          │ CRITICAL   │         0 │             1 │
│ PASSED │ SAST         │ HIGH       │         0 │             0 │
│ PASSED │ DAST         │ HIGH       │         0 │             0 │
│ FAILED │ SCA          │ HIGH       │        10 │            20 │
│ PASSED │ SAST         │ MEDIUM     │         5 │             0 │
│ PASSED │ DAST         │ MEDIUM     │         5 │             0 │
│ FAILED │ SCA          │ MEDIUM     │        40 │            62 │
│ PASSED │ SAST         │ LOW        │        10 │             0 │
│ PASSED │ DAST         │ LOW        │        10 │             0 │
│ FAILED │ SCA          │ LOW        │       100 │           137 │
└────────┴──────────────┴────────────┴───────────┴───────────────┘

Параметры команды upload

Параметр Описание Значение по умолчанию
--file value Файл с результатами сканирования (обязательный)
--repository value SLUG или ID репозитория
--branch value Ветка репозитория
--branch-set-default Установить ветку репозитория как ветку по умолчанию false
--product value SLUG или ID продукта
--scanner value Название сканера (обязательный)
--artifact value Идентификатор артефакта для сканирования/загрузки
--pipeline-id value Идентификатор внешнего пайплайна сканирования
--pipeline-name value Имя с которым будет создаваться пайплайн
--pipeline-finish Завершить пайплайн сканирования после загрузки false
--check-qg Проверить Quality Gate после загрузки false
--check-task Проверить статус фоновой задачи false
--check-pipeline Ждать финальный статус пайплайна (нужен --pipeline-finish) false
--check-full Полный процесс: BG, QG и пайплайн при --pipeline-finish false