Skip to main content
Skip to content

Autenticação de servidor para servidor

Use um token de acesso de instalação de curta duração quando um serviço precisar fazer solicitações ao Copilot em nome de uma organização sem usar as credenciais de um usuário. Em GitHub Actions, use o internoGITHUB_TOKEN.

GitHub Actions

Para fluxos de trabalho em um repositório pertencente à organização, conceda ao token interno a permissão para fazer solicitações ao Copilot:

permissions:
  contents: read
  copilot-requests: write

jobs:
  copilot:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - run: your-application
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

A política Permitir o uso do Copilot CLI cobrado da organização da organização deve estar habilitada. Essa abordagem não requer GitHub App nem segredo de autenticação armazenado. Para obter detalhes, consulte Usando Copilot CLI em GitHub Actions com GITHUB_TOKEN.

Outros serviços e sistemas de CI

Para serviços fora GitHub Actions:

  1. Crie um aplicativo GitHub com a permissão da organização Copilot Solicitações definida como somente leitura.

  2. Instale-o na organização à qual o uso deve ser atribuído e cobrado.

  3. Gerando um token de acesso de instalação para um aplicativo GitHub com a permissão Copilot:

    {
      "permissions": {
        "organization_copilot_requests": "read"
      }
    }
    
  4. Passe o token resultante ghs_ para o SDK gitHubToken``github_tokenou a opção equivalente. Para um URI de runtime existente, defina-o como COPILOT_GITHUB_TOKEN no processo de runtime.

A organização deve estar habilitada para receber solicitações do Copilot de instalações do GitHub App. Os tokens de instalação expiram após uma hora.

Observação

Nenhum usuário conectado é necessário. useLoggedInUser: false desativa a descoberta automática de credenciais, incluindo tokens de variável de ambiente, como COPILOT_GITHUB_TOKEN, portanto, passe o token de instalação por meio da opção de token explícito do SDK.

Configurar o tempo de execução

Os exemplos a seguir partem do pressuposto de que o token emitido está em INSTALLATION_TOKEN. Eles o transmitem apenas para o runtime filho e desativam o fallback para credenciais de usuário armazenadas.

Idiomas de código navigation

TypeScript
import { CopilotClient, RuntimeConnection } from "@github/copilot-sdk";

const token = process.env.INSTALLATION_TOKEN;
if (!token) throw new Error("INSTALLATION_TOKEN is required");

const client = new CopilotClient({
    connection: RuntimeConnection.forStdio(),
    gitHubToken: token,
    useLoggedInUser: false,
});

Para o FFI em processo, use a mesma opção de token; tokens de variável de ambiente no processo de host são ignorados quando useLoggedInUser é falso. Para um URI de runtime existente, defina COPILOT_GITHUB_TOKEN nesse processo de runtime.

Tokens de atualização

Gere um novo token de instalação antes que o token atual expire. Para um processo filho, reinicie o cliente SDK com o novo token. Para um runtime em processo ou existente, reinicie o runtime do host com o novo token.

Billing

O uso é atribuído e cobrado para a organização que possui a instalação do aplicativo GitHub.

Resolução de problemas

SintomaVerificação
401 UnauthorizedO token pode estar expirado ou inválido. Mint um novo token de instalação.
403informando que Copilot solicitações com tokens de acesso à instalação do aplicativo GitHub não estão habilitadasConfirme se a organização dá suporte à autenticação de instalação do aplicativo GitHub para Copilot.
No GitHub OAuth token or Copilot HMAC key provided ou Not authenticatedConfirme se o token de instalação é passado por meio da opção de token explícito do SDK. Com useLoggedInUser: false, o runtime ignora COPILOT_GITHUB_TOKEN e outros tokens de variável de ambiente.
403 Forbidden da API do CopilotConfirme se a instalação tem a organização Copilot permissão Solicitações e, em seguida, crie um novo token.
O modelo solicitado não está disponívelConfirme se a política do Copilot da organização permite esse modelo e se o runtime incluído é compatível com ele.
Cobrança feita na conta erradaConfirme se a instalação pertence à organização pretendida.

Leitura adicional