Qodana 2024.1 ヘルプ

フォワードレポート

このセクションでは、このソフトウェアを使用して Qodana レポートを Qodana クラウドに転送する方法について説明します。

これらすべての場合において、このドキュメントのプロジェクトを管理するセクションに示されているように、一意の Qodana クラウドプロジェクトトークンを生成する必要があります。このトークンは、QODANA_TOKEN 変数を使用して呼び出されます。

Docker および Qodana CLI

Docker または Qodana CLI を使用して、Qodana レポートを Qodana クラウドに転送できます。

QODANA_TOKEN の他に、いくつかの追加変数を指定する必要があります。

変数名

説明

QODANA_REMOTE_URL

プロジェクト URL

QODANA_BRANCH

分析されたブランチの名前

QODANA_REVISION

コミットハッシュ

QODANA_JOB_URL

ジョブ URL

これは、これらすべての変数を使用するコマンドです。

docker run \ -v $(pwd):/data/project/ \ -e QODANA_TOKEN="<qodana-cloud-token>" \ -e QODANA_REMOTE_URL="<project-remote-url>" \ -e QODANA_BRANCH="<project-branch-name>" \ -e QODANA_REVISION="<commit-hash>" \ -e QODANA_JOB_URL="<job-url>" \ jetbrains/qodana-<linter>
qodana scan \ -e QODANA_TOKEN="<qodana-cloud-token>"

これらのツールを適用すると、必要なすべての変数の値を手動で指定する必要があることになりますが、これは不便です。幸いなことに、Qodana クラウドに必要なすべてのデータを提供する、または Qodana クラウドに必要なデータを参照する事前定義された環境変数を含むさまざまな CI/CD ソリューションを使用することで、この問題を克服できます。

Azure パイプライン

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

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

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

Qodana Cloud に必要な残りの変数と値は、QodanaScan によって自動的に生成されます。

Qodana と Azure パイプラインの統合の詳細については、このドキュメントの Azure パイプラインセクションを参照してください。

Bitbucket クラウド

以下は、Bitbucket クラウドパイプラインで Qodana を実行できるようにする bitbucket-pipelines.yml ファイルの基本構成スニペットです。

image: atlassian/default-image:4 pipelines: branches: main: - step: name: Qodana caches: - qodana image: jetbrains/qodana-<linter> # Specify a Qodana linter here. For example, jetbrains/qodana-jvm:latest script: - export QODANA_TOKEN=$QODANA_TOKEN # Export the environment variable - qodana --results-dir=$BITBUCKET_CLONE_DIR/.qodana --report-dir=$BITBUCKET_CLONE_DIR/.qodana/report --cache-dir=$BITBUCKET_CLONE_DIR/.qodana/cache artifacts: - .qodana/report definitions: caches: qodana: .qodana/cache

ここで、branches ブロックはどのブランチをインスペクションするかを指定します。

image ブロックは、パイプラインで呼び出される Qodana リンターを指定します。

script ブロックには、Qodana Cloud に必要なプロジェクトトークンを指定し、$QODANA_TOKEN 変数(英語)として保存される - export QODANA_TOKEN=$QODANA_TOKEN 行が含まれています。このブロックの - qodana ... 行は、パイプラインの実行中に使用するディレクトリを Bitbucket に指示し、Qodana オプションを含めることもできます。

Qodana と Bitbucket Cloud の統合の詳細については、このドキュメントの Bitbucket クラウドセクションを参照してください。

CircleCI

インスペクションの結果を Qodana クラウドに転送するには、QODANA_TOKEN プロジェクト変数(英語)を作成し、プロジェクトトークンをその値として保存するだけです。

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

Qodana と CircleCI の統合の詳細については、このドキュメントの CircleCI セクションを参照してください。

GitHub アクション

  1. GitHub UI の設定タブで、QODANA_TOKEN 暗号化シークレット(英語)を作成し、プロジェクトトークンをその値として保存します。

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

Qodana と GitHub の統合の詳細については、このドキュメントの GitHub アクションセクションを参照してください。

GitLab CI/CD

1. $qodana_token 変数(英語)を作成し、プロジェクトトークンをその値として保存します。

2. GitLab でホストされているプロジェクトのルートフォルダーに .gitlab-ci.yml ファイルを作成し、この構成をそのファイルに保存します。

qodana: image: name: jetbrains/qodana-<linter> entrypoint: [""] variables: QODANA_TOKEN: $qodana_token script: - qodana artifacts: paths: - qodana

3. この構成の image:name セクションで、Qodana Docker イメージの名前を指定します。

Qodana と GitLab CI/CD の統合の詳細については、このドキュメントの GitLab CI/CD セクションを参照してください。

Jenkins

1. Jenkins UI で、Jenkins ドキュメントの新しいグローバル認証情報の追加(英語)セクションに従って、qodana-token 名で資格情報を作成し、プロジェクトトークンをこれらの資格情報の値として保存します。

2. プロジェクトのルートディレクトリに Jenkinsfile ファイルを作成し、この構成をそのファイルに保存します。

pipeline { environment { QODANA_TOKEN=credentials('qodana-token') } agent { docker { args ''' -v "${WORKSPACE}":/data/project --entrypoint="" ''' image 'jetbrains/qodana-<linter>' } } stages { stage('Qodana') { steps { sh '''qodana''' } } } }

3. このスクリプトの image セクションで、Qodana Docker イメージ名を指定します。

Qodana と Jenkins の統合の詳細については、このドキュメントの Jenkins セクションを参照してください。

Space Automation

1. JetBrains Space UI で、qodana-token という名前のシークレットを作成し、生成されたプロジェクトトークンをその値として保存します。

2. スペースベースのプロジェクトのルートディレクトリに .space.kts ファイルを作成し、この構成スクリプトをそのファイルに保存します。

job("Qodana") { container("jetbrains/qodana-<linter>") { env["QODANA_TOKEN"] = Secrets("qodana-token") shellScript { content = """qodana""" } } }

3. このスクリプトの container セクションで、Qodana Docker イメージ名を指定します。

Qodana と Space Automation の統合の詳細については、このドキュメントの Space Automation セクションを参照してください。

TeamCity

1. TeamCity UI で、Qodana を実行するビルドステップを開きます。

2. クラウドトークンフィールドに Qodana クラウドトークン値を入力します。

Configuring fields in TeamCity

Qodana と TeamCity の統合の詳細については、このドキュメントの TeamCity セクションを参照してください。

関連ページ:

プロジェクト

プロジェクトは、Qodana レポートを蓄積します。各プロジェクトは、プロジェクトトークンによって一意に識別されます。このトークンは、Qodana レポートのアップロードに使用されます。プロジェクトの作成:オンボーディング段階では、Qodana Cloud がすでに最初のプロジェクトの作成を支援しているため、これらの手順は追加のプロジェクトを作成する場合にのみ適用されます。チームページで、ボタンをクリックします。以下で説明するウィザードの手順に従います。Qodana Cloud からアクセスでき...

プロジェクトトークン

一般に利用可能な有料リンターでは、Qodana の実行中に変数を使用してプロジェクトトークンを提供する必要があります。例:qodana scan \ -e QODANA_TOKEN="<qodana-cloud-token>"docker run \ -v $(pwd):/data/project/ \ -e QODANA_TOKEN="<qodana-cloud-token>" \ jetbrains/qodana-<linter> 変数には、Qodana リ...

GitLab CI/CD

GitLab CI/CD は、さまざまな CI/CD 手法を使用するソフトウェア開発用のツールです。このセクションでは、GitLab CI/CD パイプライン内で QodanaDocker イメージを実行する方法について説明し、次のケースについて説明します。特定のブランチおよびマージリクエストのインスペクション、インスペクションレポートを Qodana クラウドに転送する、GitLab CI/CD ユーザーインターフェースでの Qodana レポートの公開、品質ゲートとベースライン機能の使用、コード品...

TeamCity

Qodana は、TeamCity でビルドランナーとして使用できます。使用を開始するには、次の前提条件を満たす必要があります。TeamCity をプロジェクトのビルドサーバーとして使用します。そうでない場合は、TeamCity のドキュメントでその方法を学習してください。プロジェクト言語は、完全にサポートされているテクノロジのリストに含まれています。独自の TeamCity エージェントを使用する場合は、Docker がエージェントマシンにインストールされており、TeamCity を実行してい...

レポートの概要

プロジェクトレポートからの情報が集約され、このイメージでマークされているいくつかのセクションに表示されます。各セクションの説明は次のとおりです。1. プロジェクト名、ブランチ名、最後のインスペクション実行からの経過時間、検出された問題の数とその重大度。2. コードカバレッジとライセンス監査機能を使用した分析結果。3. コンテキストメニューを使用すると、次のことが可能になります。VCS の HTTPS または SSH URL を構成する、プロジェクトの名前を変更する、プロジェクトトークンをコピーまた...