GAC で GitHub Copilot を使用する
September 20, 2026 · View on GitHub
English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | Tiếng Việt | Français | Русский | Español | Português | Norsk | Svenska | Deutsch | Nederlands | Italiano
GAC は GitHub Copilot による認証をサポートしており、Copilot サブスクリプションを使用して OpenAI、Anthropic、Google などのモデルにアクセスできます — すべて GitHub Copilot プランに含まれています。
GitHub Copilot OAuth とは?
GitHub Copilot OAuth は Device Flow を使用します — ローカルコールバックサーバーを必要としない、安全なブラウザベースの認証方法です。URL にアクセスしてワンタイムコードを入力し、GAC が Copilot アクセスを使用することを承認します。背後で、GAC は長寿命の GitHub OAuth トークンを、Copilot API へのアクセスを許可する短寿命の Copilot セッショントークン(約30分)と交換します。
これにより、単一のサブスクリプションで複数のプロバイダーのモデルにアクセスできます:
- OpenAI —
gpt-5.6-luna,gpt-5.6-terra,gpt-5.6-sol,gpt-5.3-codex,gpt-5-mini - Anthropic —
claude-opus-5,claude-sonnet-5,claude-opus-4.8,claude-sonnet-4.6,claude-haiku-4.5 - Google —
gemini-3.8-flash,gemini-3.7-flash
利点
- マルチプロバイダーアクセス:単一のサブスクリプションで OpenAI、Anthropic、Google のモデルを使用
- コスト効果:別の API キーの支払いの代わりに既存の Copilot サブスクリプションを使用
- API キー管理不要:Device Flow 認証 — 回転や保存するキーなし
- GitHub Enterprise 対応:
--hostフラグで GHE インスタンスに対応
セットアップ
オプション 1:初期セットアップ中(推奨)
uvx gac init を実行するときは、プロバイダーとして「Copilot」を選択するだけです:
uvx gac init
ウィザードは次のことを行います:
- プロバイダーリストから「Copilot」を選択するように求めます
- ワンタイムコードを表示し、Device Flow 認証のためにブラウザを開きます
- OAuth トークンを
~/.gac/oauth/copilot.jsonに保存します - デフォルトモデルを設定します
オプション 2:後で Copilot に切り替える
すでに GAC を別のプロバイダーで構成している場合:
uvx gac model
プロバイダーリストから「Copilot」を選択して認証します。
オプション 3:直接ログイン
デフォルトモデルを変更せずに直接認証します:
uvx gac auth copilot login
GAC を通常通り使用する
認証後、通常どおり GAC を使用します:
# 変更をステージする
git add .
# Copilot で生成してコミットする
uvx gac
# または、単一のコミットのためにモデルを上書きする
uvx gac -m copilot:gpt-5.6-luna
uvx gac -m copilot:claude-sonnet-5
uvx gac -m copilot:gemini-3.8-flash
利用可能なモデル
Copilot は複数のプロバイダーのモデルへのアクセスを提供します。現在のモデルには次のものがあります:
| プロバイダー | モデル |
|---|---|
| OpenAI | gpt-5.6-luna, gpt-5.6-terra, gpt-5.6-sol, gpt-5.3-codex, gpt-5-mini |
| Anthropic | claude-opus-5, claude-sonnet-5, claude-opus-4.8, claude-sonnet-4.6, claude-haiku-4.5 |
gemini-3.8-flash, gemini-3.7-flash |
注意: ログイン後に表示されるモデルリストは参考情報であり、GitHub が新しいモデルを追加するにつれて古くなる可能性があります。最新の利用可能なモデルについては、GitHub Copilot ドキュメント を確認してください。
GitHub Enterprise
GitHub Enterprise インスタンスで認証するには:
uvx gac auth copilot login --host ghe.mycompany.com
GAC は GHE インスタンス用の正しい Device Flow と API エンドポイントを自動的に使用します。セッショントークンはホストごとにキャッシュされるため、異なる GHE インスタンスは個別に処理されます。
CLI コマンド
GAC は Copilot 認証管理用の専用 CLI コマンドを提供します:
ログイン
GitHub Copilot で認証または再認証します:
uvx gac auth copilot login
Device Flow ページでワンタイムコードを入力するためにブラウザが開きます。すでに認証されている場合、再認証するかどうかを確認されます。
GitHub Enterprise の場合:
uvx gac auth copilot login --host ghe.mycompany.com
ログアウト
保存された Copilot トークンを削除します:
uvx gac auth copilot logout
これにより、~/.gac/oauth/copilot.json に保存されたトークンファイルとセッションキャッシュが削除されます。
ステータス
現在の Copilot 認証ステータスを確認します:
uvx gac auth copilot status
または、すべてのプロバイダーを一度に確認します:
uvx gac auth
仕組み
Copilot 認証フローは ChatGPT や Claude Code OAuth とは異なります:
- Device Flow — GAC が GitHub にデバイスコードを要求し、それを表示します
- ブラウザ承認 — URL にアクセスしてコードを入力します
- トークンポーリング — 承認が完了するまで GAC が GitHub をポーリングします
- セッショントークン交換 — GitHub OAuth トークンが短寿命の Copilot セッショントークンと交換されます
- 自動リフレッシュ — セッショントークン(約30分)はキャッシュされた OAuth トークンから自動的に更新されます
PKCE ベースの OAuth(ChatGPT/Claude Code)とは異なり、Device Flow はローカルコールバックサーバーやポート管理を必要としません。
トラブルシューティング
「Copilot 認証が見つかりません」
認証するにはログインコマンドを実行します:
uvx gac auth copilot login
「Copilot セッショントークンを取得できませんでした」
これは、GAC が GitHub OAuth トークンを取得したが、Copilot セッショントークンと交換できなかったことを意味します。通常、これは次の理由によります:
- Copilot サブスクリプションなし — GitHub アカウントにアクティブな Copilot サブスクリプションがない
- トークン失効 — OAuth トークンが失効しました。
uvx gac auth copilot loginで再認証してください
セッショントークンの有効期限切れ
セッショントークンは約30分で有効期限が切れます。GAC はキャッシュされた OAuth トークンから自動的にリフレッシュするため、頻繁に再認証する必要はありません。自動リフレッシュが失敗する場合:
uvx gac auth copilot login
「無効または安全でないホスト名」
--host フラグは SSRF 攻撃を防ぐためにホスト名を厳格に検証します。このエラーが表示された場合:
- ホスト名にポートを含めていないことを確認してください(例:
ghe.company.com:8080ではなくghe.company.comを使用) - プロトコルやパスを含めないでください(例:
https://ghe.company.com/apiではなくghe.company.comを使用) - プライベート IP アドレスと
localhostはセキュリティ上の理由でブロックされています
GitHub Enterprise の問題
GHE 認証が失敗する場合:
- GHE インスタンスで Copilot が有効になっていることを確認してください
- GHE ホスト名がマシンからアクセス可能であることを確認してください
- GHE アカウントに Copilot ライセンスがあることを確認してください
--hostフラグを明示的に試してください:uvx gac auth copilot login --host ghe.mycompany.com
他の OAuth プロバイダーとの違い
| 機能 | ChatGPT OAuth | Claude Code | Copilot |
|---|---|---|---|
| 認証方法 | PKCE(ブラウザコールバック) | PKCE(ブラウザコールバック) | Device Flow(ワンタイムコード) |
| コールバックサーバー | ポート 1455-1465 | ポート 8765-8795 | 不要 |
| トークン有効期間 | 長寿命(自動リフレッシュ) | 有効期限あり(再認証) | セッション約30分(自動リフレッシュ) |
| モデル | Codex 最適化 OpenAI | Claude ファミリー | マルチプロバイダー(OpenAI + Anthropic + Google) |
| GHE 対応 | なし | なし | あり(--host フラグ) |
セキュリティに関する注意事項
- OAuth トークンをバージョン管理にコミットしないでください
- GAC は OAuth トークンを
~/.gac/oauth/copilot.jsonに保存します(プロジェクトディレクトリの外) - セッショントークンは
0o600権限で~/.gac/oauth/copilot_session.jsonにキャッシュされます - ホスト名は SSRF および URL インジェクション攻撃を防ぐために厳格に検証されます
- プライベート IP アドレス、ループバックアドレス、および
localhostはホスト名としてブロックされています - Device Flow はローカルポートを公開しないため、攻撃対象領域が削減されます