Skip to main content
プロダクトが複数のリポジトリに分かれている場合 — たとえばバックエンドAPIを呼ぶフロントエンドや、共有コントラクトパッケージに依存するサービス — 単一リポジトリだけのレビューでは境界での破壊を見逃すことがあります。リンクリポジトリlinked repositories)は、コードレビュー中にそれらの兄弟コードベースから任意・オンデマンドのコンテキストをKodyに渡します。
プラン要件: リンクリポジトリは Teams および Enterprise プランで利用できます(トライアルはプレビューとして含まれます)。Free プランにはクロスレポコンテキストは含まれません。
これはリポジトリ間でコーディング標準を共有する方法(組織レベルのルールと継承)とは異なります。リンクリポジトリはレビュールールではなく、レビュー用のソースコンテキストを共有します。

何をするか

レビュー対象のリポジトリに対して、同じ組織内で最大3つのリンクリポジトリを宣言します。レビュー中:
  1. Kodyは決定論的な境界ゲート(LLMなし)でPR diffを見ます。
  2. diffがコントラクトサーフェス(DTO、export、文字列リテラル、ステータスキー、APIらしいパスなど)に触れているように見える場合、クロスレポツールが有効になります。
  3. リンク先は、Kodyが実際に読み取りや検索を必要としたときだけ遅延クローンされます。
  4. 指摘は引き続きレビュー中のPRの行にのみアンカーされます — リンク先のコードは根拠であり、2つ目のレビュー対象ではありません。
リンクが設定されていなければ、機能は完全にオフです(追加コストなし)。

ダッシュボードでの設定

リンクリポジトリはリポジトリ単位であり、グローバルではありません。関係は一方向です: frontend 上のリンクは frontend のPRをレビューするときだけ適用されます。
  1. コードレビュー設定を開きます。
  2. 特定のリポジトリを選択します(Global ではない)。
  3. そのリポジトリのメニューからLinked Repositoriesページを開きます。
  4. Linked repositories で、組織にすでに接続されている兄弟リポジトリを追加します。
  5. 任意で設定:
    • Instructions — Kody向けの自由記述のヒント(例: 「このフロントエンドが消費するREST API」)。
    • Ref — 任意の branch/tag ピン。空欄のままにすると自動のrefカスケード(下記)を使います。
  6. 保存します。
リンクできるのは最大3リポジトリです。同じ組織にすでに接続されているリポジトリのみ受け付けます。

kodus-config.yml での設定

リポジトリの設定ファイルでも宣言できます:
  • repository(必須): 組織に接続されたリポジトリのフルネーム(owner/repo)。
  • instructions(任意): リンクの目的の短い説明。
  • ref(任意): branch、tag、または commit を固定。省略時はKodyがrefカスケードを使います。
空の linkedRepositories: [] は機能オフを意味します。

ref の選び方

各リンクリポジトリについて、Kodyは次の順でrefを試し、最初にクローンに成功したものを使います:
  1. そのリポジトリに対するPR説明のオーバーライド(下記)
  2. 設定の ref ピン(設定されている場合)
  3. PRのheadブランチと一致するheadを持つリンク先上のオープンPR
  4. リンク先上のPR headブランチ名
  5. リンク先のデフォルトブランチ
  6. フォールバック: main、次に master
同じブランチ名がサービス間に存在するマルチレポ作業を揃えつつ、通常のPRでは安全にフォールバックします。

PR説明からrefを上書きする

一度きりのレビュー(例: 特定のバックエンドPRに対してレビュー)では、レビュー対象PRのタイトルまたは説明にリンク済みリポジトリを書いてください。オーバーライドは設定ですでにリンクされているリポジトリにのみ適用されます。 対応形式: 例:
同じリポジトリへの後の言及が優先されます。リンクされていないリポジトリへの言及は無視されます(新しいリンクは作られません)。

クロスレポコンテキストが有効になるとき(境界ゲート)

リンクが設定されていても、Kodyは常に兄弟リポジトリを開くわけではありません。安価で決定論的なゲートがPR diffの追加行を走査し、次のような境界サーフェスを見つけたときだけ有効になります:
  • 文字列リテラル(パス断片、コード、イベント名など)
  • export(export function、型、クラスなど)
  • enum / type / interface
  • オブジェクトやペイロードのフィールドキー
  • status / state / error-code 風の識別子
  • コントラクトらしいパス(dtoschemaapiclientopenapiproto など)
境界サーフェスを触らない内部リファクタでは通常ゲートはオフのまま — クローンと境界プロンプトは起動しません。

リンクリポジトリでKodyができること・できないこと

できること:
  • ゲートがオンのとき、リンク先のファイルを検索・読み取り
  • instructions を使って関係を理解
  • 現在のPR上の指摘の根拠としてリンク先コードを引用
できないこと / しないこと:
  • リンク先にしかないファイルへレビューコメントを投稿
  • リンク先リポジトリ全体をPRとしてレビュー
  • 組織外、またはKodusに未接続のリポジトリをリンク
  • レビュー対象リポジトリあたり3件のソフト上限を超える

レビュー終了時の透明性

リンクリポジトリが実行に含まれた場合、レビューメタデータは設定されたリポジトリ、解決されたref(およびソース: 説明、ピン、オープンPR、headブランチ、またはdefault)、境界ゲートが有効だったかを記録します。失敗やスキップされたリンクは警告として表面化し、レビュー全体は失敗しません。

推奨セットアップ

すべてのリポジトリを相互にリンクするより、狭く一方向のリンク(消費者が生産者を指す)を推奨します。

関連ガイド