Skip to main content

Efetuar autenticação como um aplicativo GitHub

Você pode autenticar como um GitHub App para gerar um token de acesso de instalação ou gerenciar seu aplicativo.

Sobre a autenticação como um GitHub App

Você deve se autenticar como um GitHub App para fazer solicitações de API REST como o aplicativo. Por exemplo, se você quiser usar a API para gerar um token de acesso de instalação a fim de acessar recursos da organização, listar instalações entre organizações para seu aplicativo ou suspender uma instalação de aplicativo, você deverá se autenticar como um aplicativo.

Se um ponto de extremidade da API REST exigir a autenticação como um aplicativo, a documentação desse ponto indicará que você deve usar um JWT para acessá-lo. A API do GraphQL não dá suporte a consultas ou mutações que exigem que você se autentique como um aplicativo.

Usar um JWT (Token Web JSON) para autenticar como um GitHub App

  1. Gere um JWT (Token Web JSON) para seu aplicativo. Para obter mais informações, confira "Como gerar um JWT (Token Web JSON) para um Aplicativo GitHub".

  2. Inclua o JWT no cabeçalho Authorization da solicitação. No exemplo a seguir, substitua YOUR_JWT pelo JWT.

    curl --request GET \
    --url "http(s)://HOSTNAME/api/v3/app/installations" \
    --header "Accept: application/vnd.github+json" \
    --header "Authorization: Bearer YOUR_JWT" \
    --header "X-GitHub-Api-Version: 2022-11-28"
    

Usar um SDK Octokit.js para se autenticar como um GitHub App

Você pode usar o SDK do Octokit.js do GitHub para se autenticar como um GitHub App. Uma vantagem de usar o SDK para autenticação é que você não precisa gerar um JWT (token Web JSON) por conta própria. Além disso, o SDK cuidará da regeneração do JWT quando expirar.

Note

Você precisa instalar e importar octokit para usar a biblioteca do Octokit.js. O exemplo a seguir usa instruções de importação de acordo com o ES6. Para obter mais informações sobre diferentes métodos de instalação e importação, confira Uso no repositório octokit/octokit.

  1. Obter a ID do seu aplicativo. Encontre a ID do aplicativo na página de configuração do GitHub App. Para saber como acessar a página de configurações do GitHub App, confira "Modificar um registro do Aplicativo GitHub".

  2. Gere uma chave privada. Para obter mais informações, confira "Como gerenciar chaves privadas para Aplicativos GitHub".

  3. Importe App de octokit.

    JavaScript
    import { App } from "octokit";
    
  4. Crie uma nova instância do App. No exemplo a seguir, substitua APP_ID por uma referência à ID do seu aplicativo. Substitua PRIVATE_KEY por uma referência ao valor da chave privada do seu aplicativo.

    JavaScript
     const app = new App({
      appId: APP_ID,
      privateKey: PRIVATE_KEY,
    });
    
  5. Use um método octokit para fazer uma solicitação para um ponto de extremidade da API REST que requer um JWT. Por exemplo:

    JavaScript
    await app.octokit.request("/app")