Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top

Вебинар: SAST как Quality Gate - 13.03

>
>
Запуск PVS-Studio в GitFlic
menu mobile close menu
Проверка проектов
Сообщения PVS-Studio
Диагностики общего назначения (General Analysis, C++)
Диагностики общего назначения (General Analysis, C#)
Диагностики общего назначения (General Analysis, Java)
Микрооптимизации (C++)
Диагностика 64-битных ошибок (Viva64, C++)
Реализовано по запросам пользователей (C++)
Cтандарт MISRA
Стандарт AUTOSAR
Стандарт OWASP (C++)
Стандарт OWASP (C#)
Стандарт OWASP (Java)
Проблемы при работе анализатора кода
Дополнительная информация
toggle menu Оглавление

Запуск PVS-Studio в GitFlic

11 Мар 2025

Запуск PVS-Studio в GitFlic

GitFlic — сервис для хранения исходного кода и работы с ним. Основан на системе контроля версий Git.

В данной документации рассматривается пример по интеграции PVS-Studio для анализа C и C++ кода. Команды запуска PVS-Studio для анализа C# или Java кода будут отличаться. Смотрите соответствующие разделы документации: "Проверка проектов Visual Studio / MSBuild / .NET из командной строки с помощью PVS-Studio" и "Работа с ядром Java анализатора из командной строки".

При запуске задачи CI/CD используется инструкция из файла 'gitflic-ci.yaml'. Его можно добавить, кликнув на ссылку 'создайте новый', либо создав в локальном репозитории и загрузив на сайт. Воспользуемся первым вариантом. Перейдя по ссылке, нажмём кнопку 'Использовать':

После этого откроется базовый шаблон, который мы отредактируем для интеграции статического анализатора PVS-Studio. Составим пример скрипта работы на примере С++ проекта:

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

- apt install cmake
- apt-get install gcc
- apt-get install doxygen

Теперь установим анализатор PVS-Studio.

- wget -O - https://files.pvs-studio.com/etc/pubkey.txt 
| apt-key add -
- wget -O /etc/apt/sources.list.d/viva64.list 
https://files.pvs-studio.com/etc/viva64.list
- apt-get update && apt-get -y install pvs-studio
- pvs-studio-analyzer credentials $PVS_NAME $PVS_KEY

Здесь PVS_NAME и PVS_KEY — переменные для имени пользователя и лицензионного ключа PVS-Studio, значения которых задаются в настройках репозитория. Чтобы установить их, перейдём в Настройки -> Настройки CI/CD -> Переменные для задачи.

Сборка проекта осуществляется с cmake:

- cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=On .

Далее запускается анализатор:

- pvs-studio-analyzer analyze -o report.log

Чтобы отобразить результаты анализа во вкладке Безопасность, их необходимо сконвертировать в формат .sarif при помощи утилиты plog-converter. Также необходимо перевести пути к файлам в относительные, чтобы файлы корректно отображались в разделе ошибок. Для этого нужно использовать флаг ‑‑pathTransformationMode (или -R) и ‑‑srcRoot (или -r). Подробнее о параметрах утилиты plog-converter можно прочитать здесь.

- plog-converter report.log -t json -n relative -R toRelative -r $PWD
- plog-converter relative.json -t sarif -n PVSSarif -r file://

Отчёт можно выгрузить при помощи артефактов, он сразу отобразится в разделе Безопасность.

artifacts:
    reports:
      sast:
        paths:
          - 'PVSSarif.sarif'

Полное содержание файла gitflic-ci.yaml:

analyze-job:
  stage: build
  scripts:
    - apt install cmake
    - apt-get install gcc
    - apt-get install doxygen
    - wget -O - https://files.pvs-studio.com/etc/pubkey.txt | apt-key add -
    - wget -O /etc/apt/sources.list.d/viva64.list 
https://files.pvs-studio.com/etc/viva64.list
    - apt-get update && apt-get -y install pvs-studio
    - pvs-studio-analyzer credentials ${USER_NAME} ${LICENSE_KEY}
    - cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=On .
    - pvs-studio-analyzer analyze -o report.log
    - plog-converter report.log -t json -n relative -R toRelative -r $PWD
    - plog-converter relative.json -t sarif -n PVSSarif -r file://
  artifacts:
    reports:
      sast:
        paths:
          - 'PVSSarif.sarif'

После этого в разделе Безопасность откроется отчёт об ошибках.

В данном разделе можно выбрать необходимое срабатывание и подробнее изучить его.

При нажатии на кнопки Подробнее можно увидеть полную информацию о срабатывании.

close form

Заполните форму в два простых шага ниже:

Ваши контактные данные:

Шаг 1
Поздравляем! У вас есть промокод!

Тип желаемой лицензии:

Шаг 2
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности
close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS‑Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Я хочу принять участие в тестировании
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
check circle
Ваше сообщение отправлено.

Мы ответим вам на


Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок:

  • Промоакции
  • Оповещения
  • Спам