SonarQubeはメジャーな静的コード解析ツールの1つ。
フロントエンド(Typescriptなど)にもAPI(Javaなど)にも対応している。
バージョン確認
ブラウザで以下にアクセスする。
http://localhost:9000/api/server/version
※http://localhost:9000 は、SonarQubeを起動しているサーバーのURLを指定する
SonarQubeのレポート出力
レポート機能はいくつかあるが、それぞれ特徴とハードルがある。
- APIを使用したリクエスト:プロジェクト単位、JSON形式での出力
- SonarQubeのインポート/エクスポート:SonarQube専用の形式になるため、レポートというかデータの共有方法。プロジェクトを選択>Project Settings>Import / Export
- SonarQube for PDF:PDFで出力できるが、無料版では使用できない
一番現実的なのがAPIの使用なので、以下で紹介する。
APIを使用したリクエスト
SonarQubeの提供するAPIにアクセスして、JSON形式でレポートを出力できる。出力されるデータは、かなりのコード量になる。
リクエストフォーマット(bash)
curl -u <username>:<password> "http://localhost:9000/api/issues/search?componentKeys=<project-key>" > sonarqube_report.json
- http://localhost:9000 は、SonarQubeを起動しているサーバーのURLを指定する。
- project-key は基本的には左上に表示されているプロジェクト名になるが、正確な情報は、Project Information > Project Keyから確認できる。
- パスワード等で「!」などの特殊記号を使用している場合は、「\」でエスケープする。
- ファイルとして出力する場合は、コマンド末尾に出力パスを指定する。(例: > sonarqube_report.json)
コメント