SonarのWebページベースの品質サマリは便利なのですが、すべてのパッケージを対象にとあるソースコード違反(nullチェックしてないよ!とか不要なimport文が残ってるよ!とか)を調べたいときに、ちょっと不便だったり、私はSIerなので、品質サマリはHTMLよりExcelが好きな人が多いので[/issue/search]を要求するクライアントを作ってみました。
リポジトリ
https://github.com/sh-ogawa/sonar-web-service-client
使用方法
以下のファイルに、sonarのホスト情報やAPIに渡すパラメータの情報を設定できます。
src/main/resources/jp/sh4/ooga/sonar/client/sonar-web.properties
sonar-common-optionプロパティに共通の設定をし、
sonar-option-XXにチェックルール(コード違反のチェッククラス)のキーを設定します。
XXの部分は被ってなければ、何でも良いです。
順繰り読み取ってSonar Web APIに対して要求をかけます。
テストクラスに取ったデータをcsvファイルへ出力するテストクラスを入れておいたのでそれを実行していただくと、src/test/resources/out/issue.csvへ出力します。
※出力するデータは私が必要だったデータだけです。他のデータが欲しかったらdtoに入っているので出力方法を変えてください。
ちなみに1回の要求で、SOnar Web API都合で最大500件しか取れないみたいなので、取りきれてない場合はsonar-option-XXをコメントアウトしてください。全部の違反を取ってくるようにしてみました。