1

sonarqube私は最近、リリースプロセスに統合されました。リーク期間を統合日として設定し、リーク期間quality gateの開始以降、新しい問題が発生しないように定義で義務付けました。

問題は、ファイルに変更があるたびに、sonarqube が以前の問題をすべて新しい問題と見なし始めることです。ファイルに変更を加えている人は、すべての修正をさかのぼって行う必要があるため、これは大きなファイルの場合に特に問題になります。sonarqube にやってもらいたいのは、責任情報からコミット日を尊重し、コミットnew日とリーク期間を比較して定義することです。

これを可能にする方法は?私は使っているsonarqube 6.0

4

1 に答える 1

2

あなたのユースケースはSonarQube Leak Conceptの核心です。あなたがする必要があるのは、リーク期間の開始に対応し、その時点ですでに存在する問題に関してベースラインを設定する分析があることを確認することです. これを行う正しい方法は、その初期分析に実際にsonar.projectDate (分析パラメーターを参照) を使用することです。結論:

  • あなたの場合の統合に対応するコミットをチェックしてください
  • たとえば、 sonar.projectDateをそのコミットの日付として設定し、sonar.projectVersionベースラインに設定して分析します
  • リーク期間をベースラインに設定する
  • 以降のすべての分析では、リークは最初のベースライン以降に導入された新しい問題に対応します。レガシーの問題 (統合前) はレガシーと見なされ、リーク期間には考慮されません。その後、Quality Gate は期待どおりに機能します。

参考までに、 SCMの非難情報は、問題の自動割り当てと新しいコードのカバレッジの識別のために SonarQube によって使用されますが、どの問題が新しいかどうかを確実に判断することはできません。その使用法を削除すると、変数定義で変数未使用の問題が発生しますが、その正確な行はコミットによって変更されませんでした。そのため、SonarQube が (以前の分析中に) 問題を最初に検出した日付に基づいて問題が新規と判断されるため、上記のワークフローが詳細に示されています。

于 2016-09-28T08:14:49.600 に答える