Анализ запросов на извлечение и ворота качества в SonarQube
Я установил SonarQube 7.6 Developer Edition и начал использовать его в своем конвейере среды разработки. Мой подход к написанию кода - разработка на основе транков. У нас есть только одна основная линия (основная или магистральная или развивающаяся, как вы предпочитаете определять, но только одна основная линия)
На самом деле все изменения в коде проходят через Pull Request, который, как я понял, в SonarQube распознается как ветвь с коротким сроком действия, и применяются только эти жестко закодированные правила.
Условия ошибки:
- новые открытые ошибки> 0
- новые открытые уязвимости> 0
- новый открытый код пахнет> 0
Это подмножество моих условий качества ворот. Это означает, что PullRequest может пройти контроль качества (потому что он распознается как короткоживущая ветвь), и когда он объединен с основной линией (основной / магистральный), применяются мои правила качества ворот и может произойти сбой при слиянии.
Как я могу узнать, нарушит ли он качественные барьеры до утверждения PR или, проще, как идентифицировать запрос на извлечение как долгосрочную ветвь?
Я попытался определить * как шаблон долгоживущих ветвей, но он не работает. прикрепил скриншот.
1 ответ
На самом деле, для SonarQube 7.6 это статус:
- Все PR следуют одним и тем же правилам Short-Lived Branch, и в настоящее время нет возможности настроить Ad-hoc Quality Gate (или, по крайней мере, так же, как в проекте), но это запланировано на Q12019. Более подробно, PR и SLB распознаются как две разные вещи, но их представление в SonarQube одинаково.
- Не существует способа идентифицировать PR как долгоживущие ветви (даже с * в регулярном выражении шаблона долгоживущих ветвей).
- Единственный способ получить доступ к качественным воротам - избежать PR и запустить объединение на главной линии, чтобы проверить, проходят ли качественные ворота.
Здесь есть ответ от менеджера сообщества SonarQube
https://community.sonarsource.com/t/pull-request-analysis-and-quality-gate/6306/2