Skip to main content

Copilot SDK を使用した認証

デプロイ シナリオに最適な GitHub Copilot SDK で認証方法を選択します。

この機能を使用できるユーザーについて

GitHub Copilot SDK は、すべての Copilot プランで使用できます。

メモ

          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 は保存された資格情報を使用します。

          **しくみ**:
  1. ユーザーは copilot CLI を実行し、 GitHub OAuth 経由でサインインします。

  2. 資格情報は、システム キーチェーンに安全に格納されます。

  3. 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 要求を行うことができます。

          **しくみ**:
  1. ユーザーが OAuth GitHub アプリを承認します。
  2. アプリは、ユーザー アクセス トークン (gho_ または ghu_ プレフィックス) を受け取ります。
  3.        `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 では次の優先順位で使用されます。

  1.        **明示的な `githubToken`** — SDK コンストラクターに直接渡されるトークン
    
  2.        **ダイレクト API トークン** — を使用して`GITHUB_COPILOT_API_TOKEN``COPILOT_API_URL`
    
  3.        **環境変数トークン** — `COPILOT_GITHUB_TOKEN` → `GH_TOKEN` → `GITHUB_TOKEN`
    
  4.        **保存された OAuth 資格情報** — 以前の `copilot` CLI サインインから
    
  5.        **
           GitHub CLI
           ** — `gh auth` 資格情報
    

自動サインインの無効化

保存された資格情報または GitHub CLI 認証を SDK が自動的に使用できないようにするには、 useLoggedInUser オプションを falseに設定します。

const client = new CopilotClient({
    useLoggedInUser: false,  // Only use explicit tokens
});

他の言語の例については、 リポジトリのgithub/copilot-sdkを参照してください。

次のステップ