Qodana 2024.1 ヘルプ

オープンソースプロジェクトをインスペクションする

このセクションでは、Qodana を使用してオープンソースプロジェクトをインスペクションする方法と、Qodana クラウドを使用して、便利な形式でオープンソースプロジェクト向けに Qodana インスペクションの結果を無料で表示する方法について説明します。

始める前に

ニーズに応じて、次の方法を知っておくと役立つ場合があります。

Qodana クラウドの準備

Qodana Cloud アカウントで別のチームとプロジェクトを作成する予定がある場合は、以下の手順に従ってください。

  1. Qodana クラウド UI で、組織に移動します。

    Creating an organization
  2. 組織内でチームを作成します。

  3. チームでプロジェクトを作成します。

  4. プロジェクトで、トークンの生成をクリックしてプロジェクトトークンを生成します。

    Generate the project token

プロジェクトをインスペクションする

コードを分析するセクションで説明されている方法を使用して、コードベースをインスペクションできます。

Qodana ライセンスに応じて、次のようなさまざまな機能を構成できます。

その他の利用可能な機能を説明するセクションへのリンクは次のとおりです。

インスペクションの構成

デフォルトでは、Qodana は qodana.starter プロファイルを使用してコードをインスペクションします。プロジェクトルートに含まれる qodana.yaml ファイルで qodana.recommended プロファイルを指定することで、追加のインスペクションを使用できます。

profile: name: qodana.recommended

プロジェクトの全体的な構成を確認するには、qodana.sanity プロファイルを使用できます。

profile: name: qodana.sanity

ライセンス監査を構成する

ライセンス監査を使用すると、依存関係ライセンスとプロジェクトライセンスの互換性を追跡できます。

ライセンス監査を有効にするには、プロジェクトルートにある qodana.yaml ファイルの include オプションを使用します。

include: - name: CheckDependencyLicenses

ベースラインの構成

ベースラインを使用すると、後続の分析の基礎として使用されるプロジェクトのスナップショットを作成できます。有効にするには、インスペクションを選択し、qodana.sarif.json ファイルをダウンロードします。

--baseline オプションを使用すると、ベースラインを有効にして Qodana を実行できます。

--baseline <path-to-qodana.sarif.json>

クオリティゲートを設定する

クオリティゲートを使用すると、CI/CD パイプライン障害の原因となる問題の最終的な数を構成できます。

構成が完了すると、クオリティゲートにより CI/CD システムが次のようになります。

  • プロジェクトに含まれる問題の数が設定されたしきい値を下回っている場合にのみプロジェクトをビルドします

  • 設定されたしきい値を下回る問題を含むプルリクエストのみを受け入れる

品質ゲートを有効にするには、fail-threshold <number> オプションを使用できます。

Qodana レポートの種類

Qodana は、次のタイプのインスペクションレポートを生成できます。

  • プロジェクトの特定のブランチに関するインスペクション結果を含むレポート

  • GitHub アクションおよび GitLab CI/CD によって生成されたプルまたはマージリクエストのインスペクションレポート

GitHub アクション

この例を使用すると、次の目的で GitHub を構成できます。

  • インスペクション結果を Qodana クラウドに転送する

  • クオリティゲートが失敗した場合にプルリクエストのマージをブロックする

次の手順を実行します:

  1. QODANA_TOKEN 名で暗号化されたシークレット(英語)を作成します。

  2. Qodana スキャンアクションを呼び出す新しい GitHub ワークフローを作成するか、既存の GitHub ワークフローを開きます。

  3. main ブランチを対象とする pull_request イベントで実行されるようにワークフローを設定し、QODANA_TOKEN 値に基づいてレポートを Qodana クラウドに転送します。main の代わりに、ここでブランチを指定できます。

name: Qodana on: workflow_dispatch: pull_request: branches: - main push: branches: - main - 'releases/*' jobs: qodana: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: 'Qodana Scan' uses: JetBrains/qodana-action@v2022.2.3 env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}
  1. Qodana アクション fail-threshold オプションの問題の数 (整数) を設定します。

  2. リポジトリ名にある設定をクリックします。

  3. 左側のメニューでブランチをクリックします。

  4. ブランチ保護ルールセクションで、ルールの追加をクリックします。

  5. mainブランチ名前パターンに追加します。

  6. マージ前にステータスチェックに合格する必要があるを選択します。

  7. Qodana ステータスチェックを検索して確認してください。

  8. 作成をクリックします。

GitLab CI/CD

この例を使用すると、GitLab CI/CD を次のように構成できます。

  • main ブランチおよびすべてのマージリクエストのインスペクション

  • クオリティゲートが失敗した場合のマージリクエストのブロック

  • インスペクション結果を Qodana クラウドに転送する

Qodana ランナーを GitLab CI/CD パイプラインに追加するには、次の手順に従います。

  1. QODANA_TOKEN (英語) 変数を作成し、そこに Qodana クラウドプロジェクトトークン値を保存します。

  2. このサンプルを .gitlab-ci.yml ファイルに貼り付けます。

stages: - qodana qodana: stage: qodana only: - main - merge_requests image: name: jetbrains/qodana-<linter> entrypoint: [""] script: - qodana --save-report --results-dir=$CI_PROJECT_DIR/qodana --report-dir=$CI_PROJECT_DIR/qodana/report --fail-threshold <number> artifacts: paths: - qodana

このサンプルでは、--fail-threshold オプションを使用して、Qodana リンターと品質ゲートを指定します。この構成を使用すると、Qodana はメインのブランチとリポジトリに届くすべてのマージリクエストをインスペクションします。

インスペクション結果概要

プロジェクトがインスペクションされ、インスペクション結果が Qodana クラウドにアップロードされると、このページに示すように結果を表示できます。

関連ページ:

コードを分析する

Qodana とのやり取りで最も興味深く興味深い部分は、コードの分析です。これに備えて、Qodana の設定セクションを再度参照するか、Qodana を実行する前にプロジェクトを準備する方法を学習するとよいでしょう。それ以外の場合は、特定のタスクを解決するために Qodana を調整する方法の例を提供するガイドのツアーに参加することをお勧めします。コードの分析は以下に依存します:Qodana の導入をどのように計画しているか、実行する必要があるリンター、Qodana 分析レポートは、次の 2 つ...

クイックスタート

Qodana (2024.1) の現在のバージョンは、Java、Kotlin、Groovy、PHP、JavaScript、TypeScript、C#、Visual Basic、C、C++、Python、Golang プロジェクトを分析できるリンターを提供します。さまざまな機能を使用して、デフォルトのリンター構成を拡張することもできます。例として、このセクションでは、以下を使用して Qodana の操作をすぐに開始できる方法について説明します。JetBrains IDE、コマンドラインインターフェ...

フォワードレポート

このセクションでは、このソフトウェアを使用して Qodana レポートを Qodana クラウドに転送する方法について説明します。Docker および Qodana CLI、Azure パイプライン、Bitbucket クラウド、CircleCI、GitHub アクション、GitLab CI/CD、Jenkins、Space Automation、TeamCity、これらすべての場合において、このドキュメント

チーム

チームは、特定のプロジェクトを蓄積する組織の一部です。チームを使用すると、Qodana クラウドの専用プロジェクトごとにユーザーをグループ化できます。チームを作成する:オンボーディング段階では、Qodana Cloud がチームの作成を支援するため、この手順は追加のチームを作成する場合にのみ必要です。組織ページで、「」をクリックします。これにより、ダイアログが開きます。ダイアログでチーム名を指定し、をクリックします。チームを移動する:組織ページでチーム名をクリックするか、左側のサイドバーにあ...

プロジェクト

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

コードカバレッジ

コードカバレッジは、生成されたレポートを使用して、メソッド、クラス、ファイル内の全体的なコードカバレッジを計算します。また、これらのエンティティにおけるカバレッジの不足に関連する問題についても報告します。この機能は、次のリンターの Ultimate および Ultimate Plus ライセンスで利用できます。JVM 用 QodanaIntelliJ IDEA コードカバレッジエージェントが推奨ツールですが推奨される形式です。もサポートされています。JaCoCoJS 用 QodanaJestPHP...