IDE に即座に送信されるコード解析フィードバック
ブランチに変更をコミットすると、Qodana は CI サイドでバックグラウンドスキャンを実行し、IDE に自動的に課題レポートを送信します。開発者は、バグ、冗長コード、コードの臭い、互換していない依存関係、およびセキュリティ脆弱性に関する自動フィードバックを受け取ります。IDE をまったく離れることなくプロジェクト全体の健全性を確認できるため、フラグの付いた問題の修正にすぐに取り掛かることが可能です。
静的コード解析を CI/CD ワークフローに統合する場合、必ず IDE で実際の問題を解決することになります。JetBrains IDE と VS Code 拡張機能の統合は初期状態で備わっているため、Qodana からサーバーサイドのスキャン内で検出された課題に関するターゲットされたフィードバックが送信されると、集中を妨げる要因やコンテキストスイッチングを生じずに、より素早く修正することができます。Qodana が CI サイドですべての解析を行うため、開発者はコーディングゾーンに留まり、課題を修正することができます。
ブランチに変更をコミットすると、Qodana は CI サイドでバックグラウンドスキャンを実行し、IDE に自動的に課題レポートを送信します。開発者は、バグ、冗長コード、コードの臭い、互換していない依存関係、およびセキュリティ脆弱性に関する自動フィードバックを受け取ります。IDE をまったく離れることなくプロジェクト全体の健全性を確認できるため、フラグの付いた問題の修正にすぐに取り掛かることが可能です。
JetBrains IDE に事前にインストールされているウィザードを使用して任意の CI サーバーの構成ファイルを生成できます。Jenkins、GitHub Actions、TeamCity、GitLab CI/CD などの最も一般的な CI サーバーの場合はヘルパーを使用できます。
Qodana レポートには GitHub Actions や Qodana Cloud 内でもアクセスでき、Open in IDE(IDE で開く)ボタンを使うと、問題が発生したコード内の場所に素早くアクセスできます。
問題に関する詳しい説明により、問題を特定して理解し、問題から学ぶことができます。
コードによってビルドが破損したり、バグ、脆弱な依存関係、または互換性のないライセンスが導入されたりする場合、他の変更がさらに追加される前に問題をすぐに検出して修正する必要があります。そうでない場合、問題がメインブランチに到達してデプロイされてしまいます。CI パイプラインに統合される Qodana は、ユーザーが設定する条件に従って生産ラインを停止したり、サーバーサイドで検出された問題について警告を発したりすることができるため、適時に問題を修正することができます。
自動クオリティゲートは、事前に定義されたベンチマークに対してコードを解析し、即座にフィードバックを提供します。コードが特定の重大度の問題数を超える場合やコードカバレッジが十分でない場合にはパイプラインを失敗させます。
Jenkins、GitHub Actions、TeamCity、BitBucket、GitLab など、使用している CI/CD ツールに関係なく、Docker をサポートしていれば Qodana に統合することができます。
変更をコミットすると、Qodana は CI サイドでバックグランドスキャンを実行し、特定された問題が記載されたレポートを自動的に IDE に送信します。IDE を離れることなくプロジェクトの健全性を確認できるため、すぐにフラグの付いた問題の修正に取り掛かることができます。
JetBrains IDE に事前にインストールされているウィザードを使用して任意の CI サーバーの構成ファイルを生成できます。たとえば、GitHub Actions の Add(追加)ボタンをクリックするだけで、ワークフロー構成ファイルがプロジェクトに作成されます。また、TeamCity、GitLab CI/CD、Jenkins などのその他の CI サーバー用のヘルパーもあります。
Qodana は問題を自動的に解決できるクイックフィックスを適用し、適用された変更を含む新しいプルリクエストを作成できます。すると、ユーザーはコミットする前にこれらの変更をレビューできるようになります。
Qodana リンターがすぐに使用できる Docker イメージに収録されているため、Docker をサポートする任意の CI ツールでそれをプルして実行できます。
法的な問題に発展する前に不適切なソフトウェアライセンスを検出します。Qodana にはソフトウェア構成解析の一環として、プロジェクトのライセンスが依存関係のライセンスに準拠していることを徹底的にチェックするライセンス監査が備わっています。完全なライセンスコンプライアンスを確保することで、予期しない事態や法律の落とし穴を回避します。
Qodana はプロジェクトの依存関係をスキャンし、互換性のないあらゆるライセンスにフラグを立てます。新しいライブラリがプロジェクトに追加されるたび、または既存のライブラリによって不意にライセンスが変更されるたびに、Qodana から通知が届きます。ライセンス監査レポートは、Qodana インターフェースと IDE 内の個別のタブに課題として含められます。
Qodana を使って、すべてのコード変更のライセンスコンプライアンスを徹底してスキャンすることができます。
または、プロジェクト内の特定の依存関係のライセンスを無視したり、カスタム依存関係を作成したり、特定のライセンスを禁止または許可することによってライセンスマトリックスをオーバーライドしたりすることができます。
Qodana は、プロジェクトのライセンスコンプライアンスを関係者、監査担当者、および法務チームに示すための包括的なレポートを生成します。
Qodana では、すべてのチームプロジェクトのコードカバレッジを監視して、重大なパスが十分にテストされることを保証できます。既存のコードと新しいコードの両方に対して希望するカバレッジレベルのしきい値を設定し、CI/CD パイプラインでの自動チェックによって、信頼できるコードベースを維持します。
CI 側でコードカバレッジチェックを実行すると、Qodana がテスト中に実行されなかった行、メソッド、またはクラスを可視化します。各種 JetBrains IDE とのネイティブ統合と VS Code のサポートにより、開発者はテストを再実行しなくても、IDE 内でどのコード箇所がカバーされていないかを直接確認できます。
クオリティゲートの基準として、コードカバレッジの希望する割合を定義できます。完全なコードまたは新しいコードのみが指定したコードカバレッジのベンチマーク(> 50% など)を満たさない場合、Qodana はそのビルドを失敗にします。
Qodana は初期状態で IntelliJ IDEA Code Coverage Agent、JaCoCo、Jest、PhpUnit、coverlet.msbuild、Coverage.py、および go test
と統合します。
Qodana はすべてのプロジェクトを通して、コードカバレッジの進捗を表示できます。
Qodana は検出した特定の問題に対する修正の提案と合わせて、自動的にプルリクエストを生成します。自動的に解決できる問題にクイックフィックスを適用すると、Qodana は変更をコミットする前にレビューできるように、新しいプルリクエストを作成します。
Qodana のリンターは CLEANUP と APPLY 戦略の両方をサポートしているため、柔軟な方法で修正を適用できます。
プロジェクトのロジックを変更することなく安全かつ小さな修正を自動的に実装するため、リスクのないコードのクリーンアップに最適です。
特定されたすべての問題を解決しようとしますが、慎重なレビューが必要となる重大な変更につながる可能性があります。この戦略は、広範なコードレビューを行う準備が整っている場合に最適です。
Qodana には、包括的なコードインサイトを提供し、対応が即必要なエリアを表示する豊富な可視化機能が備わっています。
サンバーストダイアグラムでは、プロジェクトの健全性の概要を確認できます。直感的なフィルターを使用することで、種類、重大度、および場所ごとに問題を並べ替えられるため、最も差し迫った問題に優先順位を付けて素早く解決することができます。
スキャン結果の履歴を確認し、コード品質の改善の進み具合を確認できます。
コード品質のニーズはチームごとに異なるため、すべての要件に 1 つのツールで対応することはできません。チーム特有のワークフローに対応できるよう、Qodana では初期状態で備わっている統合と事前定義済みのインスペクションプロファイルにより、豊富なカスタマイズ機能を使用できるようになっています。
Qodana を拡張するための最も単純な方法は FlexInspect を使用することです。これは、プロジェクトに適用するルールに対し、カスタムコードインスペクションを作成できるツールです。プロジェクトに新しい .kts
ファイルを追加するだけで、個別の構成、ビルドまたは追加ステップが不要になるため、プロセスの複雑さを効果的に解消できます。
リポジトリで提供されているプラグインを使用することも、独自のプラグインを作成することも可能です。プラグインを作成する場合は、プラグイン開発ガイドを参考にしてください。
構造検索は各種 JetBrains IDE に組み込まれている強力で柔軟なメカニズムです。セマンティクスを考慮しながらコードベースを検査できる検索テンプレートを使用しています。独自の検索テンプレートを作成し、Qodana インスペクションとして使用することができます。
あまり重要でない問題をベースラインに移動するか、すべての検出された問題を移動して、それらの通知を受け取らないようにします。こうすることで、チームが最も重要な問題に専念できるようにすることができます。
コードベース内にある問題の経時的な変化を簡単に特定し、新規、解決済み、および未変更の問題を確認します。
最初の実行では、Qodana はコードベース内のさまざまな問題を特定します。すぐにすべての問題に対応して他のタスクを中断するのではなく、これらの問題をベースラインに追加できます。圧倒されることなく、新しいコードのみにクリーンコード手法を適用することに専念できます。