Passer au contenu principal

Authentification

Copilot SDK prend en charge plusieurs méthodes d’authentification. Choisissez celle adaptée à votre cas d’usage.

Méthodes d’authentification

MéthodeUsage principalAbonnement CopilotRemarques
Connexion GitHub (CLI)Développement / exécution manuelleRequisUtilise les identifiants de connexion du CLI copilot
GitHub App OAuth / PATToken par utilisateurRequisSpécifié via github_token
Variables d’environnementCI/CD, exploitation serveurRequisCOPILOT_GITHUB_TOKEN, etc.
BYOK (Bring Your Own Key)Fournisseur de modèle personnelNon requisConfiguration de fournisseur personnalisé
Pour BYOK, voir Custom providers.

Connexion GitHub (CLI)

Si vous êtes déjà connecté au CLI copilot ou gh, les identifiants enregistrés sont utilisés lorsque rien n’est spécifié.
use Revolution\Copilot\Facades\Copilot;

$response = Copilot::run(prompt: 'Hello');

GitHub App OAuth / PAT

Passez à github_token un token d’accès utilisateur obtenu via le flux OAuth ou un PAT à granularité fine.
  • Formats attendus : gho_ / ghu_ / github_pat_
  • ghp_ (PAT classique) est déconseillé
use Revolution\Copilot\Facades\Copilot;

$config = array_merge(config('copilot'), [
    'github_token' => $user->github_token,
]);

$response = Copilot::useStdio($config)->run(prompt: '...');
Copilot::stop();
En spécifiant github_token, use_logged_in_user bascule automatiquement à false. Pour l’activer explicitement :
$config = [
    'github_token' => $user->github_token,
    'use_logged_in_user' => true,
];
Voir GitHub token pour plus de détails. github_token et use_logged_in_user ne sont utilisables qu’en mode stdio. En mode TCP, l’authentification doit être effectuée côté Copilot CLI.

Variables d’environnement

Si vous transmettez le token via une variable d’environnement, le CLI le détecte automatiquement. L’ordre de priorité est le suivant, du plus prioritaire au moins prioritaire :
  1. COPILOT_GITHUB_TOKEN
  2. GH_TOKEN
  3. GITHUB_TOKEN
COPILOT_GITHUB_TOKEN=github_pat_xxx
use Revolution\Copilot\Facades\Copilot;

$response = Copilot::run(prompt: 'Hello');
En mode TCP, configurez les variables d’environnement côté serveur CLI.

Priorité de l’authentification

Le SDK résout les identifiants dans l’ordre suivant :
  1. github_token (spécifié explicitement)
  2. Tokens de variables d’environnement (COPILOT_GITHUB_TOKENGH_TOKENGITHUB_TOKEN)
  3. Identifiants OAuth enregistrés dans le CLI
  4. Identifiants du CLI gh

Désactiver l’auto-connexion

Pour ne pas utiliser les identifiants enregistrés, mettez use_logged_in_user à false.
use Revolution\Copilot\Facades\Copilot;

$response = Copilot::useStdio([
    'use_logged_in_user' => false,
])->run(prompt: 'Hello');
Comme pour github_token, cela ne fonctionne qu’en mode stdio. En mode TCP, l’authentification doit être faite côté Copilot CLI.

Vérifier l’état d’authentification

Vous pouvez récupérer et inspecter le résultat de auth.getStatus.
use Revolution\Copilot\Facades\Copilot;

$status = Copilot::client()->getAuthStatus();

if (! $status->isAuthenticated) {
    // Non authentifié
}
Pour les dernières informations, consultez le dépôt GitHub.
Dernière modification le 13 juillet 2026