> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Authentification - GitHub Copilot SDK pour Laravel

> Comprenez les méthodes d'authentification de Laravel Copilot SDK et choisissez celle qui convient au développement local, au CI, à l'exécution serveur ou au BYOK.

## Authentification

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

## Méthodes d'authentification

| Méthode                   | Usage principal                    | Abonnement Copilot | Remarques                                              |
| ------------------------- | ---------------------------------- | ------------------ | ------------------------------------------------------ |
| Connexion GitHub (CLI)    | Développement / exécution manuelle | Requis             | Utilise les identifiants de connexion du CLI `copilot` |
| GitHub App OAuth / PAT    | Token par utilisateur              | Requis             | Spécifié via `github_token`                            |
| Variables d'environnement | CI/CD, exploitation serveur        | Requis             | `COPILOT_GITHUB_TOKEN`, etc.                           |
| BYOK (Bring Your Own Key) | Fournisseur de modèle personnel    | Non requis         | Configuration de fournisseur personnalisé              |

Pour BYOK, voir [Custom providers](/fr/packages/laravel-copilot-sdk/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é.

```php theme={null}
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é

```php theme={null}
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 :

```php theme={null}
$config = [
    'github_token' => $user->github_token,
    'use_logged_in_user' => true,
];
```

Voir [GitHub token](/fr/packages/laravel-copilot-sdk/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`

```dotenv theme={null}
COPILOT_GITHUB_TOKEN=github_pat_xxx
```

```php theme={null}
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_TOKEN` → `GH_TOKEN` → `GITHUB_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`.

```php theme={null}
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`.

```php theme={null}
use Revolution\Copilot\Facades\Copilot;

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

if (! $status->isAuthenticated) {
    // Non authentifié
}
```

<Info>
  Pour les dernières informations, consultez le [dépôt GitHub](https://github.com/invokable/laravel-copilot-sdk).
</Info>


## Related topics

- [GitHub Actions - GitHub Copilot SDK pour Laravel](/fr/packages/laravel-copilot-sdk/github-actions.md)
- [GitHub Copilot SDK pour Laravel](/fr/packages/laravel-copilot-sdk/index.md)
- [Démarrer - GitHub Copilot SDK pour Laravel](/fr/packages/laravel-copilot-sdk/getting-started.md)
- [Laravel Cloud - GitHub Copilot SDK pour Laravel](/fr/packages/laravel-copilot-sdk/laravel-cloud.md)
- [Token GitHub](/fr/packages/laravel-copilot-sdk/github-token.md)
