Acerca de la autenticación como GitHub App
Debes autenticarte como una instancia de GitHub App para realizar solicitudes de API REST como la aplicación. Por ejemplo, si quieres usar la API a fin de generar un token de acceso de instalación para acceder a los recursos de la organización, enumerar las instalaciones en todas las organizaciones de la aplicación o suspender una instalación de la aplicación, debes autenticarte como una aplicación.
Si un punto de conexión de la API REST necesita que te autentiques como una aplicación, la documentación de ese punto de conexión indicará que debes usar un JWT para acceder al punto de conexión. GraphQL API no admite consultas ni mutaciones que exijan autenticarse como una aplicación.
Uso de un JSON Web Token (JWT) para autenticarse como GitHub App
-
Genera un JSON Web Token (JWT) para la aplicación. Para más información, consulta Generación de un JSON Web Token (JWT) para una aplicación de GitHub.
-
Incluye el JWT en el encabezado
Authorization
de la solicitud. En el ejemplo siguiente, reemplazaYOUR_JWT
por el JWT.curl --request GET \ --url "https://api.github.com/app/installations" \ --header "Accept: application/vnd.github+json" \ --header "Authorization: Bearer YOUR_JWT" \ --header "X-GitHub-Api-Version: 2022-11-28"
Uso del SDK de Octokit.js para autenticarse como GitHub App
Puedes usar el SDK de Octokit.js de GitHub para autenticarte como una GitHub App. Una ventaja de usar el SDK para autenticarse es que no tienes que generar un JSON Web Token (JWT) personalmente. Además, el SDK se encargará de regenerar el JWT cuando expire.
Note
Debes instalar e importar octokit
para usar la biblioteca de Octokit.js. En el ejemplo siguiente se usan instrucciones import de acuerdo con ES6. Para más información sobre los diferentes métodos de instalación e importación, consulta Utilización en el repositorio octokit/octokit.
-
Consigue el identificador de la aplicación. Puedes encontrar el id. de la aplicación en la página de configuración de la GitHub App. Para más información sobre cómo desplazarte a la página de configuración en tu GitHub App, consulta Modificación del registro de una instancia de GitHub App.
-
Genere una clave privada. Para más información, consulta Administración de claves privadas para aplicaciones de GitHub.
-
Importa
App
desdeoctokit
.JavaScript import { App } from "octokit";
import { App } from "octokit";
-
Cree una nueva instancia de
App
. En el ejemplo siguiente, reemplazaAPP_ID
por una referencia al identificador de la aplicación. ReemplazaPRIVATE_KEY
por una referencia al valor de la clave privada de la aplicación.JavaScript const app = new App({ appId: APP_ID, privateKey: PRIVATE_KEY, });
const app = new App({ appId: APP_ID, privateKey: PRIVATE_KEY, });
-
Usa un método
octokit
para realizar una solicitud a un punto de conexión de la API REST que necesite un JWT. Por ejemplo:JavaScript await app.octokit.request("/app")
await app.octokit.request("/app")