﻿# Интеграция результатов анализа PVS\-Studio в TRON\.ASOC

[TRON\.ASOC](https://tronasoc.ru/) — платформа для автоматизации безопасной разработки\. Помогает обнаруживать, анализировать и устранять уязвимости на этапах разработки и эксплуатации\.

Рассмотрим пример интеграции отчёта анализатора PVS\-Studio в TRON\.ASOC\.

## Предварительная настройка

Для начала нужно добавить проект в разделе **Проекты**, заполнив обязательные поля\.

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

После этого необходимо выбрать инструмент безопасности\. Для этого переходим в раздел **Интеграции \> Инструменты безопасности** и нажимаем кнопку **Добавить инструмент безопасности**\. В поле **Инструмент **выбираем **PVS\-Studio**\.

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



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

Далее перейдём в раздел **Источники сканирования**\. Здесь нужно выбрать источник проекта\. **Важно**: в поле **Источник** нужно выбрать **CLI Tool Custom Source**\. 

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

Для отслеживания метрик анализа можно добавить контроль качества\. Для этого необходимо перейти в раздел **Контроль качества**\. Можно выбрать метрику и настроить количество срабатываний для её оценки\.

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

Перейдём к загрузке отчёта проекта\. Для этого необходимо сконвертировать отчёт в формат `.sarif` при помощи утилиты `plog-converter`\. 

```cpp
plog-converter report.json -t sarif
```

Подробнее про утилиту `plog-converter` описано в [документации](https://pvs-studio.ru/ru/docs/manual/0038/)\.

После конвертации отчёта необходимо на платформе перейти в раздел **Проекты **и выбрать нужный проект\. После этого выбрать раздел **Обзор \> Слои проекта**\. 

![TRON_ASOC_ru/image6.png](https://import.viva64.com/docx/blog/TRON_ASOC_ru/image6.png)

Далее добавляем слой проекта\. **Название** и **Тип слоя** выбираем в зависимости от проекта\. В поле **Контроль качества** выбираем ранее созданное правило\.

![TRON_ASOC_ru/image7.png](https://import.viva64.com/docx/blog/TRON_ASOC_ru/image7.png)

Созданное правило будет выглядеть так:

![TRON_ASOC_ru/image8.png](https://import.viva64.com/docx/blog/TRON_ASOC_ru/image8.png)

Чтобы запустить сканирование, добавим проверку безопасности\. В открывшейся форме указываем созданный инструмент и источник сканирования\.

![TRON_ASOC_ru/image10.png](https://import.viva64.com/docx/blog/TRON_ASOC_ru/image10.png)

Теперь можно нажать кнопку **Начать новое сканирование**\. Для загрузки отчёта рассмотрим два варианта\.

## Загрузка отчёта

### Ручной вариант загрузки отчёта

Нужно нажать на три точки рядом с проверкой безопасности и в появившемся меню выбрать пункт **Импортировать результаты**\. 

![TRON_ASOC_ru/image11.png](https://import.viva64.com/docx/blog/TRON_ASOC_ru/image11.png)

После этого выбираем файл отчёта с расширением `.sarif`\. После загрузки отчёт появится в разделе **Результаты сканирования**\. Для просмотра всех срабатываний перейдём в раздел **Проблемы безопасности**\. Выбрав любое срабатывание, можно просмотреть более подробную информацию о нём\.

![TRON_ASOC_ru/image12.png](https://import.viva64.com/docx/blog/TRON_ASOC_ru/image12.png)

### Загрузка отчёта с помощью API

Вернёмся в раздел **Слои проекта**\. Выберем в меню **Редактировать проверку безопасности**\. Здесь рассмотрим подробнее пункт **Конечная точка API проверки безопасности**\. Для загрузки отчёта с помощью API нужно использовать эту команду:

```cpp
curl --location 'http://you_host'
--header 'x-api-token: '
--header 'content-type: application/json'
--data @"path_to_sarif"
```

Она приведена в примере для подключения конечной точки API\. Также ниже указана ссылка для создания API\-токена\.

![TRON_ASOC_ru/image13.png](https://import.viva64.com/docx/blog/TRON_ASOC_ru/image13.png)



![TRON_ASOC_ru/image14.png](https://import.viva64.com/docx/blog/TRON_ASOC_ru/image14.png)

При создании токена нужно указать его название и срок действия\.

После того как получен токен, можно перейти к загрузке отчёта\. Для этого нужно вернуться в раздел **Слои проекта **и нажать на кнопку **Начать новое сканирование**\. И в командной строке прописать полученную команду\. После загрузки отчёт появится в разделе **Результаты сканирования**\. Чтобы просмотреть все срабатывания, откроем раздел **Проблемы безопасности**\. Выберем любое срабатывание, чтобы получить более подробную информацию о нём\.

![TRON_ASOC_ru/image15.png](https://import.viva64.com/docx/blog/TRON_ASOC_ru/image15.png)

## Работа с результатами анализа

Результаты анализа содержат поля **Статус **и **Ответственный**\. В поле **Статус** можно выбрать, к какому состоянию принадлежит срабатывание, например установить **In progress**\.

![TRON_ASOC_ru/image16.png](https://import.viva64.com/docx/blog/TRON_ASOC_ru/image16.png)

В поле ответственный можно выбрать, кому назначить работу над этим срабатыванием\. Подробнее про возможности обработки результатов анализа можно узнать в [документации](https://docs.tronasoc.ru/docs/user-guide/functionals/pipelines-checks/scan-results) платформы TRON\.ASOC\.

## Оповещение пользователей

Для начала создаем инструмент уведомления\. Необходимо перейти в раздел **Интеграции \> Инструменты уведомлений**\. Для добавления нового инструмента нужно заполнить данные на форме\. А также можно проверить подключение, нажав на соответствующую кнопку\. 

![TRON_ASOC_ru/image17.png](https://import.viva64.com/docx/blog/TRON_ASOC_ru/image17.png)

После добавления инструмента оповещения перейдем в раздел **Правила реагирования **для продолжения настройки\. Для добавления правила нужно нажать на кнопку **Добавить правило реагирования**\.

![TRON_ASOC_ru/image18.png](https://import.viva64.com/docx/blog/TRON_ASOC_ru/image18.png)

Далее необходимо заполнить параметры правила\. Подробнее с параметрами правил можно ознакомиться в [документации](https://docs.tronasoc.ru/docs/user-guide/functionals/response-rules)\.

![TRON_ASOC_ru/image19.png](https://import.viva64.com/docx/blog/TRON_ASOC_ru/image19.png)

После настройки вернемся в раздел **Проблемы безопасности**\. Появилась возможность оповестить пользователя о назначенном срабатывании\. Для этого его необходимо выбрать в поле **Ответственный**\.

![TRON_ASOC_ru/image20.png](https://import.viva64.com/docx/blog/TRON_ASOC_ru/image20.png)