Проверка запросов на включение — одна из ежедневных (иногда утомительных) задач разработчиков программного обеспечения. Части рецензирования могут быть автоматизированы, чтобы рецензент мог сосредоточиться на таких основных аспектах, как архитектура и бизнес-логика.

Узнайте, как ваша команда может сэкономить время проверки с помощью SonarQube Pull Request Decoration.

тл; ТР — предварительный просмотр

На следующих экранах показано оформление SonarQube Pull Request в GitLab.

Читайте дальше, если вам интересно, как это работает.

Что SonarQube может сделать для вас

SonarQube сканирует ваш исходный код (более 20 языков программирования, включая Swift — я использовал его для проверки качества проекта iOS) и предоставляет результаты для надежности, безопасности и ремонтопригодности. Подробнее см. здесь.

Определены Quality Gate, которые определяют стандарты кода (например, 90 % покрытия тестами, не более 3 % дублирования кода, 0 ошибок и не более 3 неприятных запахов в коде).
Если код в запросе на вытягивание не соответствует требованиям из Quality Gate, Quality Gate отображается как неудавшийся в GitLab (во время настройки в GitLab вы можете решить, следует ли в этом случае считать конвейер в GitLab также неудавшимся).

Требования

Вам потребуется GitLab (11.7 или выше) или GitLab с самостоятельным размещением и SonarQube Developer Editon (или лучше).

Также поддерживаются GitHub, GitHub Enterprise, Bitbucket Server и Azure DevOps Server.

Настройка эхолота-сканера

Чтобы настроить сонарный сканер, вы должны создать файл с именем sonar-project.properties в корневом каталоге вашего проекта — вот пример (см. здесь для документации по настройке и здесь, чтобы скопировать содержимое файлов):

Для локального запуска сонара (чтобы вы могли проверить файл sonar.properties) на вашем компьютере должен быть установлен sonar-scanner.

На Mac вы можете сделать это с помощью homebrew:

brew install sonar-scanner

Инструкцию по установке на другие платформы смотрите здесь.

После установки sonar-scanner вы можете запустить его из командной строки (убедитесь, что параметр sonar.login правильно установлен в sonar-project.properties или передать его как свойство ):

sonar-scanner -Dsonar.login=your_login_token

Если ваш файл свойств действителен, вывод должен выглядеть примерно так:

Настройка GitLab

Чтобы активировать sonarqube в ваших запросах на вытягивание GitLab, вы должны добавить раздел в свой .gitlab-ci.yml — вот пример (вот суть для копирования конфигурации):

Этим вы заложили основы. Следуйте инструкциям в документации Sonarqube для получения более подробной информации об интеграции GitLab/Sonarqube.

Если интеграция с Sonarqube работает, следуйте этим инструкциям, чтобы настроить оформление запроса на слияние в GitLab.

Так долго и спасибо за все рыбы

Спасибо за прочтение. Возможно, SonarQube Pull Request Decoration также поможет вашей команде создавать чистый и удобный для сопровождения код и сэкономить время на просмотре запросов на вытягивание.

Если вас интересуют дальнейшие автоматические меры обеспечения качества в Pull Request, взгляните на мою статью Автоматические меры обеспечения качества для проектов iOS с Fastlane, Danger и GitLab.

Кредиты и ссылки

Документация SonarQube: https://docs.sonarqube.org/latest/
Кредиты для избранного изображения: https://www.freellustrations.com/illustration/NDYp