課題
モノレポでは、パッケージによって標準が異なります。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のルールから始め、チームが実際にレビューでフラグを立てるものに基づいて拡張する
- ルール継承を使用する — 組織レベルのルールはセキュリティをカバーし、リポジトリレベルは規約をカバーし、ディレクトリレベルはアーキテクチャをカバーする
- あるパッケージではルールが頻繁に発火するが他では有効な場合は、ルールを弱めるのではなく、そのディレクトリをルールから除外する