Объединяя 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

Но я не уверен, что после этого. Пара вопросов:

  1. Что происходит, когда запрос на слияние еще не существует? В моем рабочем процессе git пользователи будут отправлять запрос на слияние после завершения работы над своей веткой. Итак, как этот плагин узнает, какой запрос на слияние обновить?

  2. Сейчас у меня задание эхолота 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. Вот как я увидел, что у меня не было новых проблем, о которых я мог бы сообщить.

Другие вопросы по тегам