メモ
Copilot SDK は現在 パブリック プレビューです。 機能と可用性は変更される場合があります。
認証方法の概要
GitHub Copilot SDK では、さまざまなユース ケースに合わせて複数の認証方法がサポートされています。
| メソッド | 利用シーン | Copilot サブスクリプションが必要 | |--------|----------|-------------------------------| | GitHub サインイン ユーザー | ユーザーがサインインする対話型アプリ GitHub | はい | | OAuth GitHub アプリ | OAuth を介してユーザーに代わって動作するアプリ | はい | | 環境変数 | CI/CD, 自動化, サーバー間 | はい | | BYOK (独自のキーを持ち込む) | 独自の API キーの使用 (Azure AI Foundry、OpenAI など) | いいえ |
GitHub サインイン ユーザー
これは、 GitHub Copilot CLI(コマンドラインインターフェース) を対話形式で実行する場合の既定の認証方法です。 GitHub Copilot CLI の認証 を参照してください。 ユーザーは GitHub OAuth デバイス フローを使用して認証を行い、SDK は保存された資格情報を使用します。
**しくみ**:
-
ユーザーは
copilotCLI を実行し、 GitHub OAuth 経由でサインインします。 -
資格情報は、システム キーチェーンに安全に格納されます。
-
SDK では、保存されている資格情報が自動的に使用されます。
**SDK の構成:**
import { CopilotClient } from "@github/copilot-sdk";
// Default: uses signed-in user credentials
const client = new CopilotClient();
他の言語の例については、 リポジトリのgithub/copilot-sdkを参照してください。
**このメソッドを使用する場合:**
- ユーザーが直接対話するデスクトップ アプリケーション
- 開発環境とテスト環境
- ユーザーが対話形式でサインインできるシナリオ
OAuth GitHub アプリ
OAuth GitHub アプリを使用して、アプリケーションを通じてユーザーを認証し、その資格情報を SDK に渡します。 これにより、アプリケーションは、アプリを承認するユーザーに代わって、 GitHub Copilot API 要求を行うことができます。
**しくみ**:
- ユーザーが OAuth GitHub アプリを承認します。
- アプリは、ユーザー アクセス トークン (
gho_またはghu_プレフィックス) を受け取ります。 -
`githubToken` オプションを使用して SDK にトークンを渡します。 **SDK の構成:**
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient({
githubToken: userAccessToken, // Token from OAuth flow
useLoggedInUser: false, // Don't use stored CLI credentials
});
他の言語の例については、 リポジトリのgithub/copilot-sdkを参照してください。
**サポートされているトークンの種類:**
-
gho_— OAuth ユーザー アクセス トークン -
ghu_— GitHub アプリ ユーザー アクセス トークン -
github_pat_— Fine-grained personal access tokens**サポート対象外:** -
ghp_— Personal access tokens (classic) (閉じる)**このメソッドを使用する場合:** -
GitHub を経由してユーザーがサインインする Web アプリケーション
-
サービスとしてのソフトウェア (SaaS) アプリケーションを基盤にした構築 GitHub Copilot
-
異なるユーザーに代わって要求を行う必要があるマルチユーザー アプリケーション
環境変数
自動化、CI/CD パイプライン、およびサーバー間のシナリオでは、環境変数を使用して認証できます。
**サポートされている環境変数 (優先度順):**
1.
COPILOT_GITHUB_TOKEN — Copilot の明示的な使用を推奨
1.
GH_TOKEN— 互換性GitHub CLI
1.
GITHUB_TOKEN— 互換性GitHub Actions
SDK は、コードの変更を必要とせずに、これらの環境変数を自動的に検出して使用します。
import { CopilotClient } from "@github/copilot-sdk";
// Token is read from environment variable automatically
const client = new CopilotClient();
**このメソッドを使用する場合:**
- CI/CD パイプライン (GitHub Actions、Jenkins など)
- 自動テスト
- サービス アカウントを持つサーバー側アプリケーション
- 対話型サインインを使用しない場合の開発
BYOK (独自のキーを持ち込む)
BYOK を使用すると、Azure AI Foundry、OpenAI、Anthropic などのモデル プロバイダーから独自の API キーを使用できます。 これにより、 GitHub Copilot 認証が完全にバイパスされます。
**主な利点:**
- GitHub Copilot サブスクリプションは必要ありません
- エンタープライズ モデルのデプロイを使用する
- モデルプロバイダーへの直接請求
- Azure AI Foundry、OpenAI、Anthropic、および OpenAI 互換エンドポイントのサポート
プロバイダーの構成オプション、制限事項、コード例などの完全なセットアップ手順については、 鍵を持ち込む (BYOK) を参照してください。
認証の優先順位
複数の認証方法を使用できる場合、SDK では次の優先順位で使用されます。
-
**明示的な `githubToken`** — SDK コンストラクターに直接渡されるトークン -
**ダイレクト API トークン** — を使用して`GITHUB_COPILOT_API_TOKEN``COPILOT_API_URL` -
**環境変数トークン** — `COPILOT_GITHUB_TOKEN` → `GH_TOKEN` → `GITHUB_TOKEN` -
**保存された OAuth 資格情報** — 以前の `copilot` CLI サインインから -
** GitHub CLI ** — `gh auth` 資格情報
自動サインインの無効化
保存された資格情報または GitHub CLI 認証を SDK が自動的に使用できないようにするには、 useLoggedInUser オプションを falseに設定します。
const client = new CopilotClient({
useLoggedInUser: false, // Only use explicit tokens
});
他の言語の例については、 リポジトリのgithub/copilot-sdkを参照してください。
次のステップ
- 鍵を持ち込む (BYOK)
- MCP サーバーのドキュメント - SDK を使用して外部ツールに接続する