ベースライン
ベースラインとは、特定の Git ブランチに対する特定の Qodana 分析で取得されたコードベースの問題点のスナップショットであり、qodana.sarif.json ファイルに格納されています。
ベースライン機能を使用すると、現在のコードとベースラインの状態を比較し、新規の問題、変更されていない問題、解決済みの問題を確認できます。たとえば、main ブランチのベースラインを設定・更新することで、プルリクエストやマージリクエストのマージ後の変更を監視できます。必要に応じて、新しい qodana.sarif.json ファイルを生成し、Qodana の実行中に使用することで、ベースラインを更新できます。
Baseline はすべてのリンターでサポートされており、Community、Ultimate、Ultimate Plus ライセンスおよびそれぞれの試用版で利用可能です。ライセンスの詳細については、サブスクリプションのオプションと価格のページを参照してください。デモ版のリクエストも可能です。
ベースラインの仕組み
ベースラインなしで Qodana を実行すると、現在の分析で検出された問題点を確認できます。

この場合、新規の問題と既存の問題に分類されず、問題の数とその説明のみが表示されます。
状況を改善するには、Qodana レポートの説明の基本的な問題点セクションに従って、ベースラインに問題を追加し、プロジェクトディレクトリ内の qodana.sarif.json ファイルに保存します。保存すると、このファイルは後のコード状態と比較するための基準となります。以下は、様々なツールを使用して Qodana を実行する例です。
ここで、-v <path_to_baseline>:/data/base/ 行は、SARIF 形式のベースラインファイルを含むディレクトリを Qodana Docker イメージの /data/base ディレクトリにマウントします。QODANA_TOKEN 変数は、Ultimate と Ultimate Plus リンターに必要なプロジェクトトークンを参照します。
このスニペットでは、-v <path_to_baseline>:/data/base/ 行は、SARIF 形式のベースラインファイルを含むディレクトリを Qodana Docker イメージの /data/base ディレクトリにマウントします。--baseline オプションは、Docker ファイルシステムからベースラインファイルへのパスを指定します。QODANA_TOKEN 変数は、Ultimate と Ultimate Plus リンターに必要なプロジェクトトークンを参照します。
このスニペットでは、--baseline オプションはベースラインを含む qodana.sarif.json ファイルへのパスを指定します。
このスニペットでは、--baseline オプションはベースラインを含む qodana.sarif.json ファイルへのパスを指定します。
このスニペットでは、--baseline オプションはベースラインを含む qodana.sarif.json ファイルへのパスを指定します。
ランナー設定で、フィールドを見つけて、ベースラインを含む qodana.sarif.json ファイルへのパスを指定します。
この機能をサポートする IDE のリストは、JetBrains IDE セクションにあります。
このアニメーションは、ベースラインを使用してコードを分析する方法を示しています。

アニメーションの各ステップの説明は次のとおりです。
IDE で、ツールウィンドウに移動します。
ツールウィンドウで、 タブをクリックします。
タブで、ボタンをクリックします。
開いたダイアログで、セクションを展開し、ベースラインファイルを選択して、をクリックします。
ベースライン機能は、問題を次のグループに分類します。
未変更とは、ベースラインに追加され、それ以降変更されていない問題です。
基本的な問題に加えて、新たな問題も発生します。
ベースラインの作成以降に解決されたベースラインの問題は存在しません。
このイメージは、すべてがどのように機能するかを説明しています。

最初の Qodana 実行では、コードベースに 2 つの問題が検出されました。
プロジェクトのベースラインを作成するには、
qodana.sarif.jsonファイルをダウンロードし、基本的な問題点セクションに示されているようにプロジェクトディレクトリに保存します。この時点から、これら 2 つの問題は Qodana によってベースラインの問題として識別されます。その後の Qodana 実行で 3 つの問題が検出されました。幸いなことに、今回は Qodana がそのうちの 1 つを新しい問題として識別し、それぞれにマークを付けました。他の 2 つはベースラインの問題であり、ベースラインレポートにすでに反映されており、変更されていないとマークされています。
1 つの基本的な問題が解決された後、Qodana を再度実行することにしました。今回の報告書には 3 つの問題点が含まれています。新しい問題は、前回の実行で検出された、まだ新しい問題です。ステータスが変わっていない未解決の問題も 1 つあります。最後に、最初のベースラインの問題が解決され、現在は存在しないとしてマークされています。
存在しない問題をレポートに含めるには、
--baseline-include-absentオプションを指定して Qodana を実行する必要があります。qodana scan \ -v <path_to_baseline>:/data/base/ \ -e QODANA_TOKEN="<cloud-project-token>" \ --baseline /data/base/<path-relative-to-project-dir>/qodana.sarif.json \ --baseline-include-absentdocker run \ -v $(pwd):/data/project/ \ -v <path_to_baseline>:/data/base/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<image> \ --baseline /data/base/<path-relative-to-project-dir>/qodana.sarif.json \ --baseline-include-absentname: Qodana on: workflow_dispatch: pull_request: push: branches: # Specify your branches here - main # The 'main' branch - master # The 'master' branch - 'releases/*' # The release branches jobs: qodana: runs-on: ubuntu-latest permissions: contents: write pull-requests: write checks: write steps: - uses: actions/checkout@v3 with: ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit fetch-depth: 0 # a full history is required for pull request analysis - name: 'Qodana Scan' uses: JetBrains/qodana-action@v2026.1 with: args: | --baseline <path-relative-to-project-dir>/qodana.sarif.json --baseline-include-absent env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}pipeline { environment { QODANA_TOKEN=credentials('qodana-token') } agent { docker { args ''' -v "${WORKSPACE}":/data/project --entrypoint="" ''' image 'jetbrains/qodana-<image>' } } stages { stage('Qodana') { steps { sh ''' qodana \ --baseline <path-relative-to-project-dir>/qodana.sarif.json \ --baseline-include-absent ''' } } } }include: - component: $CI_SERVER_FQDN/qodana/qodana/qodana-gitlab-ci@v2026.1 inputs: args: | --baseline <path-relative-to-project-dir>/qodana.sarif.json --baseline-include-absent --image <image>ランナー設定で、フィールドを見つけて、
--baseline-include-absentオプションを追加します。--baseline <path-relative-to-project-dir>/qodana.sarif.json --baseline-include-absent
ご覧のとおり、新たな問題が発生しても、Qodana 分析全体の状態は変わりません。状態を「変更なし」に変更するには、ベースラインを更新する必要があります。

新しい問題をベースラインに追加し、更新されたバージョンの
qodana.sarif.jsonファイルをプロジェクトディレクトリに保存します。Qodana を再度実行して、問題ステータスの変化を確認します。
関連ページ:
Qodana のエディション
ニーズに応じて、次の表に示す適切なライセンスを選択できます。Community フリー孤立した問題の解決に最適 Ultimate 詳細については、サブスクリプションのオプションと価格を参照してくださいさまざまなビジネスタスクを解決するために設計されています。試用版をご利用いただけます。Ultimate Plus 詳細については、サブスクリプションのオプションと価格を参照してください Ultimate ライセンスと同じ機能がすべて含まれていますが、追加機能と無制限の履歴データストレージも含まれています。試用...
分析レポート
Qodana を使用すると、ローカルまたは Qodana クラウドでインタラクティブかつユーザーフレンドリーな形式で分析レポートを確認できます。レポート UI の概要:各レポートには次のタブが含まれています。現在の問題点は、最新のインスペクション中に Qodana が検出した問題を明らかにします。基本的な問題点は、ベースラインとしてマークされ、それ以降修正されていない問題点を一覧にしたものです。インスペクションを使用すると、Qodana を将来使用するために設定できます。
JetBrains IDE
JetBrains Toolbox アプリ経由でインストールされた JetBrains IDE 製品(IntelliJ IDEA、PhpStorm、WebStorm、GoLand、PyCharm、Rider、CLion など)を使用して、Qodana を実行できます。IDE に応じて、利用可能な機能は以下のとおりです。Qodana をローカルで実行し、レポートを Qodana クラウドにアップロードする (CLion では利用できません)、Qodana クラウドに接続してレポートをダウンロードする...
コードカバレッジ
コードカバレッジは、生成されたレポートを使用して、メソッド、クラス、ファイル内の全体的なコードカバレッジを計算します。また、これらのエンティティのカバレッジ不足に関連する問題についてもレポートします。コードカバレッジレポートは、Qodana Ultimate および Qodana Ultimate Plus ライセンスでご利用いただけます。Qodana ライセンスの詳細については、サブスクリプションのオプションと価格ページを参照してください。デモのご依頼も承っております。この機能は以下のリンターで...