Сервис анализа качества кода

Сервис анализа качества кода (услуга 1.27) обеспечивает следующую функциональность:
  • непрерывный анализ и измерение качества кода, поддержка разработчиков при обнаружении недостатков созданного или повторно использованного кода за счет:
    • возможности интеграции с Сервисом управления сборкой ПО для встраивания анализа качества кода в конвейер сборки дистрибутива;
    • наличия встроенных правил и стандартов кодирования, обеспечивающих надежность и безопасность кода, правил оформления и документирования исходного кода, как минимум на языке Java;
  • выявление показателей и предоставление отчетности по метрикам кода:
    • степень отклонений от стандартов кодирования, обеспечивающих надежность и безопасность кода;
    • отклонения от стандартов оформления и документирования кода;
    • выявление показателей и предоставление отчетности по метрикам кода:
    • степень покрытия кода модульными тестами;
    • наличие и уровень дефектов, выявленных тестами;
  • выявление показателей и предоставление отчетности по метрике дублирования кода;
  • выявления показателей и предоставление отчетности по метрике поддерживаемости кода и объему технического долга (показатель исправления ранее выявленных дефектов);
  • выявление показателей и предоставление отчетности по метрике структурного качества и сложности программного кода (показатель количества возможных путей исполнения кода);
  • установка контрольных точек просмотра мест возникновения выявленных дефектов в исходном коде, предоставление описания причины возникновения дефекта;
  • настройка допустимого уровня дефектов по метрикам покрытия модульными тестами и критичности дефектов, выявленных модульными тестами, степени дублирования кода, размеру технического долга;
  • многопользовательский режим работы с проектом.

Основные принципы работы в Сервисе анализа качества кода

Сервис анализа качества кода (услуга 1.27) основан на SonarQube версии 7.0 и выше и предназначен для обеспечения непрерывного анализа и измерения качества кода.
SonarSource не предоставляет конкретных рекомендаций по настройке обратного прокси-сервера (балансировки нагрузки) или конкретной конфигурации. Прокси-сервер должен обеспечивать возможность балансировки HTTP-запросов (нагрузки) между узлами приложения в кластере SonarQube.

Настройка анализа PR для Multibranch Pipeline

Для Multibranch Pipeline сборка осуществляется без параметров. Следующие параметры необходимо задать из переменных окружения:
  • sonar.branch.name;
  • sonar.branch.target.
В таблице ниже указаны переменные окружения.
ПеременнаяОписание
BRANCH_NAME
Для Multibranch Pipeline проекта эта переменная окружения имеет значение имени ветки, из которой осуществляется сборка. Примером использования может быть условие деплоя на стенд только из ветки master. Не используется при сборке PR
CHANGE_ID
Соответствует идентификатору PR, в случае сборки по ветке не имеет значения
CHANGE_URL
Ссылка на страницу PR.
В случае сборки по ветке не имеет значения
CHANGE_TITLE
Наименование PR.
В случае сборки по ветке не имеет значения
CHANGE_AUTHOR
Логин автора PR.
В случае сборки по ветке не имеет значения
CHANGE_AUTHOR_DISPLAY_NAME
Выводимое имя автора PR.
В случае сборки по ветке не имеет значения
CHANGE_AUTHOR_EMAIL
Email автора PR.
В случае сборки по ветке не имеет значения
CHANGE_TARGET
Целевая ветка, в которую будут влиты изменения PR.
В случае сборки по ветке не имеет значения
CHANGE_BRANCH
Исходная ветка PR, из которой вливаются изменения в целевую.
В случае сборки по ветке не имеет значения

Настройка анализа PR для Groovy задачи

Настройка cервиса версионного контроля исходного кода и конфигураций позволяет организовать интеграцию с cервисом анализа качества кода для дальнейшего выполнения анализа кода.

Показатели назначения

Минимальная конфигурация Сервиса обеспечивает:
  • таймаут на формирование HTTP-запроса со стороны клиента после установления соединения (параметр timeout http-request) — 120 секунд;
  • таймаут на установление соединения с сервером Gitlab — 10 секунд;
  • таймаут на ожидание ответа от сервера Gitlab (параметр timeout server) — 3 минуты;
  • максимальное количество соединений (параметр maxconn, определяет максимально возможное количество соединений со стороны Потребителей, суммарный показатель по всем сервисам Works) — не более 50 000. Может уменьшаться в зависимости от ресурсов, потребляемых соединениями со стороны Потребителя.
Предыдущий раздел
Управление запросами на слияние
Следующий раздел
Показатели и метрики оценки
Была ли страница полезной?