web-dev-qa-db-ja.com

gitlabとsonarqubeの統合

サーバーにGitLab CE(少なくともv8.5)がインストールされています。マージリクエストでコメントセクションに問題が表示されるように、これをsonarqubeと統合したいと思います。誰もがこれらの2つのシステムを正常に統合しましたか?

現時点では、私が見つけた唯一のsonarqubeプラグインは次のとおりですが、GitLabと正常に統合することはできません。

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

Sonarqube(v5.5)にdockerコンテナを使用し、プラグインを拡張機能ディレクトリにコピーしました。 sonarqubeのプラグインの設定ページでgitlabユーザートークンとgitlab uriを構成しました。

私は継続的な統合に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. 今のところ、マスターブランチでのみ実行されるように設定されたソナークベ評価タスクがあります。これもユーザーブランチに変更する必要があると思いますよね?

マージリクエストを送信しようとしましたが、コメントが追加されていません。構成またはプロセスが不足していると思います。あなたが私を正しい方向に向けるのを手伝うことができれば本当に感謝します。

26
aver
  • -Psonar.gitlab ...などの代わりに-Dsonar.gitlab ...を使用する必要があります( https://groups.google.com/forum/#!topic/sonarqube/dx8UIkcz55c を参照)
  • プラグインの最新バージョンでは、問題が見つからない場合にコメントを追加できるようにすることができます。これはデバッグに役立ちます。

@ 1:コメントがコミットに追加され、マージリクエストのディスカッションセクションに表示されます。

@ 2:マスターで完全な分析を実行し、すべてのブランチでプレビューを実行しています。

2
Roman Pickl

私はあなたと同じ問題を抱えていました。 GitLab MRでコメントが表示されませんでした。私はそれを2つの修正で動作させました:

  • プレビューモードが使用されていることを確認してください。そうでない場合、問題はGitLabに報告されません
  • gitLabのコメントとして表示される問題については、「新しい」問題である必要があります。 GitLabにプッシュする前にプロジェクトの分析を開始した場合、問題はSonarQubeによって新規と見なされず、MRにコメントは追加されません。

これで問題が解決しない場合は、プラグインリポジトリのクローンを作成し、コードにトレースを追加して(CommitIssuePostJob.Javaを探してください)、jarをmavenでパッケージ化し、パッチを適用したjarをSonarインストールにデプロイします。それは私が報告する新しい問題がないことを見た方法です。

2
la_urre