Qodana 2026.1 ヘルプ

GitHub アクション

Qodana Scan GitHub アクション(英語)を使用すると、GitHub リポジトリで Qodana を実行できます。

プロジェクトを準備する

Qodana クラウド

このセクションのすべての構成例では、Qodana Cloud によって生成されたプロジェクトトークンを使用します。このトークンは、有料の Qodana リンターでは必須であり、コミュニティリンターで使用する場合はオプションです。Qodana Cloud UI でプロジェクトトークンを生成する方法については、次のセクションを参照してください。

  • プロジェクト設定セクションでは、Qodana Cloud を初めて使用する際にプロジェクトトークンを生成する方法について説明します。

  • プロジェクトを管理するセクションでは、既存の Qodana Cloud 組織内でプロジェクトトークンを作成する方法について説明します。

プロジェクトトークンを取得したら、パイプラインまたはワークフローで識別するために QODANA_TOKEN 変数を使用できます。

https://qodana.cloud/ 以外の Qodana Cloud インスタンスを使用している場合は、QODANA_ENDPOINT 環境変数を設定して上書きします。

Qodana クラウド GitHub アプリ

プロジェクトの設定中に、Qodana Cloud GitHub アプリをインストールするようにという通知が届きます。

Authorize Qodana GitHub App

この GitHub アプリケーションは、以下のデータをリポジトリに一度だけプッシュします。

分析対象のリポジトリへのアクセス権がない場合は、必要なアクセス権を申請し、承認されるまでお待ちください。それ以外の場合は、プロジェクトで Qodana を起動するための手順と設定スニペットが提供されます。

引数表記

Qodana は、引数を指定する際にシェルライクな表記法をサポートしています。この表記法では、キーと値をスペースで区切り、値をシングルクォートまたはダブルクォートで囲みます。これは、Qodana の設定時に引数を指定する推奨方法です。

この表には、両方の表記法の例が含まれています。

サンプル

実際の表記

従来の記法

単一の引数

--profile-name qodana.starter
--profile-name,qodana.starter

2 つの論点

--fail-threshold 10 --property key=value
--fail-threshold,10 --property,key=value

スペース文字を含む値に引用符を使用する

--property "key=some value"
--property,"key=some value"

後方互換性のために、従来のコンマ区切り表記は引き続きサポートされていますが、非推奨であり、Qodana の将来のバージョンで削除されます。

基本構成

  1. GitHub UI の設定タブで、QODANA_TOKEN 暗号化シークレット(英語)を作成し、プロジェクトトークンをその値として保存します。https://qodana.cloud/ 以外の Qodana Cloud インスタンスを使用している場合は、QODANA_ENDPOINT 環境変数を宣言して上書きしてください。

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

  3. mainmaster ブランチ、およびリリースブランチとリポジトリに届くプルリクエストを分析するには、次のワークフロー構成を .github/workflows/code_quality.yml ファイルに保存します。

    name: 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: | --linter <qodana-linter> --within-docker false env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}

    <qodana-linter> を、使用したい Qodana リンターの名前に置き換えてください。

    name: 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 env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}

さまざまなジョブが並行して実行される(英語)ため、Qodana 用に別のワークフローファイルを用意することをお勧めします。

クイックフィックス

Qodana によって検出された問題を自動的に修正し、変更をリポジトリにプッシュするには、以下の手順に従います。

  1. 次の 2 つの構成方法のいずれかを使用してクイックフィックス戦略を選択します。

    # Possible values: apply | cleanup fixesStrategy: apply
    # Possible values: --apply-fixes | --cleanup args: --apply-fixes
  2. ニーズに応じて、ワークフロー構成の push-fixes オプションを構成します。

    この構成を保存すると、修正を加えた新しいブランチと、元のブランチへのプルリクエストが作成されます。

    push-fixes: pull-request

    また、プルリクエストを作成および承認する(英語)には、GitHub アクションを有効にします。

    この構成を保存して、元のブランチに修正をプッシュします。

    push-fixes: branch pr-mode: false
  3. ジョブに適切な権限を設定します。例:

    permissions:   contents: write   pull-requests: write   checks: write

これはすべてのオプションを含む構成スニペットの例です。

permissions: contents: write pull-requests: write checks: write steps: - name: 'Qodana Scan' uses: JetBrains/qodana-action@v2026.1 with: args: --apply-fixes push-fixes: pull-request env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}

GitHub コードスキャン

Qodana を使用して、プロジェクト用に GitHub コードスキャン(英語)を設定できます。これを行うには、code_quality.yml ワークフローファイルの Qodana スキャンの基本構成のすぐ下に次の行を追加します。

- uses: github/codeql-action/upload-sarif@v2 with: sarif_file: ${{ runner.temp }}/qodana/results/qodana.sarif.json

このサンプルは、SARIF 形式の Qodana レポートを GitHub にアップロードするために codeql-action を呼び出し、sarif_file キーを使用してレポートファイルを指定します。

プルリクエスト

Qodana ではプルリクエストの分析がデフォルトで有効になっています。詳細は pr-mode オプションの説明を参照してください。2 つのコミット間のコードを分析する方法については、2 つのコミット間の変更を分析する章を参照してください。

プルリクエストのクオリティゲート

品質ゲートが失敗した場合にプルリクエストのマージをブロックするように GitHub を設定できます。これを行うには、次のようにブランチ保護ルール(英語)を作成します。

  1. Qodana スキャンアクションを呼び出す新しい GitHub ワークフローを作成するか、既存の GitHub ワークフローを開きます。

  2. main ブランチをターゲットとする pull_request イベントで実行されるようにワークフローを設定します。

    on: pull_request: branches: - main

    main の代わりに、ここでブランチを指定できます。

  3. Qodana アクション fail-threshold オプションの問題の数 (整数) を設定します。

  4. リポジトリ名にある設定をクリックします。

  5. 左側のメニューでブランチをクリックします。

  6. ブランチ保護ルールセクションで、ルールの追加をクリックします。

  7. mainブランチ名前パターンに追加します。

  8. マージ前にステータスチェックに合格する必要があるを選択します。

  9. Qodana ステータスチェックを検索して確認してください。

  10. 作成をクリックします。

ベースラインと品質ゲート

ベースライン

プロジェクトのベースラインを確立するには、次の手順に従います。

  1. プロジェクト上で Qodana をローカルに実行します。

    cd project qodana scan \ -e QODANA_TOKEN="<cloud-project-token>"
  2. Qodana Cloud で、検出された問題をベースラインに追加しqodana.sarif.json ファイルをダウンロードします。

  3. qodana.sarif.json ファイルを GitHub のプロジェクトルートにアップロードします。

  4. --baseline,qodana.sarif.json 引数を、code_quality.yml ファイルの Qodana スキャンアクション構成 args パラメーターに追加します。

    - name: Qodana Scan uses: JetBrains/qodana-action@main with: args: --baseline qodana.sarif.json

ベースラインを更新するには、これらの手順をもう一度繰り返す必要があります。

この時点から、GitHub はベースラインに新しい問題として含まれていなかった問題に対してのみアラートを生成します。

クオリティゲート

品質ゲートを確立するには、ワークフロー構成で --fail-threshold オプションを指定します。

- name: Qodana Scan uses: JetBrains/qodana-action@v2026.1 with: args: --fail-threshold <number-of-accepted-problems> env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}

複合構成

ベースライン機能と品質ゲート機能を組み合わせることで、技術的負債を管理し、新しい問題のみを報告し、問題が多すぎるプルリクエストをブロックすることができます。この構成を使用すると、ベースラインを超えたプルリクエストで新しい問題のみを検出できるようになります。

- name: Qodana Scan uses: JetBrains/qodana-action@v2026.1 with: args: --baseline qodana.sarif.json --fail-threshold <number-of-accepted-problems> env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}

同時に、--fail-threshold 制限を超える新しい問題を含むプルリクエストはブロックされ、ワークフローは失敗します。

特定のソリューションを分析する

特定のソリューションを使用して .NET プロジェクトを分析するには、プロジェクトルートを基準としたソリューションファイルへのパスを指定します。例:

- name: Qodana Scan uses: JetBrains/qodana-action@v2026.1 with: args: --solution "src/path_to_your.sln" env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}

Qodana バッジを取得する

リポジトリに Qodana ワークフローバッジを設定するには、次の手順に従います。

  1. 以前に構成したワークフロー実行に移動します。

  2. ワークフローページで、ステータスバッジを作成するを選択します。

    Creating status badge
  3. Markdown テキストをリポジトリの README ファイルにコピーします。

Qodana ログ

.github/workflows/code_quality.yml ファイルで、upload-resulttrue に設定します。

- name: 'Qodana Scan' uses: JetBrains/qodana-action@v2026.1 env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }} with: upload-result: true

この設定で Qodana を実行し、qodana-report アーティファクトを生成します。ログを確認するには、log ディレクトリに移動してください。

構成

ほとんどの場合、args 以外のオプションは必要ありません。1 つのワークフローで複数の Qodana スキャンジョブを構成する場合、他のすべてのオプションが役に立ちます。

with (英語) を使用してアクションパラメーターを定義します。

with: args: --baseline qodana.sarif.json cache-default-branch-only: true

名前

説明

デフォルト値

args

追加の Qodana CLI scan コマンド(英語)引数。引数をコンマ (,) で分割します (例: -i,frontend,--print-problems)。オプション。

-

results-dir

分析レポートを保存するディレクトリ。オプション。

${{ runner.temp }}/qodana/results

upload-result

Qodana の結果 (SARIF、その他のアーティファクト、ログ) をアーティファクトとしてジョブにアップロードします。オプション。

false

artifact-name

結果のアップロードに使用される Qodana 結果アーティファクト名を指定します。オプション。

qodana-report

cache-dir

Qodana キャッシュを保存するディレクトリ。オプション。

${{ runner.temp }}/qodana/caches

use-caches

Qodana 解析には GitHub キャッシュ(英語)を使用します。(任意)

true

primary-cache-key

プライマリキャッシュキー(英語)を設定します。見つからない場合は、代わりに additional-cache-key のキャッシュが使用されます。オプション。

qodana-2025.2-${{ github.ref }}-${{ github.sha }}

additional-cache-key

追加のキャッシュキー(英語)を設定します。オプション。

qodana-2025.2-${{ github.ref }}

cache-default-branch-only

デフォルトのブランチのみのキャッシュをアップロードします。オプション。

false

use-annotations

アノテーションを使用して、GitHub ユーザーインターフェースで結果をマークします。オプション。

true

pr-mode

プルリクエストで変更されたファイルのみを分析します。オプション。

true

post-pr-comment

Qodana 結果の概要を含むコメントをプルリクエストに投稿します。オプション。

true

github-token

リポジトリにアクセスするための GitHub トークン: アノテーションやコメントを投稿します。オプション。

${{ github.token }}

push-fixes

Qodana 修正をリポジトリにプッシュします。nonebranch から現在のブランチ、または pull-request にすることができます。オプション。

none

2026 年 6 月 12 日

関連ページ:

プロジェクトトークン

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

クイックスタート

現行バージョンの Qodana(2026.1)では、様々なプログラミング言語や技術を用いたソフトウェアを解析できます。また、利用可能な機能を使って、デフォルトの Qodana 設定を拡張することも可能です。例として、このセクションでは、以下を使用して Qodana の操作をすぐに開始できる方法について説明します。JetBrains IDE、コマンドラインインターフェース、GitHub アクション、Gradle プラグインとして、前提条件:Qodana Cloud でプロジェクトを設定する Qod...

プロジェクト

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

分析レポート

Qodana を使用すると、ローカルまたは Qodana クラウドでインタラクティブかつユーザーフレンドリーな形式で分析レポートを確認できます。レポート UI の概要:各レポートには次のタブが含まれています。現在の問題点は、最新のインスペクション中に Qodana が検出した問題を明らかにします。基本的な問題点は、ベースラインとしてマークされ、それ以降修正されていない問題点を一覧にしたものです。インスペクションを使用すると、Qodana を将来使用するために設定できます。

ベースライン

ベースラインとは、特定の Git ブランチに対する特定の Qodana 分析で取得されたコードベースの問題点のスナップショットであり、ファイルに格納されています。ベースライン機能を使用すると、現在のコードとベースラインの状態を比較し、新規の問題、変更されていない問題、解決済みの問題を確認できます。たとえば、ブランチのベースラインを設定・更新することで、プルリクエストやマージリクエストのマージ後の変更を監視できます。必要に応じて、新しいファイルを生成し、Qodana の実行中に使用することで、ベー...

.NET

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