2017-12-07 3 views
0

シナリオ全体を走査しましたSonarQubeは、複数のブランチ

'devBranch B' - devブランチ、上記と同じです。

BitBucketでプルリクエストを作成したJenkins CI/CDパイプラインで、静的コード解析用のSonarQube(6.x)を使用しています。 Git Jenkinsプラグインを使用します。今、GitはなどのBitbucketからチェックアウトをして、プルリクエストの作成時に、次のとおりです。

Checking out Revision cdd7cc6fa787d111bbc6afef2728fa3353aab499 (origin/feature/TestTuesday) 

私はその特定のブランチで特定のプルリクエストからそののみコードを確保しようとしています - と我々はすべてのは、どのように私たちのGitジェンキンスプラグイン「分岐指定子」

に一致するすべてのブランチにコミットし得ることは決してないことを確認しようとしている - 任意のブランチ内のすべてのコミットがSonarQubeによって解析され、「* /起源/機能」のパターンに一致しませんdo I:SonarQubeが特定のプルリクエスト内のコードだけをスキャンするようにします。これは、ブランチ仕様に一致するブランチのすべての変更とは異なりますifierパターン。

おかげ

編集:私は...私は私が実際に技術的に関連性がある方法で解決しようとしているこの問題を、多関節きた感じていないとして、この質問を削除するように誘惑された

Jenkins/Gitプラグインがそのコードをチェックアウトすると、正しいコードを実際にチェックアウトしています。つまり、リビジョンは、PRが起きたリポジトリのヘッドコミットです。

以前は、別の問題がsonarqube分析のためのソースコードへの正しいパスをしていた:彼らはジェンキンスジョブのワークスペースに相対するのに必要な...

概要:代わりにこの質問を削除するので、私は」私の貧弱な言葉遣いを明確にし、これを啓発している人がいれば、簡単にフォローアップしてください。

答えて

1

私はgitフックを見てみることをお勧めします。おそらく、Sonarでコードをチェックしてリポジトリにプッシュされる前にフックを書くことができます。また、IDE内のプラグインをSonarLintのように使用することができます。これは、Sonarのルールに従ってIDEでコードを解析するのに使用できますが、フックはプラグインと厳密に比較されます。

+0

私たちはSonarLintを使用しています - これらのユースケースは、他のシナリオをモデル化しています - CI/CDパイプライン、パイプラインスキャンなど... IDEプラグインは価値がありますが、何らかの種類のプリスキャンフックについては...それは実行可能だと思っていますが、私はそれを理想的とは感じておらず、代わりをしたいと思います。私は、チェックアウトを行うgitコマンドの設定をホーニングすることをお勧めします... – hax0rdlux3

0

あなたが引っ張っている枝を知って考えると、あなたは

$ git fetch 
$ git diff <branch>...origin/<branch>. 

これはあなたに引かれるだけコミットを与える行うことができます。 変更の一覧を書き留めておき、それをsonar-scanner(または使用している他のクライアント)に渡して、上記のファイルだけを含めます。このような

何か:今

sonar-scanner -Dsonar.inclusions=<Comma-delimited list of files> 

、あなたは私がであることを示唆するもの、のgitから引っ張ってプラグインを使用していることから、プルを開始する前に、gitのログを行うとSHAをコミットし、古い行い得ますgit pull、新しいコミットSHAを得る。古いSHAと新しいSHAを使用して、git diff/gitログを実行して、変更のあったファイルのリストを取得します。

+0

は私を優雅な印象にはしませんが、それでも私はそれを感謝します。私はより最適な解決策であると感じているものを探し続けます。 – hax0rdlux3

関連する問題