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

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

В Hexway можно загрузить результаты анализа PVS\-Studio в виде отчёта и работать с конкретными ошибками так же, как это позволяют другие инструменты\. Загрузка возможна двумя способами: через пользовательский интерфейс или командную строку с использованием CLI\-инструментов\.

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

Интеграция происходит с помощью преобразования отчёта PVS\-Studio в формат SARIF\. Для этого:

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/)\. Например, на Linux это можно сделать следующим образом: 

```cpp
plog-converter -t sarif -o pvs-studio.sarif pvs-studio.json
```

## Импорт отчёта в Hexway

### Импорт отчёта через UI

Для импорта отчёта через UI необходимо сделать следующее:

1\. Перейдите на вкладку Repositories и выберете нужный репозиторий;

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

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





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

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

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

### Импорт отчёта через CLI

#### Импорт отчёта через утилиту vampy\-cli

Импорт отчёта происходит с помощью утилиты ` vampy-cli`, которая доступна на [сайте Hexway](https://help.hexway.ru/vampy/cli/v_vampy_cli_install.html)\. Полная команда загрузки отчёта выглядит следующим образом:

```cpp
vampy-cli upload \
--scanner SARIF \
--file <PATH_TO_PVS_STUDIO_REPORT>
--repository <REPOSITORY>
--vampy-url <VAPMPY_URL>
--api-token <TOKEN>
```

Больше об этом способе можно узнать в [официальной документации Hexway](https://help.hexway.ru/vampy/cli/v_vampy_cli_upload.html)\.

#### Импорт отчёта через утилиту CURL

Импорт отчёта происходит с помощью утилиты `curl` или иной утилиты, позволяющей посылать `POST` запросы на указанный адрес\. Полная команда загрузки отчёта выглядит следующим образом:

```cpp
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](https://help.hexway.ru/vampy/api/index.html)\.

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

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

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

На странице можно фильтровать и сортировать предупреждения по определённым параметрам, например, по уровню достоверности или названию диагностического правила\. Подробнее о работе с дефектами безопасности можно прочитать в официальной документации [Hexway](https://help.hexway.ru/vampy/issues/v_issues_actions.html)\.

Для разметки каждого предупреждения выберете нужное вам и нажмите на указанную кнопку\.

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

Таким образом можно размечать сообщения, например, как исправленные, ложные, принятые и так далее\.

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