Skip to main content

執行期切換用於認證的 GitHub token

透過 Socialite 等驗證後,可依每位使用者以其 GitHub token 執行 Copilot CLI 的方式。
Personal Access Token 需具備 Copilot Requests 權限。Socialite 的 token 應該也需符合相同要求。 若無法從 Socialite 取得可用 token,可改為讓使用者直接輸入 PAT。
此方式僅可於 stdio 模式使用。 TCP 模式因為需要維持 Copilot CLI 程序運行,無法於執行期切換。 在 TCP 模式(cli_url)中指定 github_tokenuse_logged_in_user 會發生錯誤。
以下的「每個 session 的 GitHub token(v0.3.0+)」在 TCP 模式下也可以使用。

github_token 選項

這是 SDK 的官方選項。Token 會透過環境變數 COPILOT_SDK_AUTH_TOKEN 傳給 CLI。

use_logged_in_user 選項

指定 github_tokenuse_logged_in_user 會自動變為 false。 如此 CLI 就不會使用已儲存的 OAuth token 或 gh CLI 認證,僅使用明確傳入的 token。 也可以明確將 use_logged_in_user 設為 true
若在未提供 github_token 的情況下將 use_logged_in_user 設為 false,則會追加 --no-auto-login 旗標,CLI 不會自動登入。

每個 session 的 GitHub token(v0.3.0+)

透過 SessionConfiggitHubToken 欄位,可於同一 CLI 程序內為每個 session 指定不同的 GitHub token(支援多租戶)。 由於此 token 是作為 session.create JSON-RPC 的參數傳遞,在 stdio 與 TCP 模式皆可使用。即使在 CLI 已啟動的 TCP 模式,也能以 session 為單位切換 token。
TCP 模式的使用範例:
與 client 層級的 github_token(CLI 程序啟動時的 token)為獨立運作。 若想以 session 為單位切換使用者 token,可使用此欄位。
最新資訊請參考 GitHub 儲存庫
最後修改於 2026年8月2日