Autenticación
Copilot SDK admite varios métodos de autenticación. Elige el que mejor se adapte a tu caso de uso.Métodos de autenticación
Para BYOK consulta Custom providers.
Login con GitHub (CLI)
Si has hecho login con el CLIcopilot o con gh, cuando no especificas nada se usan las credenciales guardadas.
OAuth GitHub App / PAT
Pasa agithub_token un user access token obtenido con OAuth o un fine-grained PAT.
- Se esperan tokens
gho_/ghu_/github_pat_ ghp_(Classic PAT) está desaconsejado
github_token, use_logged_in_user pasa automáticamente a false. Si quieres alternar explícitamente:
github_token y use_logged_in_user solo funcionan en modo stdio. En modo TCP, el CLI de Copilot debe estar ya autenticado por su cuenta.
Variables de entorno
Si pasas el token por variables de entorno, el CLI las detecta automáticamente. El orden de prioridad es de arriba a abajo:COPILOT_GITHUB_TOKENGH_TOKENGITHUB_TOKEN
Orden de prioridad de la autenticación
El SDK resuelve las credenciales en este orden:github_token(indicado explícitamente)- Token por variable de entorno (
COPILOT_GITHUB_TOKEN→GH_TOKEN→GITHUB_TOKEN) - Credenciales OAuth guardadas por el CLI
- Credenciales del CLI
gh
Desactivar el login automático
Si no quieres usar las credenciales guardadas, ponuse_logged_in_user a false.
github_token, solo se admite en modo stdio. En TCP el CLI de Copilot debe estar ya autenticado.
Comprobar el estado de autenticación
Puedes consultar el resultado deauth.getStatus.
Seleccionar una cuenta para el inicio de sesión interactivo
EnumeraloginAccounts mediante la RPC de sesión para obtener las identidades guardadas que puedes reutilizar con un proveedor determinado. El label de cada elemento sirve para mostrarlo, y active indica si la identidad coincide con la cuenta activa de la sesión actual. accountId es un ID opaco que pertenece al proveedor. Pásalo tal cual a la solicitud de inicio de sesión, sin analizarlo ni modificarlo.
mode: 'default' para reutilizar una identidad guardada con el comportamiento normal del proveedor. Usa mode: 'selectAccount' para mostrar explícitamente el selector de cuentas del proveedor. En ese caso, no pases accountId. Las llamadas existentes como begin(LoginProviderKind::ENTRA) siguen funcionando.
Consulta la información más reciente en el repositorio de GitHub.