Qodana 2026.1 ヘルプ

Azure パイプライン

Qodana スキャンは、Qodana Azure パイプライン拡張(英語)内にパックされた Azure パイプラインタスクであり、Qodana を使用して既存のパイプライン内のコードを分析します。

始める前に

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

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

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

    プロジェクトトークンを取得したら、パイプライン UI に移動し、QODANA_TOKEN シークレット変数を作成し、プロジェクトトークンをその値として保存します。

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

  2. Azure DevOps 組織に、Qodana Azure パイプライン拡張(英語)をインストールします。

Azure Repos、Git 以外の VCS を使用している場合は、Qodana ステップの前に、パイプラインで Git 資格情報構成の追加ステップが必要になることがあります。例: GitHub を使用している場合は、次の手順を使用できます。

- script: | git remote set-url origin https://$(GITHUB_TOKEN)@github.com/your-org/your-repo displayName: 'Set git permissions'

引数表記

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 形式のファイルまたはクラシックインターフェースを使用して設定できます。すべての設定オプションの詳細な説明は、構成の章に記載されています。

以下は、このセクションの以降の章で詳しく説明する基本的な構成例です。

# Start with a minimal pipeline that you can customize to build and deploy your code. # Add steps that build, run tests, deploy, and more: # https://aka.ms/yaml   trigger: - main   pool: vmImage: ubuntu-latest   steps: - checkout: self persistCredentials: true - task: Cache@2 inputs: key: '"$(Build.Repository.Name)" | "$(Build.SourceBranchName)" | "$(Build.SourceVersion)"' path: '$(Agent.TempDirectory)/qodana/cache' restoreKeys: | "$(Build.Repository.Name)" | "$(Build.SourceBranchName)" "$(Build.Repository.Name)" - task: QodanaScan@2026 inputs: uploadResult: true env: QODANA_TOKEN: $(QODANA_TOKEN)

ここで、persistCredentials: true 行を使用すると、プルリクエストの分析クイックフィックスの実行などの Git 関連のアクションの資格情報を再利用できます。

Cache タスクを使用すると、キャッシュを使用してプロジェクトをより速く開くことができます。

uploadResult: true 行は、Qodana に qodana-report アーティファクトを生成するよう指示します。Qodana を実行した後、log ディレクトリに移動してログを確認します。

QODANA_TOKEN 変数は、Qodana Cloud によって生成されたプロジェクトトークンを参照します。

Qodana Scan タスクをパイプライン構成に追加し、以下のように構成します。

The Qodana Scan task UI config

プルリクエスト分析中にシステムトークンにアクセスするには、MicrosoftWeb サイトの指示に従ってください。

入力引数の使用

# Start with a minimal pipeline that you can customize to build and deploy your code. # Add steps that build, run tests, deploy, and more: # https://aka.ms/yaml   trigger: - main   pool: vmImage: ubuntu-latest   steps: - checkout: self persistCredentials: true - task: Cache@2 inputs: key: '"$(Build.Repository.Name)" | "$(Build.SourceBranchName)" | "$(Build.SourceVersion)"' path: '$(Agent.TempDirectory)/qodana/cache' restoreKeys: | "$(Build.Repository.Name)" | "$(Build.SourceBranchName)" "$(Build.Repository.Name)" - task: QodanaScan@2026 inputs: uploadResult: true args: -e AUSERNAME=$(AUSERNAME) -e APASSWORD=$(APASSWORD) env: QODANA_TOKEN: $(QODANA_TOKEN)

ここで、-e オプションは入力引数を追加します。引数に値がある場合は、-i,frontend,-e,param=value のような表記法を使用できます。

Qodana CLI 引数フィールドを使用して、-i,frontend,-e,param=value 表記法で入力引数を指定します。

プルリクエスト

プルリクエストに対して Qodana 分析を有効にする方法は次のとおりです。

pr: branches: include: - '*'   pool: vmImage: ubuntu-latest   steps: - checkout: self fetchDepth: 0 persistCredentials: true - task: QodanaScan@2026 env: QODANA_TOKEN: $(QODANA_TOKEN) inputs: prMode: true

ここで、QODANA_TOKEN は Qodana Cloud によって生成されたプロジェクトトークンを指します。

クラシックインターフェースエディターで、PR モードオプションをオンにします。

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

以下に示すように、品質ゲートベースライン機能を構成することもできます。

この構成では、args: ブロックは、コンマ区切りのオプションを使用して品質ゲートとベースライン機能を構成します。

# Start with a minimal pipeline that you can customize to build and deploy your code. # Add steps that build, run tests, deploy, and more: # https://aka.ms/yaml   trigger: - main   pool: vmImage: ubuntu-latest   steps: - checkout: self persistCredentials: true - task: Cache@2 key: '"$(Build.Repository.Name)" | "$(Build.SourceBranchName)" | "$(Build.SourceVersion)"' path: '$(Agent.TempDirectory)/qodana/cache' restoreKeys: | "$(Build.Repository.Name)" | "$(Build.SourceBranchName)" "$(Build.Repository.Name)" - task: QodanaScan@2026 env: QODANA_TOKEN: $(QODANA_TOKEN) inputs: args: '--baseline qodana.sarif.json --fail-threshold 5'

Qodana CLI 引数フィールドを使用して、コンマ区切りのオプションを使用してベースラインゲートと品質ゲートの機能を設定します。例:

The Qodana Scan task UI config for baseline and quality gate

クイックフィックス

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

    # Possible values: --apply-fixes | --cleanup args: --apply-fixes

    クイックフィックス機能を構成するには、Qodana CLI 引数フィールドを使用します。例:

    The Qodana Scan task UI config for Quick-Fixes
    # Possible values: apply | cleanup fixesStrategy: apply
  2. ニーズに応じて、pushFixes プロパティを構成します。

    この構成を使用して、修正を加えた新しいブランチと、元のブランチへのプルリクエストを作成します。

    pushFixes: pull-request

    プッシュクイックフィックスフィールドを使用して、クイックフィックス機能を設定します。

    The Qodana Scan task UI config for Quick-Fixes

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

    pushFixes: branch

    プッシュクイックフィックスフィールドを使用して、クイックフィックス機能を設定します。

    The Qodana Scan task UI config for Quick-Fixes
  3. ジョブの権限を設定します。Azure Pipelines UI で、Qodana for Azure Pipelines Build Service ユーザーに対して以下のリポジトリ権限を有効にします。

    • Contribute

    • Bypass policies when pushing はクイックフィックスのプッシュに失敗する可能性がある

    • pull-request 設定を使用する場合は Create branch

SARIF SAST スキャンタブ

Azure DevOps UI のスキャンタブに Qodana レポートの概要を表示するには、Microsoft DevLabs の SARIF SAST スキャンタブ(英語)拡張機能をインストールし、パイプライン構成の uploadSarif/SARIF をアップロード オプションtrue に設定します。

Azure Scans Tab

構成

この表には、パイプライン構成の inputs ブロックに対応する構成オプションと、クラシックインターフェースの類似物のリストが含まれています。

YAML オプション

クラシックインターフェースの UI 要素

説明

デフォルト値

args

Qodana CLI 引数

追加の Qodana CLI scan コマンド(英語)引数は、引数をコンマ (,) で分割します (例: -i,frontend)。

引数に値がある場合は、= (例: -e,param=value)を使用して渡すことができます。

オプション。

なし

resultsDir

結果ディレクトリ

解析結果を保存するディレクトリ。オプション。

$(Agent.TempDirectory)/qodana/results

uploadResult

アップロード結果

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

false

uploadSarif

SARIF をアップロード

qodana.sarif.json を qodana.sarif アーティファクトとしてジョブにアップロードします。オプション。

true

artifactName

アーティファクトの名前

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

qodana-report

cacheDir

キャッシュディレクトリ

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

$(Agent.TempDirectory)/qodana/cache

useNightly

不安定な Qodana CLI を毎晩使用する

Qodana CLI の不安定なバージョンの使用を有効にします。オプション。

false

prMode

PR モード

プルリクエスト分析を有効にする

true

postPrComment

PR コメントを投稿

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

true

pushFixes

プッシュクイックフィックス

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

none

commitMessage

コミットメッセージ:

クイックフィックスが適用されたときに使用されるコミットメッセージ

🤖 Apply Quick-Fixes by Qodana

2026 年 5 月 18 日

関連ページ:

プロジェクトトークン

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

クイックスタート

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

プロジェクト

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

ベースライン

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