Qodana 2024.1 ヘルプ

Azure パイプライン

Qodana スキャンは、Qodana でコードをスキャンするために Qodana Azure パイプライン拡張(英語)内にパックされた Azure パイプラインタスクです。

使用箇所

基本構成

Qodana Azure パイプライン拡張(英語)を組織にインストールした後、Qodana スキャンタスクを構成するには、azure-pipelines.yml ファイルを編集します。

# 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: - task: Cache@2 # Not required, but Qodana will open projects with cache faster. 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@2024

このジョブをトリガーするかどうかは、Azure Pipelines で使用しているリポジトリの種類によって異なります。

このタスクは任意の OS および x86_64/arm64 CPU で実行できますが、エージェントに Docker がインストールされている必要があります。また、Qodana Docker イメージのほとんどは Linux ベースであるため、docker デーモンは Linux コンテナーを実行できる必要があります。

Qodana クラウド

結果を Qodana クラウドに送信するには、ビルド構成で QODANA_TOKEN 環境変数を指定するだけです。

  1. Azure Pipelines UI で、QODANA_TOKEN シークレット変数を作成し、プロジェクトトークンをその値として保存します。

  2. Azure パイプラインファイルで、QODANA_TOKEN 変数を QodanaScan タスクの env セクションに追加します。

- task: QodanaScan@2024 env: QODANA_TOKEN: $(QODANA_TOKEN)

トークンが分析用に設定されると、すべての Qodana スキャンジョブの結果が Qodana クラウドプロジェクトにアップロードされます。

Qodana Cloud

SARIF SAST スキャンタブ

Azure DevOps UI のスキャンタブに Qodana レポートの概要を表示するには、Microsoft DevLabs の SARIF SAST スキャンタブ(英語)拡張機能をインストールします。

Azure Scans Tab

構成

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

名前

説明

デフォルト値

args

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

-

resultsDir

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

$(Agent.TempDirectory)/qodana/results

uploadResult

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

false

uploadSarif

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

true

artifactName

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

qodana-report

cacheDir

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

$(Agent.TempDirectory)/qodana/cache