Skip to content
FunCoding

Search

Search docs, Skills and MCP

SDK 认证与优先级

选择用户身份、环境令牌、组织身份或 BYOK,并避免意外回退到本机登录。

This page has not been translated into English yet. The original Chinese version is shown below.

认证方式决定请求使用哪个身份和用量归属。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 环境。

认证优先级

官方认证专题列出:

  1. 显式 client 或 session gitHubToken。
  2. GITHUB_COPILOT_API_TOKEN 与 COPILOT_API_URL 组成的 direct API token 路径。
  3. COPILOT_GITHUB_TOKEN → GH_TOKEN → GITHUB_TOKEN。
  4. 已保存的 CLI OAuth 凭据。
  5. GitHub CLI gh auth 凭据。

会话级用户身份用于共享服务,不应让服务器启动者的个人登录替代请求用户。默认本机配置会读取已登录凭据;后端要明确控制输入来源。

过期与刷新

应用负责用户 OAuth 的存储、刷新和失效处理。短期用户令牌可注册会话级 token provider,runtime 在规定时机调用;这不意味着 SDK 自动完成 OAuth 授权流程。

BYOK 的 bearerTokenProvider 则用于模型提供方,不是 GitHub 用户令牌回调,详见BYOK。