メインコンテンツへスキップ
集中設定を使用すると、Web UI でリポジトリごとに編集する代わりに、すべてのコードレビュー設定とすべての Kody ルールを1 つのリポジトリに保持できます。各変更はそのリポジトリのプルリクエストを通じて流れ、レビュー設定のバージョン履歴、レビュー、ロールバックが可能になります。 次の場合に使用します:
  • 多くのリポジトリ全体のレビュー動作に対する単一の信頼できる情報源が必要な場合。
  • コードとしてのコードレビュー:履歴、PR レビュー、ロールバック、CI 検証。
  • 組織全体で一貫した Kody ルール(レビュールールとメモリ)が必要な場合。
  • CLI または CI 主導の設定変更が必要な場合。

仕組み

  1. 集中設定を保持する 1 つのリポジトリを選択します。
  2. UI で集中設定を有効にし、そのリポジトリを指定します。
  3. 初期同期モードを選択します:
    • pr — Kodus は現在の有効な設定とルールで初期化 PR を開きます。
    • manual — Kodus はファイルを生成します。チームはファイルをダウンロードして PR を開きます。
  4. 最初のマージ後、集中リポジトリへの将来のすべてのマージが Kodus への変更を自動的に伝播します。
集中リポジトリは、フォルダーレイアウトを通じて Kodus のスコープ階層(グローバル → リポジトリ → ディレクトリ)を反映します。

リポジトリレイアウト

集中リポジトリは、フォルダーパスを使用してファイルをスコープにマッピングします。レイアウトはレビュー設定(kodus-config.yml)と Kody ルール(.kody-rules/)の両方をカバーします。
リポジトリ名は任意です。組織に合ったものを選んでください。以下では慣例として kodus-config を使用します。
kodus-config/
├── kodus-config.yml                      ← グローバル設定
├── .kody-rules/
│   ├── review/                           ← グローバルレビュールール
│   │   └── require-tests-for-endpoints.yml
│   └── memories/                         ← グローバルメモリ
│       └── logging-convention.yml

├── backend-api/                          ← Kodus リポジトリに一致
│   ├── kodus-config.yml                  ← リポジトリレベルのオーバーライド
│   ├── .kody-rules/
│   │   ├── review/
│   │   │   └── no-raw-sql.yml
│   │   └── memories/
│   │       └── auth-module-layout.yml
│   │
│   └── src/auth/                         ← リポジトリのサブディレクトリに一致
│       ├── kodus-config.yml              ← ディレクトリレベルのオーバーライド
│       └── .kody-rules/
│           ├── review/
│           └── memories/

└── frontend-web/
    └── kodus-config.yml
ルール:
  • 集中リポジトリのルートにある kodus-config.yml はグローバルに適用されます。
  • Kodus リポジトリの名前と一致するトップレベルフォルダー(例:backend-api/)は、そのリポジトリにファイルをスコープします。
  • リポジトリフォルダー内のネストされたパス(例:backend-api/src/auth/)は、そのディレクトリにファイルをスコープし、Web UI と同じ継承モデルに従います。
  • .kody-rules/review/ 下のルールはレビュールールになり、.kody-rules/memories/ 下のルールはメモリになります。
一致するスコープのないファイルは同期時に無視されます。

設定ファイル

kodus-config.yml一般設定に記載されているリポジトリごとの kodus-config.yml と同じスキーマを使用します。フィールドはファイルが存在するフォルダーのレベルで適用され、通常の継承ルールに従います(設定の継承とオーバーライドを参照)。 最小限の例:
version: '1.2'
reviewOptions:
  security: true
  kody_rules: true
  error_handling: true
suggestionControl:
  groupingMode: full
  limitationType: pr
  maxSuggestions: 9
  severityLevelFilter: medium
ignorePaths:
  - yarn.lock
  - package-lock.json
automatedReviewActive: true

Kody ルールファイル

各ルールは .kody-rules/review/(標準ルール)または .kody-rules/memories/(メモリ)下の単一の YAML ファイルです。ファイル名は任意です。Kodus はルールを title フィールドとルールと共に保存された正規ファイルパスで識別します。 レビュールールの例(.kody-rules/review/require-tests-for-endpoints.yml):
title: Require tests for new endpoints
rule: |
  Every new HTTP endpoint handler must include at least one integration test
  that exercises the happy path and one common failure mode.
severity: high
scope: pull_request
path: apps/api/**
examples:
  - snippet: |
      // endpoint added with matching *.spec.ts
    isCorrect: true
  - snippet: |
      // endpoint added with no test file touched in the PR
    isCorrect: false
inheritance:
  inheritable: true
  exclude: []
  include: []
完全なフィールドリファレンスについてはKody ルール概要を、inheritance.inheritableexcludeinclude の動作についてはルール継承を参照してください。

UI ワークフロー

設定 → コードレビュー → 一般から:
  1. 集中設定を開きます。
  2. 集中設定を有効にします。
  3. ソースリポジトリを選択します。
  4. 初期同期方法を選択します:
    • 自動(今すぐ PR を作成)
    • 手動(後で同期)
  5. 保存してステータスを確認します。

有効時の Web UI の動作

集中設定が有効な場合、設定の信頼できる情報源は集中リポジトリです。Web UI はこれを反映します:
  • リポジトリ、ディレクトリ、グローバルのコードレビュー設定は Web UI で読み取り専用になります。集中リポジトリで PR を開いて編集してください。
  • Kody ルールと PR メッセージは Web UI で引き続き編集可能です。編集を保存してもルールを直接変更しません。Kodus は提案された変更を含むプルリクエストを集中リポジトリで開きます。PR がマージされると、変更が有効になります。
これにより、ルールとメッセージのビジュアル編集体験を維持しながら、「すべてがレビューされバージョン管理される」という保証が保たれます。

同期状態

集中設定から来る各ルールは、ステータスを通じてライフサイクルを追跡します:
ステータス意味
SYNCEDKodus 内のルールが集中リポジトリのファイルと一致している。
PENDING_ADDUI/CLI 経由で新しいルールが作成され PR が開かれた。ファイルはまだデフォルトブランチに存在しない。
PENDING_EDITUI/CLI 経由で編集が提案され PR が開かれている。既存のファイルはまだ更新されていない。
PENDING_DELETEUI/CLI 経由で削除が提案され PR が開かれている。ファイルはまだデフォルトブランチに存在する。
PENDING_* は対応する PR がマージされると SYNCED に戻ります。

同期モード

Kodus は現在の有効な設定とルールで初期化プルリクエストを自動的に開きます。

設定バンドルのダウンロード

現在の設定とルールを反映した生成済み kodus-config.yml ファイルと .kody-rules/ ツリーを含む ZIP をダウンロードできます。 以下の場合に使用します:
  • 生成された設定の監査。
  • 別のチームとのセットアップアーティファクトの共有。
  • ロールアウト前のローカルバックアップの保持。
  • manual モードでの集中リポジトリのブートストラップ。

集中設定の無効化

集中設定を無効にすると、選択されたソースリポジトリがクリアされ、すべてのリポジトリが標準の非集中動作(Web UI で設定を編集、オプションでリポジトリごとの kodus-config.yml)に戻ります。 同期されたルールと設定は Kodus に残ります。無効化時に削除されません。

CLI

以下のコマンドを使用して、ターミナルワークフローと CI スクリプトから集中設定を管理します。

要件

  • チームキー認証。
  • Kodus で少なくとも 1 つの選択されたリポジトリ。
以下で認証します:
kodus auth team-key --key <your-key>

ステータスの確認

kodus config centralized status

集中設定の初期化

kodus config centralized init [owner/repo] --sync-option <pr|manual>
注意事項:
  • --sync-option のデフォルトは pr です。
  • インタラクティブなターミナルでリポジトリが省略された場合、CLI は選択を促します。
  • 非インタラクティブ環境では、リポジトリを指定する必要があります。
例:
kodus config centralized init kodustech/kodus-config --sync-option pr
kodus config centralized init kodustech/kodus-config --sync-option manual

同期の実行

kodus config centralized sync

集中設定の無効化

kodus config centralized disable

設定 ZIP のダウンロード

kodus config centralized download --out ./centralized-config.zip
注意事項:
  • --out は必須です。
  • 出力は生成された設定ファイルと .kody-rules/ ツリーを含む ZIP バンドルです。

JSON 出力

すべての集中コマンドは --json による構造化出力をサポートします。
kodus config centralized status --json
kodus config centralized init kodustech/kodus-config --sync-option pr --json
kodus config centralized sync --json
kodus config centralized disable --json
kodus config centralized download --out ./centralized-config.zip --json

関連情報