【Claude Code 連載 第39回】Claude Code と GitHub Enterprise Server(github-enterprise-server)

スポンサーリンク
【Claude Code 連載 第39回】Claude Code と GitHub Enterprise Server(github-enterprise-server) 用語解説
【Claude Code 連載 第39回】Claude Code と GitHub Enterprise Server(github-enterprise-server)
この記事は約10分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

スポンサーリンク

背景

この連載では、Claude Codeの公式ドキュメントを1ページずつ読み解いていきます。公式ドキュメントは情報が網羅されている分、「結局どの機能を、どんな場面で使えばいいのか」は自分で考える必要があり、読むのに意外と時間がかかります。そこで、私が実務で使うために読み込んだ内容を「使う場面→実例コード」の順に整理して残していくことにしました。専門家の解説というより、一次情報を読んだ記録です。推測や動作を確認していない部分には、その都度そう書きます。

一言でいうと何か

自社管理の GitHub インスタンス(GitHub Enterprise Server、GHES)でホストされているリポジトリで Claude Code を使えるようにする機能です。管理者が GHES インスタンスを1回接続すると、開発者はリポジトリごとの設定なしに、Web(クラウド)セッションの実行、自動コードレビュー、GHES 上のプラグインマーケットプレイス利用ができます。github.com 側の機能(Claude Code on the web・Code Review)を、自己ホスト GitHub に向ける統合と捉えると分かりやすいです(Team/Enterprise プランで利用可能)。

どういう場面で役立つか

コードが github.com ではなく自社の GHES にあり、そこで Web セッションや自動 PR レビューを使いたいとき。管理者が一度つなげば、開発者は普段どおり claude --cloud や claude.ai/code を使えます(Claude Code が git リモートから GHES ホストを自動検出します)。

自社の GHES 上に内部ツールのプラグインマーケットプレイスを置き、組織全体に配布したいとき。マーケットプレイス構造は github.com と同じで、追加場所によってインストール方法と必要な認証情報が変わります。

Teleport や貢献度メトリクス、Claude Security も GHES で使いたいとき。--teleport での Web↔ターミナル移動や、Webhook 経由の貢献度メトリクスなどが github.com と同様に動きます。

不要・向かないケース:リポジトリが github.com にあるなら、そのまま Claude Code on the web と Code Review を使えばよく、この機能は不要です。また GHES では GitHub MCP サーバーがサポートされないため、代わりに GHES ホスト向けに設定した gh CLI を使います。/install-github-app も github.com のみで、GHES では管理者セットアップフローと(必要なら)GitHub Actions ワークフローの手動設定が必要です。Claude Code on the web からの GHES マーケットプレイスのクローンは、セッションのリポジトリと同一インスタンスにスコープされるため信頼できず、CLI・管理設定・claude.ai を使います。

接続・利用・マーケットプレイスの実例

前提と対応機能

対象は Team/Enterprise プランです。GHES では、Claude Code on the web・Code Review・Claude Security(Enterprise の公開ベータ)・Teleport・プラグインマーケットプレイス・貢献度メトリクス・GitHub Actions(手動ワークフロー設定が必要)がサポートされ、GitHub MCP サーバーのみ非対応です。接続には Claude 組織の Owner/Primary Owner ロールと、GHES で GitHub App を作成する権限が要ります。

管理者セットアップ

管理者は claude.ai/admin-settings/claude-code の GitHub Enterprise Server セクションから Connect し、表示名と GHES ホスト名(例 github.example.com)を入力します(自己署名証明書やプライベート CA なら CA 証明書を貼り付け)。Continue to GitHub Enterprise で、事前入力済みのアプリマニフェストを持って GHES にリダイレクトされ、Create GitHub App で App を作成すると、認証情報が自動保存されて Claude に戻ります。その後、GHES の GitHub App ページから対象リポジトリ/組織にアプリをインストールし(最初はサブセットでよい)、管理設定に戻って Code Review・Claude Security・貢献度メトリクスを github.com と同じ設定で有効化します。アプリは Contents/Pull requests/Issues/Checks(読み書き)、Actions/Metadata(読み取り)、Repository hooks(読み書き)などの権限と、pull_requestissue_commentcheck_run などのイベントを使います。リダイレクトがブロックされる環境では Add manually で、ホスト名・OAuth クライアント ID/シークレット・App ID・Webhook シークレット・秘密鍵などを手入力します。ネットワーク要件として、GHES インスタンスは Anthropic インフラから到達可能である必要があり、ファイアウォール下なら Anthropic API の IP アドレスを許可します。

開発者ワークフロー

管理者が接続すれば開発者側の設定は不要です。GHES から通常どおりクローンします。

git clone git@github.example.com:platform/api-service.git
cd api-service

そのうえで Web セッションを開始すると、Claude が git リモートから GHES ホストを検出し、組織の設定済みインスタンス経由でセッションをルーティングします。

claude --cloud "Add retry logic to the payment webhook handler"

セッションは Anthropic インフラで動き、GHES からクローンして変更をブランチにプッシュバックします。進捗は /tasks か claude.ai/code で監視します。Web セッションをローカルに引き込むには claude --teleport を使い、同じ GHES リポジトリのチェックアウトにいることを確認したうえでブランチをフェッチして履歴を読み込みます。

GHES 上のプラグインマーケットプレイス

マーケットプレイスの構造は github.com と同じですが、追加する「サーフェス」によってインストール方法と必要な認証情報が異なります。CLI/デスクトップと管理設定(extraKnownMarketplaces)は、マシンの既存 git 認証情報でクローンするため「マシンから GHES への Git アクセス」が要ります。claude.ai 組織プラグイン設定は、Owner が GHES をソースに選ぶと Anthropic バックエンドが管理者セットアップの GitHub App でフェッチ・同期するため、追加後は各ユーザーの接続が不要です(追加する Owner 自身は GitHub Enterprise アカウント接続と App インストールが必要)。claude.ai ユーザー設定は、各ユーザーが自分の GitHub Enterprise 接続を使うため、ユーザーごとに接続が要ります。Claude Code on the web は、前述のとおりセッションのリポジトリと同一インスタンスにスコープされ信頼できないため、他の手段を使います。

owner/repo の短縮形は常に github.com に解決されるので、GHES では完全な git URL を使います(HTTPS 推奨)。

/plugin marketplace add https://github.example.com/platform/claude-plugins.git

マシンが既に GHES ホストを信頼していれば SSH URL も使えます。

/plugin marketplace add git@github.example.com:platform/claude-plugins.git

Claude Code は git を非対話的に実行し、known_hosts に無いホストへの SSH を拒否するため、認証情報ヘルパー付きの HTTPS URL が known_hosts 要件を回避できて扱いやすいです。管理設定で事前登録するなら extraKnownMarketplaces を使い、組織全体に配信します。

{
  "extraKnownMarketplaces": {
    "internal-tools": {
      "source": {
        "source": "git",
        "url": "https://github.example.com/platform/claude-plugins.git"
      }
    }
  }
}

このパスは claude.ai を通らないためユーザーごとの GitHub Enterprise 接続は不要ですが、完全な git URL を使う・HTTPS を優先する・各マシンが GHES からクローンできる・設定が各マシンに届く、を満たす必要があります(認証情報が無いマシンでは登録はされてもインストールされず、プラグインは「見つからない」と報告されます)。開発者が追加できるマーケットプレイスを制限している組織では、リポジトリを列挙せず GHES インスタンス全体を許可するために hostPattern を使えます。

{
  "strictKnownMarketplaces": [
    {
      "source": "hostPattern",
      "hostPattern": "^github\\.example\\.com$"
    }
  ]
}

制限とトラブルシューティングの要点

/install-github-app は github.com のみのため、GHES では管理者セットアップフローに従い、GitHub Actions が要る場合はサンプルワークフローを手動で適応させます。GitHub MCP サーバーは非対応で、代わりに gh auth login --hostname github.example.com で認証した gh CLI をセッションで使います。Web セッションのクローン失敗は、Owner のセットアップ完了と App のインストール、登録ホスト名と git リモートの一致を確認します。マーケットプレイス追加のポリシーエラーは hostPattern の許可を管理者に依頼し、claude.ai での GitHub アクセスエラーは自分の GitHub Enterprise アカウント接続(claude.ai/code のリポジトリピッカーや管理設定から)を確認します。レビューや Web セッションのタイムアウトは、GHES が Anthropic インフラから到達可能か(ファイアウォールで Anthropic API IP を許可しているか)を確認します。

まとめ

GitHub Enterprise Server サポートは、自己ホスト GitHub のリポジトリで Web セッション・自動コードレビュー・プラグインマーケットプレイスなどを使えるようにする統合です(Team/Enterprise)。管理者が GHES を1回接続すれば、開発者は git clone して claude --cloud するだけでよく、Claude がホストを自動検出します。マーケットプレイスは追加するサーフェスごとに認証情報要件が異なり、GHES では完全な git URL(HTTPS 推奨)と extraKnownMarketplaces/strictKnownMarketplaces の管理設定が要点です。GitHub MCP サーバーは非対応で gh CLI で代替し、/install-github-app は github.com のみ、GHES は Anthropic インフラから到達可能である必要がある、という差分を押さえておくとよいでしょう。

次回は、残る連携・自動化系の未執筆ページ(Channels、/goal、Agent SDK など)、あるいは長く保留している引き継ぎ課題(第5回欠番の補完・第1/2回の照合)に着手する予定です。


この記事は執筆時点の公式ドキュメントに基づいています。最新の情報は必ず公式ドキュメントをご確認ください。

よっしー
よっしー

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

タイトルとURLをコピーしました