Skip to main content

Autenticarse como una GitHub App

Puedes autenticarte como una GitHub App para generar un token de acceso de instalación o administrar la aplicación.

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

  1. Genera un JSON Web Token (JWT) para la aplicación. Para obtener más información, vea «Generación de un JSON Web Token (JWT) para una aplicación de GitHub».

  2. Incluye el JWT en el encabezado Authorization de la solicitud. En el ejemplo siguiente, reemplaza YOUR_JWT por el 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"
    

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.

Nota: 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.

  1. 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".

  2. Genere una clave privada. Para obtener más información, vea «Administración de claves privadas para aplicaciones de GitHub».

  3. Importa App desde octokit.

    JavaScript
    import { App } from "octokit";
    
  4. Cree una nueva instancia de App. En el ejemplo siguiente, reemplaza APP_ID por una referencia al identificador de la aplicación. Reemplaza PRIVATE_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,
    });
    
  5. 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")