Интеграция результатов анализа PVS-Studio в CyberCodeReview
- Импорт отчёта через UI CyberCodeReview
- Импорт отчёта через API CyberCodeReview
- Работа с результатами анализа
CyberCodeReview — это ASOC-платформа для анализа защищённости кода и приложений.
Примечание. Подробнее о возможностях платформы CyberCodeReview можно прочитать в документации.
Этот инструмент позволяет просматривать результаты анализа с помощью PVS-Studio. Для этого предусмотрена возможность загрузки кроссплатформенного JSON-отчёта PVS-Studio.
Примечание. О доступных форматах отчёта PVS-Studio и конвертации можно прочитать по ссылке.
Импорт отчёта через UI CyberCodeReview
На странице продукта внутри платформы необходимо нажать на кнопку Импорт, перетащить или выбрать файл JSON-отчёта PVS-Studio, в поле Сканер выбрать PVS-Studio, а также установить другие необходимые настройки. После этого нужно нажать на кнопку Импорт.

После этого, если в отчёте были срабатывания анализатора, они появятся в Security Center для данного продукта.
Примечание. Подробнее о загрузке отчёта с помощью UI можно прочитать в соответствующем разделе документации инструмента.
Импорт отчёта через API CyberCodeReview
Помимо загрузки отчёта вручную через интерфейс CyberCodeReview, можно воспользоваться API данной платформы и загрузить отчёт через него. Для этого необходимо выполнить следующую команду:
curl -X POST localhost/api/v1/scan/import/ \
-H "Authorization: Token <authorization_token>" \
-H "Content-Type: multipart/form-data" \
-F "file=@<report_file_path>" \
-F "product_name=<product_name>" \
-F "product_type=<product_type>" \
-F "scanner_name=PVS-Studio" \
-F "branch=<branch_name>" \
-F "repository=<repository SSH URL>" \
-F "docker_image=<registry address>" \
-F "domain=<domain>" \
-F "host=<host>"
В этой команде:
-X POSTопределяет используемый метод HTTP (в данном случае — POST);-H "Authorization: Token <authorization_token>"определяет токен авторизации, полученный из Security Center;-H "Content-Type: multipart/form-data"определяет тип содержимого запроса;-F "file=@<report_file_path>"определяет путь к файлу отчёта, создаваемого сканером;-F "product_name=<product_name>"определяет название сканируемого продукта;-F "product_type=<product_type>"определяет тип сканируемого продукта;-F "scanner_name=PVS-Studio"определяет имя сканера, используемого для создания отчёта (в данном случае выбран анализатор PVS-Studio);-F "branch=<branch_name>"(необязательно) указывает имя ветки в репозитории исходного кода (если применимо). Этот параметр особенно полезен, когда вы хотите связать результаты сканирования с определённой веткой в вашем репозитории. Если параметр не указан, сканирование будет связано с веткой по умолчанию.
Также при использовании Auditor есть дополнительные параметры:
-F "repository=<repository SSH URL>". Если ваш продукт — это код в репозитории, введите адрес репозитория в определённом формате;-F "docker_image=<registry address>". Если ваш продукт — образ, введите адрес реестра, в котором находится продукт;-F "domain=<domain>". Если ваш продукт — веб-ресурс, введите его доменное имя;.-F "host=<host>". Если ваш продукт находится в Интернете, введите его IP-адрес.
Примечание. Подробнее о загрузке отчёта с помощью API можно прочитать в соответствующем разделе документации инструмента.
Работа с результатами анализа
После загрузки отчёта все срабатывания анализатора PVS-Studio появятся в списке необработанных уязвимостей. Уровни достоверности срабатываний PVS-Studio будут совпадать с уровнями критичности в веб-интерфейсе CyberCodeReview.

Открыв конкретное срабатывание, можно увидеть, на какой файл оно было выдано, какой идентификатор имеет по CWE, а также его сообщение.

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