2016-04-01 10 views
2

コンテキスト:Sonar Qubeには、abcdと呼ばれるカスタム品質ゲートが存在します。これはデフォルトの品質ゲートではありません。そして、Jenkinsでは、パラメータ -Dsonar.QualityGate=abcdを使用してこのSonarQube品質ゲートをAPIのセットに設定しました。うまくいきました。sonar.QualitygateはSonar Qube 5.3では非推奨です。代替手段は何ですか?

最近、Sonar Qubeがバージョン5.3にアップグレードされました。それ以来、abcd品質ゲートは機能しておらず、すべてのAPIの品質ゲートではなく、abcdゲートの代わりにデフォルト品質ゲートが使用されています。

分析の結果、sonar.QualityGateはバージョン5.3で廃止予定です。

質問:代替方法は教えてください。そして、どのようにこれらのAPIのセットがデフォルトの品質ゲートではなく、品質ゲートとしてabcdを持っていることを確認しますか?

私はJenkinsにアクセスできるが、Sonar Qubeの設定にはアクセスできないので、Jenkinsで何かを設定できるようなソリューションを好むだろう。

+0

このパラメータはSonarQube 5.2 **で削除されました([5.1 ](http://docs.sonarqube.org/display/SONARQUBE51/Analysis+Parameters)を[5.2](http://docs.sonarqube.org/display/SONARQUBE52/Analysis+Parameters)パラメータと組み合わせて使用​​します。 – agabrys

答えて

3

実際には、解析を実行するときにパラメータを使用してプロジェクトの品質ゲートを設定することはできません。 UI/WSでは、どのプロジェクトにどのQuality Gateを使用するかを指定することができます。

詳細については、ドキュメントを参照してください:http://docs.sonarqube.org/display/SONAR/Quality+Gates

+0

応答のためのThabks。ソナーの除外設定はどうですか?私はパラメータ "-Dsonar.exclusions"を使用していました。それも廃止されましたか?もしそうなら、代替手段は何ですか?私に教えてください。 – user2608424

+0

実際にsonar.exclusionsを使用することはできますが、私はそれがあなたの発行をどのように解決するのか分かりません。プロジェクトの品質ゲートを指定する唯一の方法は、UIまたはWSにあります。分析を開始する前にWSを呼び出すビルドスクリプトを作成するまではあなた次第です。 –

+0

こんにちは。回答いただきありがとうございます。感謝します。あなたはいくつかの他の問題で私を助けてくれる?私は、特定のプロジェクトでINF違反(他の違反ではない)の件数を完全に削除または削減したいと考えています。 Sonar Qube 5.3でこれを達成する最善の方法は何ですか? – user2608424

0

Sonarqube Web APIを使用してアソシエーションゲートプロジェクトを動的に作成することはできます。

Sonarqubeインスタンスから、/web_apiのURL(例:http://my-sonarqube/web_api)に移動し、利用可能な操作のリストを確認します。

web_api/api/qualitygatesは、品質ゲートに関連する一連の操作です。 web_api/api/qualitygates/selectは、ゲートをプロジェクトに関連付ける操作です。

したがって、非推奨のsonar.qualitygateの代わりに、Web UIを使用した手動の関連付けまたはWeb API経由の動的(自動化された)関連付けのいずれかを使用できます。後者の場合は、リンクを動的に作成する必要がある(特にブランチ管理に役立つ)継続的インテグレーションジョブの場合(このコンテキストではJenkinsに言及したように)です。

この操作を実行するための必須手順として、次のようないくつかのアクセス許可を渡す必要があります。 official Sonarqube documentation on Web APIからの推奨アプローチとして、ユーザートークン。

CIステップがちょうどsonar:sonarステップを呼び出す前にように見えるかもしれないものの例:

curl -u ${sonar.password.token}: ${sonar.setqualitygate.url} \ 
-d "gateId=${sonar.gate.id}&projectKey=${sonar.project.key}:${planRepository.branch}" 

  • sonar.password.tokenあなたはSonarqubeユーザー管理ページから生成する必要がトークンです(例えば、コンポーネント間の接続に使用されるJenkinsユーザ)
  • sonar.setqualitygate.url REST APIエンドポイントのURLhttp://your.sonarqube.domain/api/qualitygates/select
  • sonar.gate.idあなたが心配ゲート(例えばhttp://your.sonarqube.domain/quality_gates/show/<id>のURLに簡単にそれを見つけることができ、ゲートIDです)
  • sonar.project.keyplanRepository.branchここで我々としても、特定のブランチのために動的にプロジェクトの名前を構築しています、動的にブランチを処理したくない場合(例:Bambooでやりやすく、Jenkinsでややこしい)
関連する問題