À propos de l’authentification en tant qu’GitHub App
Vous devez vous authentifier en tant que GitHub App afin d’effectuer des requêtes d’API REST en tant qu’application. Par exemple, si vous souhaitez utiliser l’API pour générer un jeton d’accès d’installation pour accéder aux ressources de l’organisation, répertorier les installations de votre application ou suspendre l’installation d’une application, vous devez vous authentifier en tant qu’application.
Si un point de terminaison d’API REST nécessite l’authentification en tant qu’application, la documentation de ce point de terminaison indique que vous devez utiliser un JWT pour accéder au point de terminaison. L’API GraphQL ne prend pas en charge les requêtes ou mutations qui nécessitent l’authentification en tant qu’application.
Utilisation d’un jeton web JSON (JWT) pour l’authentification en tant que GitHub App
-
Générez un jeton web JSON (JWT) pour votre application. Pour plus d’informations, consultez « Génération d’un jeton web JSON (JWT) pour une application GitHub ».
-
Incluez le JWT dans l’en-tête
Authorization
de votre demande. Dans l’exemple suivant, remplacezYOUR_JWT
par votre 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"
Utilisation du Kit de développement logiciel (SDK) Octokit.js pour s’authentifier en tant que GitHub App
Vous pouvez utiliser le SDK Octokit.js de GitHub pour vous authentifier en tant que GitHub App. L’un des avantages de l’utilisation du SDK pour vous authentifier est que vous n’avez pas besoin de générer vous-même un jeton web JSON (JWT). En outre, le SDK s’occupe de la régénération du JWT lorsqu’il expire.
Remarque : Vous devez installer et importer octokit
pour utiliser la bibliothèque Octokit.js. L’exemple suivant utilise des instructions import conformément à ES6. Pour plus d’informations sur les différentes méthodes d’installation et d’importation, consultez Usage dans le dépôt octokit/octokit.
-
Obtenez l’ID de votre application. Vous pouvez rechercher l’ID de l’application sur la page des paramètres de votre GitHub App. Pour plus d’informations sur la navigation vers la page des paramètres pour votre GitHub App, consultez « Modification d’une inscription d’application GitHub ».
-
Générez une clé privée. Pour plus d’informations, consultez « Gestion des clés privées pour les applications GitHub ».
-
Importez
App
depuisoctokit
.JavaScript import { App } from "octokit";
import { App } from "octokit";
-
Créez une nouvelle instance de
App
. Dans l’exemple suivant, remplacezAPP_ID
par une référence à l’ID de votre application. RemplacezPRIVATE_KEY
par une référence à la valeur de la clé privée de votre application.JavaScript const app = new App({ appId: APP_ID, privateKey: PRIVATE_KEY, });
const app = new App({ appId: APP_ID, privateKey: PRIVATE_KEY, });
-
Utilisez une méthode
octokit
pour effectuer une demande à un point de terminaison d’API REST qui nécessite un JWT. Par exemple :JavaScript await app.octokit.request("/app")
await app.octokit.request("/app")