広告枠を募集中 ご相談ください

マルチリポジトリのコンテキストで大規模コードベースを解読・ナビゲートする:エンジニアリングチームのための Sourcegraph Cody 活用法

365Finds Editorial
Wiki 記事 11,430 本収録

あなたの AI で 365 Wiki を使う

下のプロンプトをコピーして、普段使っている AI に貼り付け、そのまま質問してください。

完全版 Skill をダウンロード

まずはプロンプトでお試しください。よく使う場合は完全版 365Wiki Skill をインストールすると、毎回貼り付ける必要がありません。普段使う AI がなければ、Gemini や Microsoft Copilot のウェブ版でも使えます。

現代のエンタープライズソフトウェアは、単一のリポジトリや一人の開発者のローカル IDE 環境だけに収まることはほとんどありません。組織の成長とアーキテクチャの進化に伴い、システムは独立したマイクロサービス、社内共通ライブラリ、各種クライアント向け SDK、フロントエンド、インフラ構成ファイルなど、数十から数千のリポジトリへと分散していきます。

このような分散環境において、障害調査や依存関係の把握、あるいは新規メンバーのオンボーディングを行う際、従来のローカル開発ツールやエディタ内の開いているファイルのみに頼る一般的な AI コーディングアシスタントは構造的な限界に直面します。ローカルアシスタントには、現在開いている数個のファイルしか見えません。そのため、手元のサービスが送信するイベントが数リポジトリ先の別サービスでどのように処理されているのかを把握することは不可能です。

Sourcegraph Cody は、最先端の大規模言語モデル(LLM)と、Sourcegraph の全社的コードインテリジェンス基盤およびマルチリポジトリインデックスを統合することで、この視覚的盲点を解消します。組織全体のコード資産を背景知識として活用することで、エンジニアリングチームはサービス境界を越えた呼び出し経路を探索し、複雑なアーキテクチャを紐解き、未知のコードを短時間で正確に理解できるようになります。


マルチリポジトリと大規模コードベースが抱える課題

複数のリポジトリ(Polyrepo)や超大規模モノリポジトリ(Monorepo)を運用する企業では、エンジニアは次のような構造的課題に日常的に直面しています:

大規模なコードベースを安全かつ高精度に探索するには、LLM にコードを渡す前に、エンタープライズ規模でソースコードを継続的にインデックス化・検索・フィルタリングできる専用の基盤が不可欠です。


仕組み:Cody がマルチリポジトリコンテキストを取得する技術

Cody は、質問時にローカルファイルを場当たり的に走査するのではなく、Sourcegraph プラットフォームの検索基盤と連携した検索拡張生成(RAG)を採用しています。

1. 集中型プラットフォームインデックス

Sourcegraph は、組織が利用するコードホスト(GitHub、GitLab、Bitbucket など)と直接接続します。プラットフォームは指定されたすべてのリポジトリをバックグラウンドで継続的にインデックス化します。開発者が手元のマシンに対象リポジトリをクローンしていなくても、Sourcegraph サーバー(シングルテナントクラウドまたはオンプレミス構成)上には常に最新のコードとシンボル情報が保持されています。これにより、Cody は数千件のリポジトリを横断した探索能力を発揮します。

2. 多層的検索とコードグラフ(Code Graph)

エンジニアがチャットウィンドウで質問を送信すると、Cody は Sourcegraph の高度な検索 API およびコードグラフを通じて多角的なアプローチでコンテキストを収集します:

3. サーバーサイドでの高精度リランキングとトークン最適化

ヒットした数千行のコードをそのままプロンプトに流し込むと、ノイズが混ざり品質が落ちます。Cody はサーバー側で独自のスコアリングアルゴリズム(Re-ranker)を実行し、ファイルパス、シンボルの近接性、ユーザープロンプトとの関連度に基づいて、真に必要な高シグナルのコードスニペットのみを抽出します。

選別されたコード片のみが、Claude 3.7 Sonnet、Claude 3.5 Sonnet、GPT-4o などのフロンティアモデルにプロンプトとして渡されるため、トークン消費を抑えながら精度の極めて高いアーキテクチャ解説が生成されます。


実践的ユースケース:開発チームでの具体的活用法

エンジニアリング組織では、以下のような高価値なシナリオにおいて Cody のマルチリポジトリコンテキストを活用しています。

┌────────────────────────────────────────────────────────────────────────┐
│                        開発者のローカル IDE                            │
│           (VS Code / JetBrains / Visual Studio / Cody Web)             │
└───────────────────────────────────┬────────────────────────────────────┘
                                    │ 1. 複数リポジトリに関する質問 / @-mention
                                    ▼
┌────────────────────────────────────────────────────────────────────────┐
│                    Sourcegraph Enterprise 基盤                         │
│   ┌────────────────────────────────────────────────────────────────┐   │
│   │ 集中コードインデックス (GitHub / GitLab / Bitbucket / Monorepo)│   │
│   └───────────────────────────────┬────────────────────────────────┘   │
│                                   │ 2. キーワード + セマンティック + グラフ検索│
│                                   ▼                                    │
│   ┌────────────────────────────────────────────────────────────────┐   │
│   │ サーバーサイド・リランカー & トークンウィンドウ最適化          │   │
│   └───────────────────────────────┬────────────────────────────────┘   │
│                                   │ 3. 高シグナルなコードスニペット抽出│
└───────────────────────────────────┼────────────────────────────────────┘
                                    │
                                    ▼ 4. グラウンディングされたプロンプト
┌────────────────────────────────────────────────────────────────────────┐
│                       先端 LLM (Claude / GPT)                          │
│    5. 実際のソースファイルへのリンクを添えた高精度な解説を生成         │
└────────────────────────────────────────────────────────────────────────┘

1. マイクロサービス間のエンドツーエンド処理の追跡

分散アーキテクチャでは、単一のリクエストが複数のサービスを経由して完了します。開発者は Cody のチャットで直接リクエストのライフサイクルを尋ねることができます:

「checkout-frontend から送信された決済リクエストは api-gateway を通ってどのサービスで処理されますか?また、決済完了後に notification-service でメール送信がトリガーされるまでのフローを教えてください。」

Cody は、ルーティング設定、決済ロジック、メッセージキューのリスナー実装を複数のリポジトリから同時に抽出し、全体のデータフローを整理して提示します。エンジニアが手作業で複数のリポジトリを開いて grep する手間が劇的に省かれます。

2. 社内共通ライブラリ・独自フレームワークの解読

多くのエンタープライズでは、認証基盤、独自のデータアクセス層、共通 UI コンポーネントなどを社内ライブラリとして共有していますが、ドキュメントの更新が追いついていないことが多々あります。Cody を使えば、現在作業中のリポジトリから離れることなく、共通ライブラリの内部動作を質問できます。さらに、社内の他サービスでの正しい呼び出し例を検索して提示してくれるため、ベストプラクティスに沿った実装が容易になります。

3. 新規配属メンバーの立ち上げとアーキテクチャ把握

プロジェクトに合流したばかりのメンバーにとって、どの機能がどのリポジトリにあるのかを把握するのは困難です。Cody は 24 時間対応可能なテクニカルメンターとして機能します:

Cody は回答の根拠となったファイル名と行番号を明示するため、新人はリンクをクリックして実際のコードを確認しながら、システムの全体像を迅速に把握できます。

4. インターフェース変更・非推奨化の影響範囲分析

共有 API や共通モジュールのメソッドを変更する前に、下流への影響(ブラストレーディアス)を見極める必要があります。Cody を活用することで、利用側リポジトリの網羅的な調査が可能です:

「identity-service の v1/validateToken エンドポイントを非推奨にする場合、全社で現在このエンドポイントを呼び出しているサービスやクライアントはどれですか?」

Cody は数分で影響を受けるリポジトリとコード行を特定し、安全な移行計画の策定を支援します。


精度を高める制御:@-Mention とコンテキストの指定

Cody は組織全体のインデックスを自動検索できますが、エンジニアが必要に応じてコンテキストの範囲を絞り込むための柔軟な手段も用意されています。

@-Mention による明示的な指定

VS Code、JetBrains などのエディタや Web アプリの Cody チャット画面で @ を入力すると、コンテキストソースを指定できます:

常時参照リポジトリのピン留め

チャットパネル上で、頻繁に参照する関連リポジトリ(フロントエンドとバックエンドのペアなど)を固定グループとして登録できます。これにより、そのセッションでのすべてのやり取りが指定リポジトリ群を優先して参照するようになります。

コンテキストチップによる根拠の確認

Cody の回答には、参照したファイル一覧が Context Chips として表示されます。開発者は提示されたファイルを直接クリックして確認できるため、AI の推論が正しいコードに基づいているかを確実に検証できます。


エンタープライズガバナンスとセキュリティ管理

企業の全ソースコードを AI アシスタントに連携させる際、セキュリティとアクセス制御は最も重要視される要素です。Cody Enterprise は多層的な保護機能を備えています:

コードホストの権限継承(RBAC)

Cody は、GitHub や GitLab などのコードホストで設定されたロールベースアクセス制御(RBAC)を厳格に順守します。ユーザーが元のリポジトリに対する閲覧権限を持たない場合、Cody はそのリポジトリのコードを検索・参照せず、回答に含めることもありません。

コンテキストフィルター(Context Filters)

管理者は Sourcegraph のサイト設定で cody.contextFilters を構成し、正規表現を用いて LLM に送信可能なリポジトリを制御できます:

{
  "cody.contextFilters": {
    "include": [
      {
        "repoNamePattern": "^github\\.com\\/mycompany\\/.*"
      }
    ],
    "exclude": [
      {
        "repoNamePattern": ".*-internal-keys.*"
      },
      {
        "repoNamePattern": ".*-legal-vault.*"
      }
    ]
  }
}

除外ルールに該当するリポジトリはコンテキスト抽出から完全に遮断され、機密コードが外部の LLM プロバイダーへ送信されるリスクを根本から防ぎます。


チームへの導入と運用のベストプラクティス

組織全体で Cody のマルチリポジトリコンテキストを最大限に活かすためのポイントは次のとおりです:

  1. 具体的かつ構造的なプロンプト: 関連するサービス名、プロトコル、データ型などを明記して質問することで、検索エンジンが関連性の高いコードをより的確に絞り込めます。
  2. Code Search との併用: 「社内全体で古いライブラリバージョンを使用しているリポジトリの一覧」など網羅的な静的調査には Sourcegraph Code Search を使い、具体的な移行手順やコード解説には Cody チャットを使うという使い分けが効果的です。
  3. チーム共通プロンプトの蓄積: 定型的なマイクロサービス接続チェックや API レビューなどのプロンプトをテンプレート化し、チーム全体で共有します。
  4. 参照コードの確認習慣: Cody の解説は作業を加速する強力なツールですが、常に Context Chips から原典のファイルを確認し、確実性を担保する運用を推奨します。

ローカル開発環境と全社に広がる大規模コードベースの境界を取り払うことで、Sourcegraph Cody はエンタープライズにおけるソフトウェア開発とシステム理解の速度を大きく引き上げます。


参考文献