Skip to main content

課題

モノレポでは、パッケージによって標準が異なります。Reactフロントエンドはコンポーネントパターンを重視し、NestJSバックエンドは依存性注入を重視し、共有ライブラリはAPIの安定性を重視します。画一的なレビューは機能しません。

戦略の概要

Kodusはモノレポに自然にマッピングされる3つの設定レベルをサポートしています:

ステップ1 — パッケージをマッピングする

モノレポ内の異なる領域とそのレビューニーズを特定します:

ステップ2 — ディレクトリレベルの設定を作成する

サイドバーで Code review グループ上部のスコープピッカーを開き、Add repository configuration を選択します。Create repository settings で Select the target repository(モノレポ)を選び、次に Select the target directories(1つ以上のパッケージフォルダ)を選んで Create settings をクリックします。各ディレクトリはスコープピッカー内でリポジトリの下にインデントされて表示されます — 設定するにはそれを選択してください。 各ディレクトリは以下を持つことができます:
  • Kodyルール(ファイルレベルとPRレベル)
  • What to review(有効にするカテゴリと、投稿する最小重要度)
  • Ignored files(General 内)

ステップ3 — ターゲットを絞ったルールを作成する

フロントエンドルール(スコープ:apps/web/)

バックエンドルール(スコープ:apps/api/)

共有ライブラリルール(スコープ:libs/shared/)

ステップ4 — クロスカッティング規約にMemoriesを使用する

一部の規約はどこでも適用されます。それらをMemoriesとして教えます:

ステップ5 — ディレクトリごとに重要度のしきい値を設定する

トラフィックの多いパッケージにはより厳格なフィルターが必要な場合があります。スコープピッカーでディレクトリを選択し、What to review を開いて Minimum severity to post を設定します:
  • apps/web/ — Medium(フロントエンドは速く変化する)
  • libs/shared/ — Low/All(安定性が重要)
  • infra/ — High(少なくても重要なもの)

ステップ6 — 生成されたパスを除外する

ノイズを避けるためにモノレポ固有の除外設定を追加します:

ヒント

  • ディレクトリごとに2〜3のルールから始め、チームが実際にレビューでフラグを立てるものに基づいて拡張する
  • ルール継承を使用する — 組織レベルのルールはセキュリティをカバーし、リポジトリレベルは規約をカバーし、ディレクトリレベルはアーキテクチャをカバーする
  • あるパッケージではルールが頻繁に発火するが他では有効な場合は、ルールを弱めるのではなく、そのディレクトリをルールから除外する
ディレクトリ設定の詳細については、ディレクトリレベル設定 を参照してください。ルール継承については、ルール継承 を参照してください。