GitHub連携と自動同期

← エージェント(AI)にもどる

エージェントの作業ファイルは、GitHub リポジトリと双方向に連携できます。できることは3つです。

操作向き内容
Clone(取り込み)GitHub → エージェントリポジトリの内容を作業ディレクトリへ反映します
コミット&プッシュエージェント → GitHubアプリやエージェントが編集した内容を同じブランチへ書き戻します
push で自動同期GitHub → エージェント(自動)リポジトリへ push が入るたび、作業ディレクトリを自動で最新化します(Vercel の自動デプロイと同じ使用感)

設定はすべて、エージェント編集画面の**「コンテキスト」タブ → GitHub 連携パネル**で行います。

連携できる場所は2つ(ルート)

ルート場所用途
プロジェクトルート作業ディレクトリ(エージェントの実行場所)スキル・参照資料・成果物などの作業一式
ホームディレクトリサンドボックスの $HOME~/.claude/CLAUDE.md などのグローバル設定

それぞれ独立にリポジトリ・ブランチ・PAT・自動同期を設定できます(同じリポジトリを両方に向けることも可能です)。

GitHub PAT と必要な権限

PAT(Personal Access Token)はルート(リポジトリ)ごとに設定し、Clone 実行時に自動保存されます(暗号化保存・画面には末尾4桁のみ表示。空欄なら保存済みをそのまま使用)。

用途Fine-grained PATClassic PAT
公開リポジトリの Clone のみ不要不要
プライベートリポジトリの CloneContents: Readrepo
コミット&プッシュContents: Read and Writerepo
push 自動同期(Webhook 自動登録)Webhooks: Read and writerepo

ヒント

GitHub → Settings → Developer settings → Personal access tokens(Fine-grained 推奨)で、対象リポジトリに上記権限を付けたトークンを発行してください。

Clone(取り込み)と保護パス

  • プロジェクトルートへの Clone は、作業ディレクトリをリポジトリの内容で置き換えます(未プッシュの変更は失われます)。
  • ホームディレクトリへの Clone は**オーバーレイ(マージ)**です。$HOME は消さず、リポジトリと同名のファイルだけ上書きされます。
  • 「Clone で保護するパス」(1行=1パス)を指定すると、プロジェクトルートの Clone もオーバーレイになり、指定したディレクトリ/ファイルは一切上書き・削除されずに残ります(例: エージェントが育てた project-reference を守ったままスキルだけ更新する)。

コミット&プッシュ

  • 同じブランチへ直接コミット&プッシュします(force push はしません)。
  • リポジトリが取り込み後に他所で更新されていると非 fast-forward で弾かれます(409)。その場合は Clone し直してから再度プッシュしてください。
  • ホームディレクトリのプッシュでは、キャッシュや秘密情報(.ssh や認証ファイル等)は自動で除外されます。

push で自動同期(自動デプロイ)

GitHub 連携パネルの**「push で自動同期」トグルを ON にするだけ**で使えます。ON にすると、保存済みの PAT を使ってサーバーが GitHub リポジトリへ Webhook を自動登録するため、GitHub 側での手動設定は不要です。

  • 対象ブランチ(未設定ならリポジトリの既定ブランチ)へ push が入るたび、そのルートが最新へ自動 Clone されます。保護パスはそのまま維持されます(オーバーレイ)。
  • 別ブランチ・タグの push は無視されます。プロジェクトルートとホームが同じリポジトリ・同じブランチを向いていれば、両方が同期されます。
  • トグルを OFF にすると GitHub 側の Webhook も自動で削除されます(同じリポジトリを別ルートが使用中の場合は残します)。
  • 受信は署名(HMAC)を必須検証しており、URL を再発行しても Webhook は自動で追随します。

注意

PAT に Webhook の権限(上の表を参照)が無いと自動登録に失敗します。その場合も自動同期自体は有効化でき、画面に表示される URL を GitHub リポジトリの Settings → Webhooks へ手動登録すれば同じように動きます(Content type は application/json、イベントは push のみ)。

重要

自動同期は push のたびにサンドボックスを起動して Clone します。保護パス以外の作業中の変更は上書きされるため、エージェントに育てさせたいファイルは「Clone で保護するパス」に入れておくか、こまめにコミット&プッシュしてください。