Конкуренты4 мин чтения2026-03-06

SonarQube branch analysis: как анализировать ветки без переплаты за лицензию

В Community Edition SonarQube нет анализа веток. Вообще. Хотите знать, что сломалось в feature-ветке до мёрджа — платите за Developer Edition. Минимум 15 тысяч

В Community Edition SonarQube нет анализа веток. Вообще. Хотите знать, что сломалось в feature-ветке до мёрджа — платите за Developer Edition. Минимум 15 тысяч евро в год.

Но разработчики не сдаются. Появился community branch plugin, который добавляет эту функциональность бесплатно. Только вот насколько это хорошее решение? Давайте разберёмся честно, без маркетинговой шелухи.

Почему SonarQube не умеет ветки в бесплатной версии

SonarSource, компания за SonarQube, зарабатывает на Enterprise-лицензиях. Branch analysis — одна из фич, которую они намеренно вырезали из Community Edition. Это не баг, это бизнес-модель.

Логика простая: хотите CI/CD pipeline с качественным анализом пул-реквестов — платите. Для небольших команд это боль. На одном проекте мы считали: три разработчика, лицензия Developer Edition стоит как два наших месячных оклада. Нонсенс.

Что получаете за деньги в платных версиях:

Короче, всё то, что нужно нормальной команде для ежедневной работы.

Community Branch Plugin: что это и как работает

SonarQube community branch plugin — это неофициальное расширение, написанное энтузиастами. Добавляет анализ веток в Community Edition. Ставится как обычный плагин, скачивается с GitHub Releases.

# Скачиваем плагин
wget https://github.com/mc1arke/sonarqube-community-branch-plugin/releases/download/1.14.0/sonarqube-community-branch-plugin-1.14.0.jar

# Копируем в директорию плагинов SonarQube
cp sonarqube-community-branch-plugin-1.14.0.jar /opt/sonarqube/extensions/plugins/

# Перезапускаем SonarQube
docker restart sonarqube

После этого в интерфейсе появляются настройки branch analysis. Плагин патчит SonarQube на лету, добавляя недостающую логику.

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

sonar-scanner \
  -Dsonar.branch.name=feature/new-auth \
  -Dsonar.branch.target=main

В Jenkins pipeline это выглядит так:

stage('SonarQube Analysis') {
    steps {
        script {
            scannerHome = tool 'SonarQubeScanner'
        }
        withSonarQubeEnv('MySonarQube') {
            sh """
                ${scannerHome}/bin/sonar-scanner \
                    -Dsonar.branch.name=${env.BRANCH_NAME} \
                    -Dsonar.branch.target=main
            """
        }
    }
}

Работает. Анализирует. Показывает diff относительно целевой ветки.

Проблемы плагина, о которых молчат туториалы

Первое и главное: плагин неофициальный. SonarSource не имеет к нему отношения и время от времени высказывает недовольство его существованием. Юридически — серая зона.

Вторая проблема — совместимость. Каждая версия плагина работает с определёнными версиями SonarQube. Обновили SonarQube — плагин может сломаться.

# Пример таблицы совместимости из документации плагина
# Plugin 1.14.0 -> SonarQube 9.x
# Plugin 1.8.0 -> SonarQube 8.9 LTS
# Plugin 1.3.0 -> SonarQube 7.9 LTS

На одном проекте мы обновились с SonarQube 8.9 на 9.3. Плагин перестал работать. Ждали совместимую версию три недели. Три недели команда жила без анализа веток.

Третья проблема — нет PR decoration из коробки. Плагин умеет анализировать ветки, но не умеет писать комментарии в GitHub или GitLab. Для этого нужно ставить ещё один плагин — community-platform-plugin. Или писать велосипед на CI/CD скриптах.

Четвёртая: качество кода самого плагина. Это open-source проект, поддерживаемый энтузиастами. Баги есть, документация местами устаревшая. Если что-то сломается — поддержки нет, только GitHub Issues.

Сравнение подходов к branch analysis

Критерий Community + Plugin Developer Edition SonarCloud
Цена Бесплатно от €15,000/год от €10/месяц
Анализ веток Да Да Да
PR decoration С костылями Да Да
Поддержка Сообщество Официальная Официальная
Серверы Ваши Ваши Облачные
Данные У вас У вас В облаке
Стабильность Средняя Высокая Высокая
Обновления С задержкой Вовремя Автоматически

SonarCloud выглядит компромиссом, но есть нюанс: данные уходят в облако. Для компаний с требованиями по локализации данных это не вариант.

Когда плагин имеет смысл

Честно? Если вы стартап или небольшая команда до 10 человек, и нет денег на лицензию. И при этом готовы к тому, что однажды анализ веток отвалится после очередного обновления.

Если у вас строгие требования по хранению данных в РФ — плагин даёт возможность держать всё на своих серверах. Это плюс.

Но если у вас серьёзный enterprise-проект с SLA и ответственностью перед заказчиком — плагин это риск. Один сломанный CI/CD pipeline после обновления может стоить дороже, чем лицензия.

Альтернативы: что ещё смотрим

GitHub Advanced Security — хороший вариант, если вы на GitHub. Но дорого и данные в облаке. GitLab Ultimate включает SAST/DAST, но это тоже enterprise-тариф.

Есть российские решения. Собственно, про это и говорю.

Distiq — это AI-бот для code review, который интегрируется в GitLab, GitHub и GitVerse. Анализирует каждый MR/PR, находит баги, уязвимости, проблемы с производительностью. Оставляет инлайн-комментарии, как живой ревьювер.

# Интеграция — это буквально добавление webhook
# .gitlab-ci.yml
distiq-review:
  stage: test
  script:
    - curl -X POST https://api.distiq.ru/webhook/$DISTIQ_PROJECT_ID
  only:
    - merge_requests

Серверы в России, данные не уходят за рубеж. Для компаний, которые по 152-ФЗ или внутренним регламентам не могут использовать зарубежные облака — это реальный вариант.

По деньгам получается дешевле, чем SonarQube Developer Edition. И никакого самолечения плагинами.

Итог

SonarQube community branch plugin — рабочее решение для тех, кто готов мириться с рисками. Если бюджет нулевой, а branch analysis нужен — ставьте. Только зафиксируйте версии и не обновляйтесь без необходимости.

Для продакшн-проектов лучше рассмотреть либо официальные версии SonarQube, либо альтернативы. Distiq как вариант — российский, работает с GitLab и GitHub, не требует выкручивания рук плагинами.

Выбор за вами. Но помните: бесплатный сыр бывает только в мышеловке. А мышеловка в продакшене — это инциденты.

Попробуйте Distiq для автоматического code review

AI-бот анализирует каждый MR/PR и оставляет комментарии с замечаниями. Интеграция за 2 минуты.

Попробовать бесплатно

Похожие статьи