﻿# Интеграция PVS\-Studio с AppSec\.Hub

Компания PVS\-Studio и платформа AppSec\.Hub заключили технологическое партнёрство для обеспечения интеграции статического анализатора кода PVS\-Studio в экосистему DevSecOps\. PVS\-Studio — это инструмент для обнаружения потенциальных ошибок и уязвимостей в исходном коде на языках C, C\+\+, C\#, Java, Go, JS и TS\. AppSec\.Hub — это платформа для автоматизации процессов Application Security, которая позволяет объединять различные инструменты анализа, тестирования и мониторинга безопасности приложений\.

На данный момент прямая интеграция PVS\-Studio через пользовательский интерфейс \(UI\) AppSec\.Hub отсутствует\. Однако в AppSec\.Hub можно загрузить результаты анализа PVS\-Studio в виде отчёта и после этого работать с конкретными ошибками так же, как это позволяют и другие инструменты\. Загрузка возможна двумя способами: через пользовательский интерфейс и командную строку с использованием CLI\-инструментов\.

## Преобразование отчёта PVS\-Studio в совместимый с AppSec\.Hub формат

Оба доступных варианта подразумевают работу с результатами анализатора \(его отчётом\) в формате, поддерживаемом AppSec\.Hub\. Для получения отчёта PVS\-Studio в таком формате необходимо сделать следующие шаги\.

1. Запустите анализ вашего проекта с помощью PVS\-Studio\. В нашей документации можно подробно прочитать о том, как запускать анализатор PVS\-Studio на [операционной системе Windows](https://pvs-studio.ru/ru/pvs-studio-quickstart-cppwindows/), а также на [операционных системах Linux и macOS](https://pvs-studio.ru/ru/docs/#ID4D1DEECA26)\.
1. Используйте утилиту `PlogConverter`на Windows и `plog-converter` на Linux и macOS, входящую в состав PVS\-Studio, чтобы преобразовать отчёт анализатора в формат [SARIF](https://sarifweb.azurewebsites.net/) \(Static Analysis Results Interchange Format\)\. О том, как это сделать, можно прочитать в [нашей документации](https://pvs-studio.ru/ru/docs/manual/0038/)\.
1. Используйте конвертер, предоставленный AppSec\.Hub, для преобразования файла SARIF в формат, который поддерживается платформой\.

Клонируйте репозиторий AppSec\.Hub с конвертерами:

```cpp
git clone https://github.com/Swordfish-Security/hub-tool-converters.git
```

Перейдите в директорию конвертера:

```cpp
cd hub-tool-converters
```

Выполните команду для конвертации:

```cpp
python main.py -s pvs-Studio -t CODEBASE --format sarif \
-f <PATH_TO_REPORT_IN_SARIF> -o <OUTPUT_REPORT_FILE> \
-n <CODEBASE_NAME> -u <REPOSITORY_URL>
```

## Импорт отчёта в AppSec\.Hub

### Импорт отчёта через UI AppSec\.Hub

Данный способ подразумевает ручную загрузку отчёта через UI AppSec\.Hub\. Сделать это можно следующим образом:

1\. Откройте веб\-интерфейс AppSec\.Hub\.

![appSecHub_ru/image1.png](https://import.viva64.com/docx/blog/appSecHub_ru/image1.png)

2\. Перейдите в раздел **Applications** \-\> **<Application Name\> **\-\> **Issues**\.

![appSecHub_ru/image2.png](https://import.viva64.com/docx/blog/appSecHub_ru/image2.png)

3\. Нажмите кнопку **Actions** в правом верхнем углу и выберите пункт **Import from report**\.

![appSecHub_ru/image3.png](https://import.viva64.com/docx/blog/appSecHub_ru/image3.png)

4\. Выберите файл отчёта анализатора PVS\-Studio в формате AppSec\.Hub, полученный в результате осуществления предварительных шагов\.

![appSecHub_ru/image4.png](https://import.viva64.com/docx/blog/appSecHub_ru/image4.png)

5\. Подтвердите импорт\.

Подробнее об этом способе можно прочитать в [официальной документации AppSec\.Hub](https://docs.appsec-hub.ru/2024.1/ug/security%20issues/#_5)\.

### Импорт отчёта через CLI AppSec\.Hub

Такой способ подразумевает использование утилиты `hub-cli`, входящей в поставку AppSec\.Hub, для автоматической загрузки отчёта\. Сделать это можно следующим образом:

1\. Убедитесь, что у вас установлена утилита `hub-cli`\. Она должна идти в комплекте поставки AppSec\.Hub\.

2\. Выполните команду для импорта отчёта:

```cpp
python -m src.import_report --url <URL_TO_YOUR_APPSECHUB> --token <TOKEN> \
--appcode <APP_CODE> --application-name <APP_NAME> \ 
--report-file <OUTPUT_REPORT_FILE>
```

Больше об этой программе можно узнать в [официальной документации AppSec\.Hub](https://docs.appsec-hub.ru/2024.1/ug/appendix%202/#import_reportpy)\.

## Использование отчёта PVS\-Studio в AppSec\.Hub

После загрузки отчёта во вкладке **Issues** появится список предупреждений, выданных анализаторов PVS\-Studio\.

![appSecHub_ru/image5.png](https://import.viva64.com/docx/blog/appSecHub_ru/image5.png)

На странице можно фильтровать и сортировать предупреждения по определённым параметрам, например, по уровню достоверности или названию диагностического правила\. Подробнее о работе с дефектами безопасности можно прочитать в официальной документации [AppSec\.Hub](https://docs.appsec-hub.ru/2024.1/ug/security%20issues/#_7)\.

Если у вас возникнут вопросы или сложности с интеграцией, обратитесь в техническую поддержку [PVS\-Studio](https://pvs-studio.ru/ru/about-feedback/) или [AppSec\.Hub](https://appsec-hub.ru/)\.