# Autenticando GitHub Copilot CLI

Autentique-se Copilot CLI para que você possa usar Copilot diretamente da linha de comando.

## Sobre a autenticação

Se você usar suas próprias chaves de API do provedor LLM (BYOK), GitHub a autenticação não será necessária.

A autenticação é necessária para qualquer outro GitHub Copilot CLI uso.

Quando a autenticação é necessária, Copilot CLI dá suporte a vários métodos. O método usado depende se você está trabalhando interativamente ou em um ambiente automatizado.

* **OAuth**: o método padrão e recomendado para uso interativo. Há dois fluxos OAuth. O fluxo do navegador (web) abre seu navegador para autorizar o login e o conclui em um callback local de loopback. O fluxo de código do dispositivo exibe um código único que você insere no navegador. O fluxo do navegador é o padrão em um desktop local, e ambientes remotos ou sem interface gráfica conhecidos (incluindo SSH, GitHub Codespaces, contêineres de desenvolvimento e CI) usam por padrão o fluxo de código de dispositivo. Consulte [Autenticação com OAuth](#authenticating-with-oauth).
* variáveis de ambiente: As recomendadas para pipelines de CI/CD, contêineres e ambientes não interativos. Você define um token com suporte como uma variável de ambiente (`COPILOT_GITHUB_TOKEN`ou `GH_TOKEN``GITHUB_TOKEN`) e a CLI o usa automaticamente sem solicitar. Consulte [Autenticação com variáveis de ambiente](#authenticating-with-environment-variables).
* **GitHub CLI fallback**: se você tiver GitHub CLI (`gh`) (observação: a `gh` CLI, não `copilot`) instalada e autenticada, Copilot CLI poderá usar seu token automaticamente. Esse é o método de prioridade mais baixo e é ativado somente quando nenhuma outra credencial é encontrada. Consulte [Autenticação com GitHub CLI](#authenticating-with-github-cli).

Depois de autenticado, Copilot CLI lembra o logon e usa automaticamente o token para todas as Copilot solicitações de API. Você pode fazer logon com várias contas e a CLI se lembrará da conta usada pela última vez. O tempo de vida e a expiração do token dependem de como o token foi criado nas configurações de sua conta ou organização.

## Uso não autenticado

Se você configurar Copilot CLI para usar suas próprias CHAVES de API do provedor LLM (BYOK), GitHub a autenticação **não será necessária**.
Copilot CLI pode se conectar diretamente ao provedor configurado sem uma GitHub conta ou token.

No entanto, sem GitHub autenticação, os seguintes recursos **não estão disponíveis**:

* `/delegate`: requer Copilot cloud agent, que é executado nos servidores de GitHub
* GitHub Servidor MCP: requer autenticação para acessar GitHub APIs
* GitHub Pesquisa de Código: requer autenticação para consultar GitHubo índice de pesquisa

Você pode combinar o BYOK com a autenticação GitHub para unir o melhor dos dois mundos: seu modelo preferido para respostas de IA e o acesso a recursos hospedados em GitHub, como `/delegate` e pesquisa de código.

### Modo offline

Se você definir a variável de ambiente `COPILOT_OFFLINE` para `true`, Copilot CLI será executada sem entrar em contato com os servidores de GitHub. No modo offline:

* Nenhuma GitHub autenticação será tentada.
* A CLI só faz solicitações de rede para seu provedor BYOK configurado.
* A telemetria está totalmente desabilitada.

O modo offline é **totalmente isolado da Internet** apenas quando o provedor BYOK é local ou está no mesmo ambiente isolado (por exemplo, um modelo executado localmente, sem acesso à rede externa). Se `COPILOT_PROVIDER_BASE_URL` apontar para um endpoint remoto ou acessível pela Internet, os prompts e o contexto de código continuarão a ser enviados pela rede para esse fornecedor. Sem o modo offline, mesmo ao usar BYOK sem GitHub autenticação, a telemetria ainda é enviada normalmente.

### Tipos de token com suporte

| Tipo de token                                   | Prefixo       | Suportado | Anotações                                                                                                        |
| ----------------------------------------------- | ------------- | --------- | ---------------------------------------------------------------------------------------------------------------- |
| Token OAuth (fluxo de navegador ou dispositivo) | `gho_`        | Yes       | Método padrão por meio de `copilot login`                                                                        |
| PAT refinado                                    | `github_pat_` | Yes       | Deve ser propriedade da sua conta pessoal (não de uma organização) com a permissão de conta **Copilot Requests** |
| GitHub aplicativo usuário-para-servidor         | `ghu_`        | Yes       | Por meio da variável de ambiente                                                                                 |
| PAT clássico                                    | `ghp_`        | Não       | Não há suporte para Copilot CLI                                                                                  |

### Como Copilot CLI armazena credenciais

Por padrão, a CLI armazena o token OAuth no conjunto de chaves do sistema operacional sob o nome `copilot-cli`do serviço:

| Plataforma | Conjunto de chaves                 |
| ---------- | ---------------------------------- |
| macOS      | Acesso às Chaves                   |
| Windows    | Gerenciador de Credenciais         |
| Linux      | libsecret (GNOME Keyring, KWallet) |

Se o keychain do sistema não estiver disponível – por exemplo, em um servidor Linux sem interface gráfica e sem `libsecret` instalado – a CLI solicitará que você armazene o token em um arquivo de configuração de texto simples em `~/.copilot/config.json`.

Ao executar um comando, Copilot CLI verifique se há credenciais na seguinte ordem:

1. ```
             Variável de ambiente `COPILOT_GITHUB_TOKEN`
   ```
2. ```
             Variável de ambiente `GH_TOKEN`
   ```
3. ```
             Variável de ambiente `GITHUB_TOKEN`
   ```
4. Token OAuth do keychain do sistema
5. Fallback da CLI do GitHub (`gh auth token`)

> \[!NOTE]
>
> * Uma variável de ambiente substitui silenciosamente um token OAuth armazenado. Se você definir `GH_TOKEN` para outra ferramenta, a CLI usará esse token em vez do token OAuth de `copilot login`. Para evitar um comportamento inesperado, desconjunta variáveis de ambiente que você não pretende que a CLI use. Há uma exceção: em GitHub Codespaces, o `GITHUB_TOKEN` que é injetado automaticamente não prevalece sobre uma conta na qual você fez login usando `/login`. A `GITHUB_TOKEN`, `COPILOT_GITHUB_TOKEN`ou `GH_TOKEN` que você exporta explicitamente ainda faz.
> * Quando você configura variáveis de ambiente do provedor BYOK (por exemplo, `COPILOT_PROVIDER_BASE_URL`, ), `COPILOT_PROVIDER_API_KEY`Copilot CLI usa-as para solicitações de modelo de IA, independentemente do status GitHub de autenticação.
>   GitHub Os tokens são necessários apenas para recursos hospedados em GitHub.

## Autenticação com OAuth

O OAuth é o método de autenticação padrão para uso interativo. Você pode autenticar executando `/login` a partir de Copilot CLI ou `copilot login` através de seu terminal. Ambos oferecem um fluxo de navegador (Web) e um fluxo de código do dispositivo.

### Autenticar com `/login`

1. De Copilot CLI, execute `/login`.

   ```bash copy
   /login
   ```

2. Selecione a conta com a qual você deseja autenticar. Para GitHub Enterprise Cloud com residência de dados, informe o nome do host da sua instância

   ```text
   What account do you want to log into?
    1. GitHub.com
    2. GitHub Enterprise Cloud with data residency (*.ghe.com)
   ```

3. Escolha como você deseja entrar. A opção recomendada é listada primeiro e depende do seu ambiente: o fluxo do navegador em um terminal local ou o fluxo de código do dispositivo em um ambiente remoto ou sem cabeça. O exemplo a seguir mostra o prompt em um terminal local:

   ```text
   How do you want to sign in?
    1. Sign in with your browser (recommended)
    2. Sign in with a device code
   ```

4. Conclua o fluxo selecionado.

   * **Navegador**: Copilot CLI abre seu navegador para que você possa autorizar a entrada. Se o navegador não abrir automaticamente, o terminal exibirá uma URL que você pode visitar.

   * **Código do dispositivo**: A CLI exibe um código de usuário de uso único e pode copiá-lo para a sua área de transferência e abrir o navegador para você.

     ```text
     Waiting for authorization...
     Enter one-time code: 1234-5678 at http://gfffh3e2b966b640040f3spupff9onxw0u65p6.ffgi.yc2.bjmu.edu.cn/login/device
     Press any key to copy to clipboard and open browser...
     ```

     Acesse a URL de verificação em `http://gfffh3e2b966b640040f3spupff9onxw0u65p6.ffgi.yc2.bjmu.edu.cn/login/device` caso o navegador não tenha aberto automaticamente e, em seguida, cole o código de uso único no campo da página.

5. Se sua organização usar o SSO do SAML, clique em **Authorize** ao lado de cada organização à qual você deseja conceder access.

6. Examine as permissões solicitadas e clique em **Authorize GitHub Copilot CLI**.

7. Retorne ao terminal. A CLI exibe uma mensagem de êxito quando a autenticação é concluída.

   ```text
   Signed in successfully as Octocat. You can now use Copilot.
   ```

### Autenticar com `copilot login`

1. No terminal, execute `copilot login`. Se você estiver usando GitHub Enterprise Cloud com residência de dados, forneça o nome do host da instância.

   ```bash copy
   copilot login
   ```

   Para GitHub Enterprise Cloud:

   ```bash copy
   copilot login --host HOSTNAME
   ```

2. Autorize o login.

   Em uma área de trabalho local, `copilot login` usa o fluxo do navegador por padrão. Abre seu navegador para autorizar o login e captura o resultado em um callback local de loopback.

   ```text
   Opening your browser to authenticate...
   If it doesn't open automatically, visit:
   URL
   Waiting for authorization...
   ```

   Ambientes remotos ou sem cabeça conhecidos (incluindo SSH, GitHub Codespacescontêineres de desenvolvimento e CI) usam o fluxo de código do dispositivo. A CLI exibe um código único e, quando compatível com o ambiente, pode copiá-lo para sua área de transferência e abrir um navegador.

   ```text
   To authenticate, visit http://gfffh3e2b966b640040f3spupff9onxw0u65p6.ffgi.yc2.bjmu.edu.cn/login/device and enter code 1234-5678
   Waiting for authorization...
   ```

   Para forçar um fluxo específico, adicione a opção `--device-code` ou `--web-flow`.

3. Navegue até a URL exibida no terminal se o navegador não abrir automaticamente. Para o fluxo de código do dispositivo, cole o código de uso único no campo da página.

4. Se sua organização usar o SSO do SAML, clique em **Authorize** ao lado de cada organização à qual você deseja conceder access.

5. Examine as permissões solicitadas e clique em **Authorize GitHub Copilot CLI**.

6. Retorne ao terminal. A CLI exibe uma mensagem de êxito quando a autenticação é concluída.

   ```text
   Signed in successfully as Octocat.
   ```

## Autenticação com variáveis de ambiente

Para ambientes não interativos, você pode autenticar definindo uma variável de ambiente com um token com suporte. Isso é ideal para pipelines de CI/CD, contêineres ou servidores sem cabeça.

1. Visite [Fine-grained personal access tokens](http://gfffh3e2b966b640040f3spupff9onxw0u65p6.ffgi.yc2.bjmu.edu.cn/settings/personal-access-tokens/new).
2. Em **Proprietário do recurso**, selecione sua **conta pessoal**. Não selecione uma organização. A permissão **Copilot Solicitações** só está disponível em fine-grained personal access tokens de propriedade do usuário.
3. Em **Acesso ao Repositório**, selecione o nível de acesso apropriado para seu caso de uso:
   * **Repositórios públicos** se você precisar trabalhar apenas com repositórios públicos.
   * **Todos os repositórios** se você precisar de acesso em todos os seus repositórios atuais e futuros.
   * **Selecione apenas repositórios** se quiser restringir o acesso a repositórios específicos.
4. Em **Permissões**, selecione a guia **Conta** .
5. Clique em **Adicionar permissões** e selecione **Copilot Solicitações**.
6. Clique em **Gerar token**.
7. Exporte o token na configuração do terminal ou do ambiente. Use a variável de ambiente `COPILOT_GITHUB_TOKEN`, `GH_TOKEN` ou `GITHUB_TOKEN` (em ordem de precedência).

## Autenticação com GitHub CLI

Se você tiver GitHub CLI instalado e autenticado, Copilot CLI poderá usar seu token como um fallback. Esse método tem a prioridade mais baixa e é ativado somente quando nenhuma variável de ambiente é definida e nenhum token armazenado é encontrado.

1. GitHub CLI Verifique se ele está autenticado.

   ```bash copy
   gh auth status
   ```

   Se você usar GitHub Enterprise Cloud com residência de dados, verifique se o nome do host correto está autenticado.

   ```bash copy
   gh auth status --hostname HOSTNAME
   ```

2. Execute `copilot`. A CLI do Copilot usa o token GitHub CLI automaticamente.

3. Execute `/user` para verificar sua conta autenticada na CLI.

## Como alternar entre contas

Copilot CLI dá suporte a várias contas. Você pode listar as contas disponíveis e alternar entre elas de dentro da CLI.
Para listar as contas disponíveis, execute `/user list` no Copilot CLI prompt.
Para alternar para uma conta diferente, digite `/user switch` no prompt.

Para adicionar outra conta, execute `copilot login` em uma nova sessão de terminal ou execute o comando de logon de dentro da CLI e autorize com a outra conta.

## Sair e remover credenciais

Para sair, digite `/logout` no prompt Copilot CLI. Isso remove o token armazenado localmente, mas não o revoga no GitHub.

Para revogar a autorização GitHub do aplicativo OAuth e impedir que ela seja usada em outro lugar, siga estas etapas.

1. Navegue até **Configurações** > **Aplicativos** > **Aplicativos OAuth autorizados**.
2. Navegue até a página de configurações:
   1. No canto superior direito de qualquer página em GitHub, clique na sua imagem de perfil.
   2. Clique em **Configurações**.
3. Na barra lateral esquerda, clique em **Aplicativos**.
4. Em **Authorized OAuth Apps**, clique em <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-kebab-horizontal" aria-label="The horizontal kebab icon" role="img"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg> ao lado de **GitHub CLI** para expandir o menu e selecionar **Revoke**.

## Próximas Etapas 

Se você encontrar problemas de autenticação, consulte [Solução de problemas na autenticação do GitHub Copilot CLI](/pt/copilot/how-tos/copilot-cli/set-up-copilot-cli/troubleshoot-copilot-cli-auth).