Вебинар: Go-Go-Gadg...Error? Смотрим, как ошибаются Go разработчики! - 26.08
Для отправки результатов анализа на сервер используется утилита Atlas Scanner. Она распространяется в готовом образе Docker:
pull viva64/atlas-scanner
Загружается последняя стабильная версия утилиты. Для загрузки конкретной версии используйте систему тегов Docker:
pull viva64/atlas-scanner:8.0
Рекомендуется использовать все сервисы PVS-Studio Atlas одной версии.
Перед запуском сканнера введите лицензию PVS-Studio на сервере и подготовьте два параметра, значения которых можно найти в настройках сервера:
Подробнее об этих настройках можно узнать в документации "Управление проектами и ветками".
Для ознакомления с параметрами запуска введите команду:
docker run --rm viva64/atlas-scanner --help
Минимальная команда для запуска может выглядеть так:
docker run --rm -v "/Users/nickname/Downloads/BotSharp":"/mnt/project" viva64/atlas-scanner --reportPaths /mnt/project/BotSharp.json --sourceTreeRoot /mnt/project/ --serverUrl http://atlas-server:8080 --apiKey 49931204-56e0-4cbf-b87a-29c94735cc9e --branchId 85c6129f-0097-466a-9e48-466a7b74d75f --logDir /mnt/project/scanner_logs
Для быстрого старта замените выделенные жирным фрагменты на свои.
Если Atlas Server и Atlas Scanner запускаются на одном компьютере, то результаты анализа необходимо отправить по адресу http://host.docker.internal:8080.
Используемые аргументы командной строки Docker:
run (обязательный) — создаёт и запускает новый контейнер на основе указанного образа.-v (обязательный) — монтирует каталог с проектом к контейнеру Docker, чтобы Atlas Scanner в контейнере мог обработать отчёт анализатора и исходные файлы.--rm — указывает Docker удалить контейнер после завершения работы.Основные аргументы командной строки Atlas Scanner:
--version — выводит информацию о текущей версии сканнера.--help — выводит в консоль справку со всеми аргументами командной строки.--reportPaths (обязательный) — пути до отчётов анализаторов в форматах .plog, .json и .sarif. Можно перечислить несколько путей, если в одну ветку проекта нужно загрузить отчёты от разных анализаторов кода.--sourceTreeRoot (обязательный) — путь до каталога с проектом, где расположены файлы с исходным кодом;--serverUrl (обязательный) — адрес сервера, где развёрнут принимающий результаты Atlas Server.--apiKey (обязательный) — ключ авторизации, допускающий Atlas Scanner к подключению. API-ключи создаются в настройках Atlas Server сотрудником, имеющим право Администратор;--branchId (обязательный) — идентификатор ветки в проекте, куда необходимо загрузить результаты анализа.--logDir — каталог, который содержит различные логи работы Atlas Scanner. Логи работы анализатора или отчёты анализатора в сохраняемую информацию не входят.--sourceMask — маска, по которой файлы исходного кода запаковываются и отправляются на сервер. Значение по умолчанию: .c.cpp.hpp.h.cc.cxx.cs.csx.razor.java.ts.js.go.--uploadMode — аргумент задаёт режим работы с файлами исходного кода:ReportSources (по умолчанию) запаковывает только те файлы исходного кода, на которые указывает отчёт анализатора. Игнорирует аргумент sourceMask.MaskSources — запаковывает все исходные файлы по маске, указанной в аргументе sourceMask, а также файлы, на которые указывает отчёт анализатора.WithoutSources — файлы с исходным кодом не отправляются на сервер.--quietMode — режим без вывода информации в консоль. В сочетании с аргументом logDir будет сохранять весь вывод в отдельном файле.Описание кодов возврата утилиты:
.plog;.json;.sarif;.pvsmap перед отправкой;.pvsmap на сервере.