认证
Copilot SDK 支持多种认证方式。请根据用途选择。认证方式
| 方式 | 主要用途 | Copilot 订阅 | 备注 |
|---|---|---|---|
| GitHub 登录(CLI) | 开发、手动执行 | 需要 | 使用 copilot CLI 的登录信息 |
| OAuth GitHub App / PAT | 每个用户的 token | 需要 | 通过 github_token 指定 |
| 环境变量 | CI/CD、服务器运行 | 需要 | COPILOT_GITHUB_TOKEN 等 |
| BYOK(Bring Your Own Key) | 自有的模型提供商 | 不需要 | 自定义提供商配置 |
GitHub 登录(CLI)
如果你已经通过copilot 或 gh CLI 登录,那么只要不指定任何东西,就会使用保存的认证信息。
OAuth GitHub App / PAT
将通过 OAuth 流程获取的用户访问 token,或者 Fine-grained PAT 传给github_token。
- 预期为
gho_/ghu_/github_pat_ ghp_(Classic PAT)不推荐
github_token 时 use_logged_in_user 会自动变为 false。如果想显式切换,方式如下。
github_token 和 use_logged_in_user 仅在 stdio 模式下有效。在 TCP 模式下,需要在 Copilot CLI 侧已经完成认证。
环境变量
通过环境变量传递 token 时,CLI 会自动检测。优先级从上到下如下。COPILOT_GITHUB_TOKENGH_TOKENGITHUB_TOKEN
认证的优先级
SDK 会按如下顺序解析认证信息。github_token(显式指定)- 环境变量 token(
COPILOT_GITHUB_TOKEN→GH_TOKEN→GITHUB_TOKEN) - CLI 中保存的 OAuth 认证信息
ghCLI 的认证信息
禁用自动登录
如果不想使用已保存的认证信息,请将use_logged_in_user 设为 false。
github_token 一样,仅在 stdio 模式下支持。在 TCP 模式下,需要在 Copilot CLI 侧已经完成认证。
检查认证状态
可以通过获取auth.getStatus 的结果来检查。
最新信息请参考 GitHub 仓库。