Qodana 2026.1 ヘルプ

増分分析

Qodana を使用すると、コードベース全体だけでなく、マージやプルリクエストなどの変更セット、さらには 2 つのコミット間の変更も分析できます。

このページの設定サンプルには、変更分析に含めるべき最も古いコミットと最新のコミットのハッシュを表す <GIT_START_HASH><GIT_END_HASH> が含まれています。例:

commit 7a3f9f8e6b3a487f7e8e7f8a7f8e (HEAD -> main) <--- GIT_END_HASH | Author: Your Name <your.email@example.com> | Date: Mon Oct 3 12:34:56 2024 +0200 | | The latest commit | * commit 2b4c8d9e6a3b486f7e9e8f8b8f8 | Author: Your Name <your.email@example.com> | Date: Mon Oct 2 12:30:00 2024 +0200 | | The second commit | * commit 5d6e9f0e7b4c587f8e0e9f0a9f0 <--- GIT_START_HASH | Author: Your Name <your.email@example.com> | Date: Mon Oct 1 12:25:00 2024 +0200 | | The earliest commit

QODANA_TOKEN 変数はプロジェクトトークン値を参照します。

分析パフォーマンス

増分分析では、限定された分析範囲を使用して Qodana が 2 回実行されます。つまり、構成ステージも 2 回実行されます。

比較的小スコープなコードベースを分析する場合、分析範囲を縮小してもパフォーマンスは大幅に向上せず、通常の分析と比較してわずかなパフォーマンス向上しか得られません。プロジェクトの複雑さ、プロジェクト構造の頻繁な変更、その他多くの要因が、増分分析に必要な時間に影響を与える可能性があります。

プルリクエストとマージリクエストを分析する

作業を終えて変更を分析したい場合は、--diff-start オプションを使用して、比較のベースとなるコミットのハッシュを指定できます。

Qodana CLI(英語) をデフォルトモードで実行するには、Docker または Podman がインストールされ、ローカルで実行されている必要があります。Linux を使用している場合は、現在の非 root ユーザー(英語)で Docker を実行できるはずです。次のコマンドを使用して、Qodana CLI を実行します。

qodana scan \    -e QODANA_TOKEN="<cloud-project-token>" \    --diff-start=<GIT_START_HASH>

GitHub アクションでは、--diff-start は Qodana の実行中に自動的に追加されるため省略できます。次の手順に従います。

  1. GitHub UI の設定タブで、QODANA_TOKEN 暗号化シークレット(英語)を作成し、その値としてプロジェクトトークンを保存します。

  2. GitHub UI のアクションタブで、新しいワークフローを設定し、.github/workflows/code_quality.yml ファイルを作成します。

  3. このスニペットを .github/workflows/code_quality.yml ファイルに追加します。

    name: Qodana on: workflow_dispatch: pull_request: push: branches: # Specify your branches here - main # The 'main' 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 env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}

プロジェクトリポジトリが GitLab CI/CD からアクセスできることを確認します。

プロジェクトのルートディレクトリに、次のスニペットを含む .gitlab-ci.yml ファイルを保存します。

include: - component: $CI_SERVER_FQDN/qodana/qodana/qodana-gitlab-ci@v2026.1 inputs: args: --image <image>

この設定では、デフォルトではマージリクエストの分析が有効になっています。デフォルトの動作を上書きするには、次の設定を使用できます。

include: - component: $CI_SERVER_FQDN/qodana/qodana/qodana-gitlab-ci@v2026.1 inputs: args: --image <image>   qodana:   rules:     # GIT_DEPTH: 0 is required for checkout in case Qodana works in merge request mode     # (reports issues that appeared only in that merge request)     - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $QODANA_MR_MODE == "true"       variables:         GIT_DEPTH: 0     # run analysis in case of merge request     - if: $CI_PIPELINE_SOURCE == "merge_request_event"     # restrict branch analysis only to main/master and release branches     - if: $CI_COMMIT_BRANCH =~ /^releases/ || $CI_COMMIT_BRANCH == "master" || $CI_COMMIT_BRANCH == "main"       # mr-mode does not make any sense for branch analysis       variables:         QODANA_MR_MODE: false
docker run \    -v $(pwd):/data/project/ \    -e QODANA_TOKEN="<cloud-project-token>" \    jetbrains/qodana-<image> \    --diff-start=<GIT_START_HASH>

2 つのコミット間の変更を分析する

2 つのコミット間の変更セットを分析するには、--diff-start--diff-end の両方のオプションを使用します。

Qodana CLI(英語) をデフォルトモードで実行するには、Docker または Podman がインストールされ、ローカルで実行されている必要があります。Linux を使用している場合は、現在の非 root ユーザー(英語)で Docker を実行できるはずです。次のコマンドを使用して、Qodana CLI を実行します。

qodana scan \    -e QODANA_TOKEN="<cloud-project-token>" \    --diff-start=<GIT_START_HASH> \    --diff-end=<GIT_END_HASH>
  1. GitHub UI の設定タブで、QODANA_TOKEN 暗号化シークレット(英語)を作成し、その値としてプロジェクトトークンを保存します。

  2. GitHub UI のアクションタブで、新しいワークフローを設定し、.github/workflows/code_quality.yml ファイルを作成します。

  3. このスニペットを .github/workflows/code_quality.yml ファイルに追加します。

    name: Qodana on: workflow_dispatch: pull_request: push: branches: # Specify your branches here - main # The 'main' 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: --diff-start <GIT_START_HASH> --diff-end <GIT_END_HASH> env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}

プロジェクトリポジトリが GitLab CI/CD からアクセスできることを確認します。

プロジェクトのルートディレクトリに、次のスニペットを含む .gitlab-ci.yml ファイルを保存します。

include: - component: $CI_SERVER_FQDN/qodana/qodana/qodana-gitlab-ci@v2026.1 inputs: args: --diff-start $CI_MERGE_REQUEST_TARGET_BRANCH_SHA --diff-end $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA --image <image>
docker run \    -v $(pwd):/data/project/ \    -e QODANA_TOKEN="<cloud-project-token>" \    jetbrains/qodana-<image> \    --diff-start=<GIT_START_HASH> \    --diff-end=<GIT_END_HASH>
2026 年 6 月 02 日

関連ページ:

.NET

すべての Qodana リンターは、特定のプログラミング言語とフレームワーク用に設計された JetBrains IDE に基づいています。.NET プロジェクトを分析するには、次の Qodana リンターを使用できます。リンター名 Docker イメージ * ベースとなるもの JetBrains Rider ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法ネイティブソリューションと Docker イメージサポートされる言語 C#、C/C++、VB.NET、J...

C / C++

C/C++ ファミリのリンターは、CMake などの一般的なビルドシステムをサポートするか、ファイルを提供する C および C++ プロジェクトを解析できます。この機能を提供するリンターは 2 種類あります。リンター名 Docker イメージ * ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法 Docker イメージサポート CLion が提供するインスペクションのフルセット:Clang-Tidy インスペクションは Qodana コミュニティによって C/...

プロジェクトトークン

一般に利用可能な有料リンターでは、Qodana の実行中に変数を使用してプロジェクトトークンを提供する必要があります。例:qodana scan \ -e QODANA_TOKEN=

プロジェクト

プロジェクトは Qodana レポートを蓄積します。各プロジェクトはプロジェクトトークンによって一意に識別されます。プロジェクトの作成:新しい組織を作成する際、Qodana Cloud は最初のプロジェクトの設定を支援するため、これらの手順は追加のプロジェクトを作成する場合にのみ関連します。チームページで、ボタンをクリックします。プロジェクトのセットアップ段階を完了します。この段階の詳細については、前提条件セクションを参照してください。プロジェクトを管理する:プロジェクトが作成された後、その...