注意
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 并通过 OAuth 登录 GitHub 。 -
凭据安全地存储在系统密钥链中。
-
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 应用程序
-
构建在GitHub Copilot 之上的软件即服务(SaaS)应用程序
-
需要代表不同用户发出请求的任何多用户应用程序
环境变量
对于自动化、CI/CD 管道和服务器到服务器方案,可以使用环境变量进行身份验证。
**支持的环境变量(按优先级顺序):**
-
`COPILOT_GITHUB_TOKEN` - 建议用于显式 Copilot 用法 -
`GH_TOKEN` — GitHub CLI 兼容 -
`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 令牌** - 含 `COPILOT_API_URL` 的 `GITHUB_COPILOT_API_TOKEN` -
**环境变量令牌** - `COPILOT_GITHUB_TOKEN` → `GH_TOKEN` → `GITHUB_TOKEN` -
**存储的 OAuth 凭据** — 从以前的 `copilot` CLI 登录 -
** GitHub CLI ** — `gh auth` 认证凭据
禁用自动登录
若要防止 SDK 自动使用存储的凭据或 GitHub CLI 身份验证,请将 useLoggedInUser 选项设置为 false:
const client = new CopilotClient({
useLoggedInUser: false, // Only use explicit tokens
});
有关其他语言的示例,请参阅存储库中的github/copilot-sdk。
后续步骤
- 自带密钥(BYOK)
- MCP 服务器文档 - 使用 SDK 连接到外部工具