モノリポジトリプロジェクトをインスペクションする
モノリポジトリは、複数のプロジェクトを含むリポジトリです。例:
この例では、backend/
フォルダーには Java プロジェクトが含まれ、frontend/
フォルダーには JavaScript プロジェクトが含まれ、.git/
フォルダーには VCS 関連の情報が含まれています。
このセクションでは、以下を使用してモノリポジトリを準備およびインスペクションする方法について説明します。
Qodana の Docker イメージ
Qodana スキャン GitHub アクション
プロジェクトを準備する
構成ファイル
2 つのプロジェクトをインスペクションするように Qodana を構成するには、各リンターごとに 1 つずつ、2 つの YAML 形式の構成ファイルを作成する必要があります。この例では、これらは qodana-backend.yaml
ファイルと qodana-frontend.yaml
ファイルになります。
Qodana を実行すると、.git/
フォルダーを使用して、検出された問題を Git リポジトリ内の対応するソースコードにリンクし、IDE 内からインスペクションレポートを探索します。
root/
フォルダーの内容は次のとおりです。
Qodana クラウド
Qodana クラウド(英語)を使用してインスペクションレポートを表示できます。Qodana クラウド Web サイトで、frontend
プロジェクト用のインスペクションレポートを保存するためのプロジェクトを 1 つ作成し、backend
プロジェクト用に別のプロジェクトを作成します。
プロジェクトを作成したら、そのプロジェクトトークンを使用して Qodana を実行できます。
Qodana の実行
各 Qodana リンターは特定のプログラミング言語のセットをインスペクションできるため、Qodana CLI および Qodana の Docker イメージをモノリポジトリ上で 2 回 (モノリポジトリに含まれるプロジェクトごとに 1 回) 実行する必要があります。
これらのスニペットは、プロジェクトトークンを参照する QODANA_TOKEN
変数を使用します。 --source-directory
オプションは、インスペクションするプロジェクトフォルダーを指定します。 --config
オプションは、使用する Qodana 構成ファイルを指定します。以下は、backend
プロジェクトのスニペットです。
frontend
プロジェクトのスニペットは次のとおりです。
これらのスニペットは、プロジェクトトークンを参照する QODANA_TOKEN
変数を使用します。 --source-directory
オプションは、インスペクションするプロジェクトディレクトリを指定します。 --config
オプションは、使用する Qodana 構成ファイルを指定します。以下は、backend
プロジェクトのスニペットです。
frontend
プロジェクトのスニペットは次のとおりです。
この手順に従って、Qodana スキャン GitHub アクションを使用して、GitHub 上で Qodana を実行できます。
GitHub UI の
タブで、QODANA_TOKEN_BACKEND
およびQODANA_TOKEN_FRONTEND
暗号化シークレット(英語)を作成し、Qodana クラウドで生成されたプロジェクトトークンをその値として保存します。GitHub UI の
タブで、新しいワークフローを設定し、.github/workflows/code_quality.yml
ファイルを作成します。このワークフロー構成を
.github/workflows/code_quality.yml
ファイルに保存します。name: Qodana on: workflow_dispatch: pull_request: push: jobs: qodana-backend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: 'Qodana Backend' uses: JetBrains/qodana-action@v2024.1 with: args: | --source-directory,backend,--config,qodana-backend.yaml artifact-name: qodana-backend env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN_BACKEND }} qodana-frontend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: 'Qodana Frontend' uses: JetBrains/qodana-action@v2024.1 with: args: | --source-directory,frontend,--config,qodana-frontend.yaml artifact-name: qodana-frontend env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN_FRONTEND }}
インスペクションの結果を見る
おめでとうございます。これで、Qodana クラウド(英語)に移動して、モノレポプロジェクト内の各プロジェクトのインスペクションの結果を確認できるようになりました。
関連ページ:
![](https://pleiades.io/icons/jetbrains_logo.png)
Qodana Docker イメージ
基本的に、Docker イメージの名前はリンターの名前と似ています。Qodana リンターには次の Docker イメージが提供されています。JVM 用 Qodana、JVM の Qodana コミュニティ、Android のための Qodana コミュニティ、PHP 用の Qodana、Python 用 Qodana、Python のための Qodana コミュニティ、JS 用 Qodana、Go 用 Qodana、.NET 用 Qodana、.NET の Qodana コミュニティ、...
![](https://resources.jetbrains.com/help/img/qodana/2024.1/ide-plugin-intro-tool-window.png)
JetBrains IDE
JetBrains IDE で Qodana を実行して、コードベースをインスペクションできます。Qodana は、JetBrains Toolbox アプリ経由でインストールされたいくつかの JetBrains IDE (IntelliJ IDEA、PhpStorm、WebStorm、Rider、GoLand、PyCharm、Rider など) をサポートします。IDE を使用すると、次のことが可能になります。Qodana をローカルで実行する、Qodana クラウドに接続する、CI パイプライン...
![](https://resources.jetbrains.com/help/img/qodana/2024.1/qc-create-project.png)
プロジェクト
プロジェクトは、Qodana レポートを蓄積します。各プロジェクトは、プロジェクトトークンによって一意に識別されます。このトークンは、Qodana レポートのアップロードに使用されます。プロジェクトの作成:オンボーディング段階では、Qodana Cloud がすでに最初のプロジェクトの作成を支援しているため、これらの手順は追加のプロジェクトを作成する場合にのみ適用されます。チームページで、ボタンをクリックします。以下で説明するウィザードの手順に従います。Qodana Cloud からアクセスでき...
![](https://resources.jetbrains.com/help/img/qodana/2024.1/ide-plugin-run-qodana-2.png)
JVM
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク用に設計された IDE に基づいています。Python プロジェクトを分析するには、次のリンターを使用できます。JVM 用の Qodana は IntelliJ IDEA Ultimate に基づいており、Ultimate および Ultimate Plus ライセンスでライセンスされています。Qodana Community for JVM および Qodana Community for Android は、Intel...