
コード品質と静的解析のプラットフォーム。品質ゲート、多言語スキャン、およびCI/CDワークフローにおける脆弱性や保守性の問題を検出するためのセキュリティ重視のルールを備えています。
SonarQubeは、コード品質とセキュリティのためのアルゴリズム検証プラットフォームです。その静的解析は、シンボリック実行やデータフロー・制御フロー解析などの手法を適用してコードを検査し、バグ、脆弱性、構造的な問題を見つけ出し、IDE、プルリクエスト、CIパイプラインにおいて、何をなぜ修正すべきかを正確に伝えます。
このリポジトリには、SonarQubeプラットフォームの無料のオープンソース版であるSonarQube Community Buildのソースが含まれています。SonarQube製品ライン全体で使用されているものと同じ解析を共有しています。
AIはチームがレビューできるよりも速くコードを書くため、検証負債が生じます。つまり、誰もその動作を確認する前にコードが本番環境に到達してしまうのです。SonarQubeは、開発者が書いたものであれエージェントが書いたものであれ、すべての行に同じ一貫した説明可能な解析を適用します。まずバイブ、次に検証:素早く生成し、本番環境に到達するものを検証します。これはAgent Centric Development Cycleの検証段階であり、外側のCI検証ループで実行され、コードがマージされる前に検証します。
SonarQubeプラットフォームは40以上のプログラミング言語とフレームワークを解析しますが、Community Buildはその一部をサポートしています。解析は再現可能で、監査可能で、説明可能です。同じコードは常に同じ検出結果を生成し、すべての検出結果は追跡可能であり、それぞれが問題の内容とそれがなぜ重要かを伝えます。
SonarQube ServerとSonarQube Cloudは、Community Buildのすべてを含み、さらに以下を追加します。
より多くを検出
ワークフロー全体を解析
チームを横断したガバナンス、レポート、可視化
修正
一部の機能はSonarQube Advanced Securityアドオンの一部です。詳細は製品ラインを参照してください。
Quality Gateは、新規コードに対する合否チェックです。基準を一度設定すれば、SonarQubeがすべてのプルリクエストとパイプラインで自動的に適用するため、問題は本番環境で発見されるのではなく、マージ前に捕捉されます。
Community Buildは無料でオープンソースです。より広範なSonarQubeラインは、ワークフロー全体で同じ解析を適用します。
適切な製品とデプロイモデルを選択するには、SonarQubeのプランと価格を比較してください。
Community Buildは無料ですか? はい。無料でオープンソースであり、このリポジトリがそのソースです。
Community BuildとSonarQube Serverの違いは何ですか? Community Buildは無料のセルフマネージドエンジンです。SonarQube ServerとSonarQube Cloudは商用エディションです。これらはより多くの言語をカバーし、ブランチおよびプルリクエスト解析、ソフトウェアコンポジション解析(SCA)、アーキテクチャ管理、テイント解析(SAST)による高度なセキュリティ、シークレット検出、Infrastructure as Code(IaC)解析、検証済みの修正プルリクエストのためのSonarQube Remediation Agent、エンタープライズレポートを追加します。一部の機能はSonarQube Advanced Securityアドオンの一部です。詳細は製品ラインを参照してください。
AIが生成したコードでも動作しますか? はい。SonarQubeは、開発者が書いたものであれエージェントが書いたものであれ、すべてのコードに同じ解析を適用します。
サポートに関する質問(「どうすればいいですか?」「このエラーが出ました、なぜですか?」など)については、まずドキュメントを読み、その後SonarSource Communityにアクセスしてください。あなたの質問への答えは、すでに回答されている可能性が高いです! 🤓
このフォーラムはコミュニティであるため、標準的な挨拶(「こんにちは」「ありがとう」など)が期待されることに注意してください。また、スレッドに回答が得られない場合は、少なくとも3日間は手をこまねいて待ってから催促してください。オペレーターが待機しているわけではありません。 😄
新機能の提案やバグの報告をご希望の場合は、フォーラムで新しいスレッドを作成してください。
私たちが機能のコントリビューションを積極的に求めているわけではないことにご注意ください。実際のところ、SonarSource外部の人が私たちのロードマップと期待に沿うことは極めて困難です。そのため、通常は軽微な見た目の変更やタイポの修正のみを受け入れています。
それを踏まえた上で、コードのコントリビューションを提出したい場合は、このリポジトリに対してプルリクエストを作成してください。この変更をコントリビュートする動機を説明してください。どのような問題を修正しようとしているのか、どのような改善をしようとしているのかを。
コードスタイルに従い、すべてのテストがパスすることを確認してください(各プルリクエストに対してGitHub Actionsビルドが実行されます)。
SonarSource製品にコントリビュートしてみませんか?私たちは、世界クラスのコード品質ソリューションを構築するために、賢く情熱的で熟練した人材を探しています。現在の求人情報はこちらをご覧ください!
ソースをローカルでビルドするには、以下の手順に従ってください。
-x testを追加することで無効化できます(テストを実行せずにビルドしたい場合に便利です)プロジェクトのベースディレクトリから実行します:
./gradlew build
zip配布ファイルはsonar-application/build/distributions/に生成されます。それを解凍し、以下を実行してサーバーを起動します:
# on Linux
bin/linux-x86-64/sonar.sh start
# or on MacOS
bin/macosx-universal-64/sonar.sh start
# or on Windows
bin\windows-x86-64\StartSonar.bat
プロジェクトが一度もビルドされたことがない場合は、通常どおりビルドするか(前のセクションを参照)、より迅速なコマンドを使用してください:
./gradlew ide
その後、ルートファイルbuild.gradleをIntelliJまたはEclipseでプロジェクトとして開きます。
| ./gradlew command | Description |
|---|---|
dependencies | 依存関係を一覧表示 |
spotlessApply | HEADERを適用してソースヘッダーを修正 |
wrapper --gradle-version <version> | wrapperをアップグレード |
SonarQube UI(私たちがwebappと呼ぶもの)は、別のリポジトリにあります:sonarqube-webapp。
sonarqubeリポジトリをビルドする際、webappは依存関係としてMaven Centralから自動的にダウンロードされるため、webappを気にすることなくバックエンドの変更をコントリビュートできます。