SDK 认证与优先级
选择用户身份、环境令牌、组织身份或 BYOK,并避免意外回退到本机登录。
认证方式决定请求使用哪个身份和用量归属。SDK 可以使用个人 Copilot 身份、组织自动化身份,或直接访问自有模型提供方。
选择方式
| 方式 | 使用场景 | Copilot 资格 |
|---|---|---|
| 已登录 CLI 用户 | 本机交互应用与开发 | 用户需有效订阅 |
| OAuth / GitHub App user token | 应用代表已登录用户请求 | 用户需有效订阅 |
| 用户令牌环境变量 | 自动化与 CI | 对应用户需有效订阅 |
| 组织安装令牌 | 组织归属的服务自动化 | 不需用户订阅,但需组织策略允许 |
| BYOK | 自有云端或本地模型 | 无需 Copilot 订阅 |
用户令牌配置
import { CopilotClient } from "@github/copilot-sdk";
const client = new CopilotClient({
gitHubToken: userAccessToken,
useLoggedInUser: false,
});userAccessToken 由应用认证流程提供。支持 gho_ OAuth user token、ghu_ GitHub App user token、github_pat_ fine-grained PAT;认证专题把 ghp_ classic PAT 列为不支持。
useLoggedInUser: false 禁止回退到已保存 CLI 用户或 gh auth。环境令牌仍有自己的认证路径,不应把这一选项解释成清空进程中所有环境变量。
ghs_ installation token 不属于上述显式用户令牌选项,必须按组织服务认证走 runtime 环境。
认证优先级
官方认证专题列出:
- 显式 client 或 session
gitHubToken。 GITHUB_COPILOT_API_TOKEN与COPILOT_API_URL组成的 direct API token 路径。COPILOT_GITHUB_TOKEN→GH_TOKEN→GITHUB_TOKEN。- 已保存的 CLI OAuth 凭据。
- GitHub CLI
gh auth凭据。
会话级用户身份用于共享服务,不应让服务器启动者的个人登录替代请求用户。默认本机配置会读取已登录凭据;后端要明确控制输入来源。
过期与刷新
应用负责用户 OAuth 的存储、刷新和失效处理。短期用户令牌可注册会话级 token provider,runtime 在规定时机调用;这不意味着 SDK 自动完成 OAuth 授权流程。
BYOK 的 bearerTokenProvider 则用于模型提供方,不是 GitHub 用户令牌回调,详见BYOK。