認證
Copilot SDK 支援多種認證方式。請依用途選擇。認證方式
關於 BYOK 請參考 Custom providers。
GitHub 登入(CLI)
若copilot 或 gh CLI 已登入,且未指定其他選項,將使用已儲存的認證資訊。
OAuth GitHub App / PAT
將透過 OAuth 流程取得的使用者 access 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 的結果來確認。
為互動式登入選擇帳戶
透過 session RPC 列舉loginAccounts,即可取得可在指定 provider 重複使用的已儲存身分。每個項目的 label 用於顯示,active 表示該身分是否與目前 session 的使用中帳戶相符。accountId 是由 provider 擁有的不透明 ID。請勿解析或修改,直接原樣傳給登入請求。
mode: 'default' 可依 provider 的一般行為重複使用已儲存的身分。使用 mode: 'selectAccount' 則會明確顯示 provider 的帳戶選擇器,此時請勿傳入 accountId。begin(LoginProviderKind::ENTRA) 等既有呼叫方式仍可繼續使用。
最新資訊請參考 GitHub 儲存庫。