Описание
vampy-cli — это утилита командной строки для взаимодействия с сервером Vampy. Она предоставляет возможность управления репозиториями, продуктами, процессами сканирования и другими функциями через простые команды.
vampy-cli легко использовать в конвейерах CI/CD для запуска сканирования и прерывания релизов, если сканирование не удалось или результаты сканирования не соответствуют указанным критериям релиза.
Использование
Доступные команды
uploadЗагружает существующие результаты сканирования на сервер. Для инкрементальных сканов в CI — флаг--skip-auto-resolve(подробнее); в APIPOST /api/ext/v1/scan_uploads/— полеskipAutoResolve.scanЗапускает процесс сканирования для указанного репозитория и сканера.sqgПоказывает QualityGate для выбранного продукта или репозитория.bg-taskПроверяет статус фоновой задачи и выводит подробности.listПолучает информацию о различных ресурсах системы. Подкоманды:products— список продуктовrepos— список репозиториевscanners— список сканеровscan-profiles— список профилей сканированияsqg— список quality gatespipelines— список скан-пайплайнов (--repositoryили--product;--branch— с репозиторием)
pipelineУправление скан-пайплайнами (подробнее). Подкоманды:create— создать пайплайн (статусPENDING)list— список пайплайнов с фильтрами (аналогичноlist pipelines)status— статус пайплайна; опрос до завершения —--check-pipelinefinish— сигнал завершения: внешние задачи выполнены, пайплайн может закрыться
serviceСервисные команды (подробнее):sync-artifact— синхронизировать версии артефакта из registry-интеграцийsync-repo— синхронизировать ветки репозитория из VCS-интеграций
help, hПоказывает список доступных команд или справку по одной из команд.
Глобальные параметры
Общие параметры
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
--help, -h |
Показывает справку. | |
--details |
Показывает детализированный вывод для запрошенного действия (например, таблицу с результатами QualityGate). | false |
--verbose |
Показывает дополнительный вывод (например, выполнение каждого шага действия). | false |
--version, -v |
Выводит только версию программы. | false |
Параметры подключения
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
--api-token value |
API-токен Vampy (или из переменной окружения). | значение из $VAMPY_API_TOKEN |
--api-version value |
Версия API Vampy. | v1 |
--ignore-ssl-check |
Пропустить проверку SSL-сертификата при подключении к серверу Vampy. | false |
--timeout value |
Таймаут в секундах (также переменная VAMPY_API_TIMEOUT). |
120 |
--vampy-url value |
URL-адрес сервера Vampy (или из переменной окружения). | значение из $VAMPY_URL |
Аргументы командной строки имеют приоритет над переменными окружения. Например, если заданы и VAMPY_URL, и флаг --vampy-url, будет использовано значение флага.
Коды выхода
Используются в CI/CD для прерывания пайплайна при ошибках.
| Код | Когда |
|---|---|
| 0 | Успех; QG passed/skipped; BG success; неошибочный статус пайплайна |
| 1 | Фоновая задача FAILED (bg-task, scan/upload с --check-task / --check-full) |
| 2 | Quality Gate FAILED или ERROR (sqg, scan/upload с --check-qg / --check-full) |
| 3 | Неизвестный статус QG или неожиданное финальное состояние BG |
| 4 | Таймаут ожидания QG или BG (в пределах --timeout) |
| 11 | Ошибка валидации CLI (неверная комбинация флагов, не хватает обязательных опций) |
| 12 | Ошибка API / HTTP от Vampy |
| 20 | Статус пайплайна ERROR (pipeline status или ожидание в upload / scan) |
| 22 | Таймаут опроса пайплайна до aggregationCompleted и терминального статуса |
Для pipeline status коды 0 — SUCCESS, PARTIAL_SUCCESS, PENDING, IN_PROGRESS; 20 — ERROR.
Подробнее: Управление пайплайнами сканирования.
Конфигурация
Для использования vampy-cli необходимо определить два обязательных параметра подключения:
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
--api-token value |
API-токен Vampy (или из переменной VAMPY_API_TOKEN). |
API Token from env 'VAMPY_API_TOKEN' |
--vampy-url value |
URL сервера Vampy (или из переменной VAMPY_URL). |
URL from env 'VAMPY_URL' |
Вы можете определить их несколькими способами:
Переменные окружения
export VAMPY_API_TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InJlc3QtYXBpLXNlYy1lbmdpbmVlciIsImlhdCI6MTcyNTQzMjc5MS4wNjI5NX0.YMCIToiWf0wJwGG8O37-i7I1p47TCFQZyM2ZzxHWcxk
export VAMPY_URL=https://vampy.hexway.io
# получим список репозиториев
vampy-cli list repos
Параметры командной строки
# получим список репозиториев
vampy-cli --vampy-url https://vampy.hexway.io --api-token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InZtcC1jbGkiLCJpYXQiOjE3MzM5MzI2MDYuNjk1Mjk4fQ.TNWsDdhpct6PhZ0jTBZ7QTQyFuMzLN2oBr99e3uhRkA list repos
Параметры CLI имеют более высокий приоритет, чем переменные окружения.
Переменные окружения
| Переменная | Назначение |
|---|---|
VAMPY_API_TOKEN |
API-токен для подключения к серверу Vampy |
VAMPY_URL |
URL сервера Vampy |
VAMPY_API_VERSION |
Версия API Vampy |
VAMPY_API_TIMEOUT |
Тайм-аут HTTP-запросов и опроса в секундах |
VAMPY_IGNORE_SSL_CHECK |
Пропустить проверку SSL-сертификата |
VAMPY_TEMP_DIR |
Каталог временных архивов репозитория и Docker image (команда scan) |
DOCKER_HOST |
Endpoint Docker daemon для --docker-image (например unix:///var/run/docker.sock) |