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
-
Gere um JWT (Token Web JSON) para seu aplicativo. Para saber mais, confira Como gerar um JWT (Token Web JSON) para um Aplicativo GitHub.
-
Inclua o JWT no cabeçalho
Authorization
da solicitação. No exemplo a seguir, substituaYOUR_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.
-
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.
-
Gere uma chave privada. Para saber mais, confira Como gerenciar chaves privadas para Aplicativos GitHub.
-
Importe
App
deoctokit
.JavaScript import { App } from "octokit";
import { App } from "octokit";
-
Crie uma nova instância do
App
. No exemplo a seguir, substituaAPP_ID
por uma referência à ID do seu aplicativo. SubstituaPRIVATE_KEY
por uma referência ao valor da chave privada do seu aplicativo.JavaScript const app = new App({ appId: APP_ID, privateKey: PRIVATE_KEY, });
const app = new App({ appId: APP_ID, privateKey: PRIVATE_KEY, });
-
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")
await app.octokit.request("/app")