Проверка запросов на включение — одна из ежедневных (иногда утомительных) задач разработчиков программного обеспечения. Части рецензирования могут быть автоматизированы, чтобы рецензент мог сосредоточиться на таких основных аспектах, как архитектура и бизнес-логика.
Узнайте, как ваша команда может сэкономить время проверки с помощью 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