27

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

現時点では、私が見つけた sonarqube プラグインは次のものだけですが、GitLab とうまく統合できません。

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

sonarqube (v5.5) の docker コンテナを使用し、プラグインを extensions ディレクトリにコピーしました。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. 現在、マスター ブランチでのみ実行するように sonarqube 検証タスクを設定しています。これもユーザーブランチに変更する必要があると思いますよね?

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

4

2 に答える 2

3

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

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

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

于 2016-10-25T15:25:53.877 に答える