Azure パイプライン
Qodana スキャンは、Qodana Azure パイプライン拡張(英語)内にパックされた Azure パイプラインタスクであり、Qodana を使用して既存のパイプライン内のコードを分析します。
始める前に
このセクションのすべての構成例では、Qodana Cloud によって生成されたプロジェクトトークンを使用します。このトークンは、有料の Qodana リンターでは必須であり、コミュニティリンターで使用する場合はオプションです。Qodana Cloud UI でプロジェクトトークンを生成する方法については、次のセクションを参照してください。
プロジェクト設定セクションでは、Qodana Cloud を初めて使用する際にプロジェクトトークンを生成する方法について説明します。
プロジェクトを管理するセクションでは、既存の Qodana Cloud 組織内でプロジェクトトークンを作成する方法について説明します。
プロジェクトトークンを取得したら、パイプライン UI に移動し、
QODANA_TOKENシークレット変数を作成し、プロジェクトトークンをその値として保存します。https://qodana.cloud/以外の Qodana Cloud インスタンスを使用している場合は、QODANA_ENDPOINT環境変数を設定して上書きします。Azure DevOps 組織に、Qodana Azure パイプライン拡張(英語)をインストールします。
Azure Repos、Git 以外の VCS を使用している場合は、Qodana ステップの前に、パイプラインで Git 資格情報構成の追加ステップが必要になることがあります。例: GitHub を使用している場合は、次の手順を使用できます。
引数表記
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 の将来のバージョンで削除されます。
基本構成
Qodana スキャンタスクは、どの OS および x86_64/arm64 CPU でも実行できますが、エージェントに Docker がインストールされている必要があります。また、ほとんどの Qodana Docker イメージは Linux ベースであるため、Docker デーモンは Linux コンテナーの実行をサポートする必要があります。
このタスクは、YAML 形式のファイルまたはクラシックインターフェースを使用して設定できます。すべての設定オプションの詳細な説明は、構成の章に記載されています。
以下は、このセクションの以降の章で詳しく説明する基本的な構成例です。
ここで、persistCredentials: true 行を使用すると、プルリクエストの分析やクイックフィックスの実行などの Git 関連のアクションの資格情報を再利用できます。
Cache タスクを使用すると、キャッシュを使用してプロジェクトをより速く開くことができます。
uploadResult: true 行は、Qodana に qodana-report アーティファクトを生成するよう指示します。Qodana を実行した後、log ディレクトリに移動してログを確認します。
QODANA_TOKEN 変数は、Qodana Cloud によって生成されたプロジェクトトークンを参照します。
入力引数の使用
ここで、-e オプションは入力引数を追加します。引数に値がある場合は、-i,frontend,-e,param=value のような表記法を使用できます。
フィールドを使用して、-i,frontend,-e,param=value 表記法で入力引数を指定します。
プルリクエスト
プルリクエストに対して Qodana 分析を有効にする方法は次のとおりです。
ここで、QODANA_TOKEN は Qodana Cloud によって生成されたプロジェクトトークンを指します。
クラシックインターフェースエディターで、オプションをオンにします。
品質ゲートとベースライン
以下に示すように、品質ゲートとベースライン機能を構成することもできます。
この構成では、args: ブロックは、コンマ区切りのオプションを使用して品質ゲートとベースライン機能を構成します。
フィールドを使用して、コンマ区切りのオプションを使用してベースラインゲートと品質ゲートの機能を設定します。例:

クイックフィックス
次のいずれかの構成方法を使用してクイックフィックス戦略を構成します。
# Possible values: --apply-fixes | --cleanup args: --apply-fixesクイックフィックス機能を構成するには、フィールドを使用します。例:
# Possible values: apply | cleanup fixesStrategy: applyニーズに応じて、
pushFixesプロパティを構成します。この構成を使用して、修正を加えた新しいブランチと、元のブランチへのプルリクエストを作成します。
pushFixes: pull-requestフィールドを使用して、クイックフィックス機能を設定します。

この構成を使用して、元のブランチに修正をプッシュします。
pushFixes: branchフィールドを使用して、クイックフィックス機能を設定します。

ジョブの権限を設定します。Azure Pipelines UI で、
Qodana for Azure Pipelines Build Serviceユーザーに対して以下のリポジトリ権限を有効にします。ContributeBypass policies when pushingはクイックフィックスのプッシュに失敗する可能性があるpull-request設定を使用する場合はCreate branch
SARIF SAST スキャンタブ
Azure DevOps UI のスキャンタブに Qodana レポートの概要を表示するには、Microsoft DevLabs の SARIF SAST スキャンタブ(英語)拡張機能をインストールし、パイプライン構成の uploadSarif/SARIF をアップロード オプションを true に設定します。

構成
この表には、パイプライン構成の inputs ブロックに対応する構成オプションと、クラシックインターフェースの類似物のリストが含まれています。
YAML オプション | クラシックインターフェースの UI 要素 | 説明 | デフォルト値 |
|---|---|---|---|
| Qodana CLI 引数 | 追加の Qodana CLI 引数に値がある場合は、 オプション。 | なし |
| 結果ディレクトリ | 解析結果を保存するディレクトリ。オプション。 |
|
| アップロード結果 | Qodana の結果をアーティファクトとしてジョブにアップロードします。オプション。 |
|
| SARIF をアップロード | qodana.sarif.json を qodana.sarif アーティファクトとしてジョブにアップロードします。オプション。 |
|
| アーティファクトの名前 | 結果のアップロードに使用する Qodana 結果アーティファクト名を指定します。オプション。 |
|
| キャッシュディレクトリ | Qodana キャッシュを保存するディレクトリ。オプション。 |
|
| 不安定な Qodana CLI を毎晩使用する | Qodana CLI の不安定なバージョンの使用を有効にします。オプション。 |
|
| PR モード | プルリクエスト分析を有効にする |
|
| PR コメントを投稿 | Qodana 結果の概要を含むコメントをプルリクエストに投稿します。オプション。 |
|
| プッシュクイックフィックス | Qodana 修正をリポジトリにプッシュします。 |
|
| コミットメッセージ: | クイックフィックスが適用されたときに使用されるコミットメッセージ |
|
関連ページ:
プロジェクトトークン
一般に利用可能な有料リンターでは、Qodana の実行中に変数を使用してプロジェクトトークンを提供する必要があります。例:qodana scan \ -e QODANA_TOKEN=
クイックスタート
現行バージョンの Qodana(2026.1)では、様々なプログラミング言語や技術を用いたソフトウェアを解析できます。また、利用可能な機能を使って、デフォルトの Qodana 設定を拡張することも可能です。例として、このセクションでは、以下を使用して Qodana の操作をすぐに開始できる方法について説明します。JetBrains IDE、コマンドラインインターフェース、GitHub アクション、Gradle プラグインとして、前提条件:Qodana Cloud でプロジェクトを設定する Qod...
プロジェクト
プロジェクトは Qodana レポートを蓄積します。各プロジェクトはプロジェクトトークンによって一意に識別されます。プロジェクトの作成:新しい組織を作成する際、Qodana Cloud は最初のプロジェクトの設定を支援するため、これらの手順は追加のプロジェクトを作成する場合にのみ関連します。チームページで、ボタンをクリックします。プロジェクトのセットアップ段階を完了します。この段階の詳細については、前提条件セクションを参照してください。プロジェクトを管理する:プロジェクトが作成された後、その...
ベースライン
ベースラインは、特定の Git ブランチの特定の Qodana 実行時に取得され、ファイルに含まれるコードベースの問題のスナップショットです。ベースライン機能を使用すると、現在のコードとベースラインの状態を比較し、新規の問題、変更されていない問題、解決済みの問題を確認できます。たとえば、ブランチのベースラインを設定・更新することで、プルリクエストやマージリクエストのマージ後の変更を監視できます。必要に応じて、新しいファイルを生成し、Qodana の実行中に使用することで、ベースラインを更新できま...
