интеграция gitlab с sonarqube

У меня есть GitLab CE (как минимум, v8.5), установленный на моем сервере. Я хотел бы интегрировать его с sonarqube, чтобы запросы слияния отображали любые проблемы в разделе комментариев. Кто-нибудь интегрировал эти 2 системы успешно?

На данный момент я нашел только плагин sonarqube, но я не могу успешно интегрировать его с GitLab.

https://gitlab.talanlabs.com/gabriel-allaigre/sonar-gitlab-plugin

Я использовал докер-контейнер для sonarqube (v5.5) и скопировал плагин в каталог расширений. Настроен пользовательский токен gitlab и gitlab uri на странице настроек плагина в 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. Прямо сейчас у меня есть задача валионации сонарбера, установленная для работы только на главной ветки. Я думаю, что это тоже нужно будет изменить на пользовательские ветки, верно?

Я попытался отправить запрос на слияние, но я не заметил комментариев. Я думаю, что мне не хватает какой-либо конфигурации или процесса. Очень ценю, если вы можете помочь указать мне в правильном направлении.

Ответ 1

  • Вы должны использовать -Dsonar.gitlab... вместо -Psonar.gitlab... и т.д. (См. Https://groups.google.com/forum/#!topic/sonarqube/dx8UIkcz55c)
  • В новейшей версии плагина вы можете добавить комментарий, когда проблема не найдена. Это помогает при отладке.

@1: комментарии будут добавлены в ваши коммиты и затем появятся в разделе обсуждения запроса на слияние

@2: Мы проводим полный анализ мастера и предварительный просмотр в любых ветких.

Ответ 2

У меня была такая же проблема, как у вас. Комментарии не показывались в GitLab MR. Я сделал это с двумя исправлениями:

  • убедитесь, что используется режим предварительного просмотра. Если это не так, то проблемы не сообщаются GitLab
  • для того, чтобы вопросы появлялись как комментарии GitLab, они должны быть "новыми" проблемами. Если вы запустили анализ своего проекта до нажатия на GitLab, эти вопросы не будут считаться новыми SonarQube, и комментарий к MR не будет добавлен.

Если это не решит вашу проблему, попробуйте клонировать репозиторий плагинов, добавив трассировку в код (CommitIssuePostJob.java - это место для поиска), упакуйте банку с maven и разверните исправленную банку для установки Sonar. Вот как я увидел, что у меня нет новых проблем для отчета.