Объединяя gitlab с sonarqube
У меня на сервере установлен GitLab CE (по крайней мере, v8.5). Я хотел бы интегрировать его с sonarqube, чтобы запросы на слияние отображали любые проблемы в разделе комментариев. Кто-нибудь успешно интегрировал эти 2 системы?
На данный момент я обнаружил только плагин sonarqube, но я не могу успешно интегрировать его с GitLab.
https://gitlab.talanlabs.com/gabriel-allaigre/sonar-gitlab-plugin
Я использовал docker-контейнер для sonarqube (v5.5) и скопировал плагин в каталог расширений. Настроил пользовательский токен gitlab и uri gitlab на странице настроек плагина в sonarqube.
Я использую GitLab CI для непрерывной интеграции, и у меня есть следующая работа по сборке для sonarqube (используя gradle)
sh gradlew sonarqube -Psonar.analysis.mode=preview -Psonar.issuesReport.console.enable=true \
-Psonar.gitlab.commit_sha=$CI_BUILD_REF -Psonar.gitlab.ref_name=$CI_BUILD_REF_NAME \
-Psonar.gitlab.project_id=$CI_PROJECT_ID
Но я не уверен, что после этого. Пара вопросов:
Что происходит, когда запрос на слияние еще не существует? В моем рабочем процессе git пользователи будут отправлять запрос на слияние после завершения работы над своей веткой. Итак, как этот плагин узнает, какой запрос на слияние обновить?
Сейчас у меня задание эхолота Sonarqube настроено на выполнение только в основной ветке. Я думаю, что это нужно будет изменить и на пользовательские ветки, верно?
Я попытался отправить запрос на слияние, но не увидел ни одного комментария. Я думаю, что мне не хватает какой-то конфигурации или процесса. Очень ценю, если вы можете помочь мне указать верное направление.
2 ответа
- Вы должны использовать -Dsonar.gitlab... вместо -Psonar.gitlab... и т. Д. (См. https://groups.google.com/forum/)
- В новейшей версии плагина вы можете включить возможность добавления комментария, если проблема не найдена. Это помогает с отладкой.
@ 1: комментарии будут добавлены в ваши коммиты, а затем будут отображаться в разделе обсуждения запроса на слияние
@2: Мы проводим полный анализ по мастеру и предварительный просмотр любых веток.
У меня была та же проблема, что и у тебя. Комментарии не отображались в GitLab MR. Я сделал это работать с двумя исправлениями:
- убедитесь, что используется режим предварительного просмотра. Если это не так, о проблемах не сообщается в GitLab
- чтобы проблемы отображались в комментариях GitLab, они должны быть "новыми". Если вы запустили анализ своего проекта до того, как отправили его на GitLab, проблемы не будут считаться новыми для SonarQube, и к MR не будет добавлено никаких комментариев.
Если это не решит вашу проблему, попробуйте клонировать репозиторий плагинов, добавив следы в код (место для поиска - CommitIssuePostJob.java), упакуйте jar с maven и разверните пропатченный jar в вашей установке Sonar. Вот как я увидел, что у меня не было новых проблем, о которых я мог бы сообщить.