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

# Autenticazione - GitHub Copilot SDK for Laravel

> Comprendi i metodi di autenticazione di Laravel Copilot SDK e scegli quello più adatto a sviluppo locale, CI, esecuzione lato server e BYOK.

## Autenticazione

Copilot SDK supporta più metodi di autenticazione. Scegli quello adatto al tuo caso d'uso.

## Metodi di autenticazione

| Metodo                    | Uso principale                | Abbonamento Copilot | Note                                          |
| ------------------------- | ----------------------------- | ------------------- | --------------------------------------------- |
| Login GitHub (CLI)        | Sviluppo · esecuzione manuale | Richiesto           | Usa le credenziali di login del CLI `copilot` |
| OAuth GitHub App / PAT    | Token per singolo utente      | Richiesto           | Specificato tramite `github_token`            |
| Variabili d'ambiente      | CI/CD · uso lato server       | Richiesto           | `COPILOT_GITHUB_TOKEN` ecc.                   |
| BYOK (Bring Your Own Key) | Provider di modelli proprio   | Non richiesto       | Configurazione di un provider personalizzato  |

Per BYOK consulta [Custom providers](/it/packages/laravel-copilot-sdk/custom-providers).

## Login GitHub (CLI)

Se sei già loggato con il CLI `copilot` o `gh` e non specifichi nulla, vengono usate le credenziali salvate.

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

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

## OAuth GitHub App / PAT

Passa a `github_token` il token di accesso utente ottenuto tramite flusso OAuth oppure un PAT fine-grained.

* Sono attesi `gho_` / `ghu_` / `github_pat_`
* `ghp_` (Classic PAT) è deprecato

```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();
```

Specificando `github_token`, `use_logged_in_user` viene impostato automaticamente a `false`. Se vuoi cambiarlo esplicitamente, procedi così.

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

Per i dettagli consulta [GitHub token](/it/packages/laravel-copilot-sdk/github-token).
`github_token` e `use_logged_in_user` sono disponibili solo in modalità stdio. In modalità TCP la Copilot CLI deve essere già autenticata.

## Variabili d'ambiente

Se passi il token tramite variabili d'ambiente, la CLI lo rileva automaticamente. L'ordine di priorità è dal primo all'ultimo.

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');
```

In modalità TCP imposta le variabili d'ambiente sul server CLI.

## Priorità dell'autenticazione

L'SDK risolve le credenziali nel seguente ordine.

1. `github_token` (specificato esplicitamente)
2. Token da variabile d'ambiente (`COPILOT_GITHUB_TOKEN` → `GH_TOKEN` → `GITHUB_TOKEN`)
3. Credenziali OAuth salvate dalla CLI
4. Credenziali del CLI `gh`

## Disabilitare il login automatico

Se non vuoi usare le credenziali salvate, imposta `use_logged_in_user` a `false`.

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

$response = Copilot::useStdio([
    'use_logged_in_user' => false,
])->run(prompt: 'Hello');
```

Come `github_token`, è supportato solo in modalità stdio. In modalità TCP la Copilot CLI deve essere già autenticata.

## Verifica dello stato di autenticazione

Puoi verificarlo ottenendo il risultato di `auth.getStatus`.

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

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

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

<Info>
  Per le informazioni più recenti fai riferimento al [repository GitHub](https://github.com/invokable/laravel-copilot-sdk).
</Info>


## Related topics

- [GitHub Actions - GitHub Copilot SDK for Laravel](/it/packages/laravel-copilot-sdk/github-actions.md)
- [GitHub Copilot SDK for Laravel](/it/packages/laravel-copilot-sdk/index.md)
- [Introduzione - GitHub Copilot SDK for Laravel](/it/packages/laravel-copilot-sdk/getting-started.md)
- [Laravel Cloud - GitHub Copilot SDK for Laravel](/it/packages/laravel-copilot-sdk/laravel-cloud.md)
- [Token GitHub](/it/packages/laravel-copilot-sdk/github-token.md)
