2016-07-30 1 views
2

私たちはジェンキン、sonarqube 5.5、mavenおよびgitを使用します。開発者が新しいgitブランチを作成してプッシュすると、ジェンキンもそのブランチを分析するので、開発者はマージ前にすべてを修正できます。このブランチ分析がマスターブランチ分析と混合するのを避けるために、ジェンキンはブランチ名を分析に渡します。原因は、各ブランチのための新しいプロジェクトを作成するsonarqube。これまでのところ大丈夫です。新しいソナープロジェクトのためにデフォルト以外の品質のゲートを設定する方法

しかし、最近では、すべてのプロジェクトのデフォルト品質ゲートを、アクティブな開発中のプロジェクトとメンテナンス中のプロジェクトの異なる品質ゲートに切り替えました。

ゲートを使用するために新しいブランチ用に新しいプロジェクトを作成するとき、ソナーにどのように伝えることができますか?いくつかのバージョンが登場するまでは、設定できるソナー・クオリティゲートのプロパティがありました。しかし、今はこれが推奨されていません。新しく作成されたプロジェクトに適切な品質のゲートを定義する新しい方法は何ですか?

答えて

4

Sonarが提供する残りのAPIを使用できます。ゲートPROJECTIDとqualityGateIdは、次の2つのAPIを使用することができます取得する方法について

["curl", "--user", auth, "-X", "POST", "-H", "Content-Type: application/json", "-d", "{'gateId':'"+qualityGateId+"','projectId':'"+projectId+"'}", "https://yoursonarserver/qualitygates/select"].execute().text 

ステップ1.作成ゲート

 def result = ["curl", "--user", auth, "-X", "POST", "-H", "Content-Type: application/json", "-d", "{'name':'" + qualityGateName + "'}", "https://yoursonarserver/api/qualitygates/create"].execute().text 

ステップ2バインドプロジェクト

プロジェクトIDを取得する

 String result = ["curl", "--user", auth , "-X", "GET", "-H", "Accept: application/json", "https://yoursonarserver/api/projects/index", "-d", "search=" + projectName ].execute().text 

は、プロジェクト名に基づくそれらを解析する必要があるので、上記の2つのAPIは、IDのリストを取得します品質ゲートID

 def result = ["curl", "--user", auth, "-X", "GET", "-H", "Accept: application/json", "https://yoursonarserver/api/qualitygates/list"].execute().text 

を取得します。

Brで、

ティム

+0

こんにちはティム。素晴らしい情報。しかし、残念ながらそれは私の問題を解決しません。品質ゲートはすでに存在します。しかし、このプロジェクトは、Mavenのソナー解析を呼び出すことで、自動的に作成され、分析されます。だから私は、分析の前に品質ゲート*にプロジェクトをバインドする機会がありません。それとも私は何かが恋しい? –

+0

この問題をどのように解決すればいいのか言及しないでください。デフォルトの分岐メカニズムを使用するのは非常に難しいことです。私たちがやっていることは、単純なシェルスクリプトを使って解析を開始する前に、プロジェクトのpom artifact id(デフォルトのソナープロジェクト名)をabc-branchのようなものに更新することです。そうすれば、残りのapiでソナープロジェクトを作成し、分析を行い、ゲートをバインド.... – Tim

+0

ああ、私が参照してください。したがって、ソリューションの鍵は手動でプロジェクトを作成することです。新しいプロジェクトを作成するためのAPI呼び出しは、まだ解析していないのですか?それ以外の場合は、「残りのAPIと最初にソナープロジェクトを作成し、分析を行い、ゲートをバインドする」と書いているようにすると、解析後にゲートへのバインディングが発生し、分析に影響を与えます。 –

関連する問題