Интеграция PVS-Studio с Hexway
- Преобразование отчёта PVS-Studio в совместимый с Hexway формат
- Импорт отчёта в Hexway
- Использование отчёта PVS-Studio в Hexway
Компания PVS-Studio и платформа Hexway заключили технологическое партнёрство для обеспечения интеграции статического анализатора кода PVS-Studio в экосистему DevSecOps. PVS-Studio — это инструмент для обнаружения потенциальных ошибок и уязвимостей в исходном коде на языках C, C++, C# и Java. Hexway VamPy — это решение, агрегирующее данные о безопасности из разных источников для работы с уязвимостями.
В Hexway можно загрузить результаты анализа PVS-Studio в виде отчёта и работать с конкретными ошибками так же, как это позволяют другие инструменты. Загрузка возможна двумя способами: через пользовательский интерфейс или командную строку с использованием CLI-инструментов.
Преобразование отчёта PVS-Studio в совместимый с Hexway формат
Интеграция происходит с помощью преобразования отчёта PVS-Studio в формат SARIF. Для этого:
- Запустите анализ вашего проекта с помощью PVS-Studio. В нашей документации можно подробно прочитать о том, как запускать анализатор PVS-Studio на операционной системе Windows, а также на операционных системах Linux и macOS;
- Используйте утилиту
PlogConverter
на Windows иplog-converter
на Linux и macOS, входящую в состав PVS-Studio, чтобы преобразовать отчёт анализатора в формат SARIF (Static Analysis Results Interchange Format). О том, как это сделать, можно прочитать в нашей документации. Например, на Linux это можно сделать следующим образом:
plog-converter -t sarif -o pvs-studio.sarif pvs-studio.json
Импорт отчёта в Hexway
Импорт отчёта через UI
Для импорта отчёта через UI необходимо сделать следующее:
1. Перейдите на вкладку Repositories и выберете нужный репозиторий;

2. Нажмите на клавишу Scan внизу экрана;

3. Заполните поля и выберете файл для загрузки, затем нажмите клавишу Submit;

Импорт отчёта через CLI
Импорт отчёта через утилиту vampy-cli
Импорт отчёта происходит с помощью утилиты vampy-cli
, которая доступна на сайте Hexway. Полная команда загрузки отчёта выглядит следующим образом:
vampy-cli upload \
--scanner SARIF \
--file <PATH_TO_PVS_STUDIO_REPORT>
--repository <REPOSITORY>
--vampy-url <VAPMPY_URL>
--api-token <TOKEN>
Больше об этом способе можно узнать в официальной документации Hexway.
Импорт отчёта через утилиту CURL
Импорт отчёта происходит с помощью утилиты curl
или иной утилиты, позволяющей посылать POST
запросы на указанный адрес. Полная команда загрузки отчёта выглядит следующим образом:
curl -X POST "<YOUR_ADDRESS>/api/ext/v1/scan_uploads/" \
-H "accept: */*" \
-H "Content-Type: multipart/form-data" \
-H "Authentication: <TOKEN>"\
-F "repository=<REPO_NAME>" \
-F "repositoryBranch=<REPO_BRANCH>" \
-F "scannerResultFile=@<PATH_TO_PVS_STUDIO_REPORT>" \
-F "scannerType=SARIF"
Больше об этом способе можно узнать в официальной документации Hexway.
Использование отчёта PVS-Studio в Hexway
После загрузки отчёта во вкладке Issues появится список предупреждений, выданных анализатором PVS-Studio.

На странице можно фильтровать и сортировать предупреждения по определённым параметрам, например, по уровню достоверности или названию диагностического правила. Подробнее о работе с дефектами безопасности можно прочитать в официальной документации Hexway.
Для разметки каждого предупреждения выберете нужное вам и нажмите на указанную кнопку.

Таким образом можно размечать сообщения, например, как исправленные, ложные, принятые и так далее.
Если у вас возникнут вопросы или сложности с интеграцией, обратитесь в техническую поддержку PVS-Studio или Hexway.