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 アプリをインストールするようにという通知が届きます。

この GitHub アプリケーションは、以下のデータをリポジトリに一度だけプッシュします。
GitHub アクション設定ファイル
qodana.yamlファイルコントリビューターカウント用のデプロイキー
リポジトリへのアクセスを提供するための Qodana アクセストークンシークレット
分析対象のリポジトリへのアクセス権がない場合は、必要なアクセス権を申請し、承認されるまでお待ちください。それ以外の場合は、プロジェクトで 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 の将来のバージョンで削除されます。
基本構成
GitHub UI のタブで、
QODANA_TOKEN暗号化シークレット(英語)を作成し、プロジェクトトークンをその値として保存します。https://qodana.cloud/以外の Qodana Cloud インスタンスを使用している場合は、QODANA_ENDPOINT環境変数を宣言して上書きしてください。GitHub UI のタブで、新しいワークフローを設定し、
.github/workflows/code_quality.ymlファイルを作成します。mainとmasterブランチ、およびリリースブランチとリポジトリに届くプルリクエストを分析するには、次のワークフロー構成を.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 によって検出された問題を自動的に修正し、変更をリポジトリにプッシュするには、以下の手順に従います。
次の 2 つの構成方法のいずれかを使用してクイックフィックス戦略を選択します。
# Possible values: apply | cleanup fixesStrategy: apply# Possible values: --apply-fixes | --cleanup args: --apply-fixesニーズに応じて、ワークフロー構成の
push-fixesオプションを構成します。この構成を保存すると、修正を加えた新しいブランチと、元のブランチへのプルリクエストが作成されます。
push-fixes: pull-requestまた、プルリクエストを作成および承認する(英語)には、GitHub アクションを有効にします。
この構成を保存して、元のブランチに修正をプッシュします。
push-fixes: branch pr-mode: falseジョブに適切な権限を設定します。例:
permissions: contents: write pull-requests: write checks: write
これはすべてのオプションを含む構成スニペットの例です。
GitHub コードスキャン
Qodana を使用して、プロジェクト用に GitHub コードスキャン(英語)を設定できます。これを行うには、code_quality.yml ワークフローファイルの Qodana スキャンの基本構成のすぐ下に次の行を追加します。
このサンプルは、SARIF 形式の Qodana レポートを GitHub にアップロードするために codeql-action を呼び出し、sarif_file キーを使用してレポートファイルを指定します。
プルリクエスト
Qodana ではプルリクエストの分析がデフォルトで有効になっています。詳細は pr-mode オプションの説明を参照してください。2 つのコミット間のコードを分析する方法については、2 つのコミット間の変更を分析する章を参照してください。
プルリクエストのクオリティゲート
品質ゲートが失敗した場合にプルリクエストのマージをブロックするように GitHub を設定できます。これを行うには、次のようにブランチ保護ルール(英語)を作成します。
Qodana スキャンアクションを呼び出す新しい GitHub ワークフローを作成するか、既存の GitHub ワークフローを開きます。
mainブランチをターゲットとするpull_requestイベントで実行されるようにワークフローを設定します。on: pull_request: branches: - mainmainの代わりに、ここでブランチを指定できます。Qodana アクション
fail-thresholdオプションの問題の数 (整数) を設定します。リポジトリ名にあるをクリックします。
左側のメニューでをクリックします。
ブランチ保護ルールセクションで、をクリックします。
mainをに追加します。を選択します。
Qodanaステータスチェックを検索して確認してください。をクリックします。
ベースラインと品質ゲート
ベースライン
プロジェクトのベースラインを確立するには、次の手順に従います。
プロジェクト上で Qodana をローカルに実行します。
cd project qodana scan \ -e QODANA_TOKEN="<cloud-project-token>"Qodana Cloud で、検出された問題をベースラインに追加し、
qodana.sarif.jsonファイルをダウンロードします。qodana.sarif.jsonファイルを GitHub のプロジェクトルートにアップロードします。--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 オプションを指定します。
複合構成
ベースライン機能と品質ゲート機能を組み合わせることで、技術的負債を管理し、新しい問題のみを報告し、問題が多すぎるプルリクエストをブロックすることができます。この構成を使用すると、ベースラインを超えたプルリクエストで新しい問題のみを検出できるようになります。
同時に、--fail-threshold 制限を超える新しい問題を含むプルリクエストはブロックされ、ワークフローは失敗します。
特定のソリューションを分析する
特定のソリューションを使用して .NET プロジェクトを分析するには、プロジェクトルートを基準としたソリューションファイルへのパスを指定します。例:
Qodana バッジを取得する
リポジトリに Qodana ワークフローバッジを設定するには、次の手順に従います。
以前に構成したワークフロー実行に移動します。
ワークフローページで、を選択します。

Markdown テキストをリポジトリの README ファイルにコピーします。
Qodana ログ
.github/workflows/code_quality.yml ファイルで、upload-result を true に設定します。
この設定で Qodana を実行し、qodana-report アーティファクトを生成します。ログを確認するには、log ディレクトリに移動してください。
構成
ほとんどの場合、args 以外のオプションは必要ありません。1 つのワークフローで複数の Qodana スキャンジョブを構成する場合、他のすべてのオプションが役に立ちます。
with (英語) を使用してアクションパラメーターを定義します。
名前 | 説明 | デフォルト値 |
|---|---|---|
| 追加の Qodana CLI | - |
| 分析レポートを保存するディレクトリ。オプション。 |
|
| Qodana の結果 (SARIF、その他のアーティファクト、ログ) をアーティファクトとしてジョブにアップロードします。オプション。 |
|
| 結果のアップロードに使用される Qodana 結果アーティファクト名を指定します。オプション。 |
|
| Qodana キャッシュを保存するディレクトリ。オプション。 |
|
| Qodana 解析には GitHub キャッシュ(英語)を使用します。(任意) |
|
| プライマリキャッシュキー(英語)を設定します。見つからない場合は、代わりに |
|
| 追加のキャッシュキー(英語)を設定します。オプション。 |
|
| デフォルトのブランチのみのキャッシュをアップロードします。オプション。 |
|
| アノテーションを使用して、GitHub ユーザーインターフェースで結果をマークします。オプション。 |
|
| プルリクエストで変更されたファイルのみを分析します。オプション。 |
|
| Qodana 結果の概要を含むコメントをプルリクエストに投稿します。オプション。 |
|
| リポジトリにアクセスするための GitHub トークン: アノテーションやコメントを投稿します。オプション。 |
|
| Qodana 修正をリポジトリにプッシュします。 |
|
関連ページ:
プロジェクトトークン
一般に利用可能な有料リンターでは、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...