À propos de GitHub Apps
Une GitHub App est un type d’intégration que vous pouvez créer pour interagir avec les fonctionnalités de GitHub et les étendre. Vous pouvez créer une GitHub App pour offrir de la flexibilité et réduire les frictions dans vos processus, sans avoir besoin de connecter un utilisateur ou de créer un compte de service.
Les cas d’usage courants pour les GitHub Apps sont les suivants :
- Automatisation des tâches ou des processus en arrière-plan
- Prise en charge de « Se connecter avec GitHub », qui permet aux utilisateurs de se connecter avec leur compte GitHub pour fournir leur identité dans votre écosystème
- Comme outil de développement, permettre aux utilisateurs d’utiliser GitHub en se connectant à votre GitHub App, laquelle peut ensuite agir en leur nom
- Intégration de votre outil ou service externe à GitHub
Comme les OAuth apps, une GitHub Apps utilise OAuth 2.0 et peut agir pour le compte d’un utilisateur. Contrairement aux OAuth apps, les GitHub Apps peuvent aussi agir indépendamment d’un utilisateur.
GitHub Apps peut être installé directement sur les comptes d’organisations et les comptes personnels, et être autorisé à avoir accès à des référentiels spécifiques. Elles sont fournies avec des webhooks intégrés et des autorisations spécifiques et limitées.
Par défaut, seuls les propriétaires d’organisation peuvent gérer les paramètres des applications GitHub dans une organisation. Pour permettre à d’autres utilisateurs de modifier les paramètres de développeur des applications GitHub appartenant à l’organisation, un propriétaire peut leur accorder des autorisations de gestionnaire d’applications GitHub. Les gestionnaires d’applications GitHub ne peuvent pas gérer les applications tierces. Pour plus d’informations sur l’ajout et la suppression de gestionnaires d’applications GitHub dans votre organisation, consultez « Rôles dans une organisation ».
Créer une GitHub App
Pour générer une GitHub App, vous devez d’abord inscrire une GitHub App. Pour plus d’informations, consultez « Inscription d’une application GitHub ».
Ensuite, vous devez écrire du code pour ajouter des fonctionnalités à votre GitHub App. Vous pouvez utiliser les informations d’identification de votre inscription d’GitHub App pour effectuer des requêtes authentifiées auprès des API GitHub. Pour plus d’informations sur l’écriture de code pour votre GitHub App, consultez « À propos de l’écriture de code pour une application GitHub ». Pour plus d’informations sur la création de requêtes authentifiées, consultez « À propos de l’authentification avec une application GitHub ».
Une fois que vous avez écrit le code de votre GitHub App, votre application doit s’exécuter quelque part. Si votre application est un site web ou une application web, vous pouvez héberger votre application sur un serveur comme Azure App Service. Si votre application est une application côté client, elle peut s’exécuter sur l’appareil d’un utilisateur.
Pour utiliser votre GitHub App, vous devez installer l’application sur votre compte d’organisation ou personnel. Si votre GitHub App est privée, vous pouvez uniquement installer l’GitHub App sur le compte propriétaire de l’application. Si votre GitHub App est publique, d’autres utilisateurs et organisations peuvent installer votre application. Pour plus d’informations, consultez « Installation de votre propre application GitHub » et « Partage de votre application GitHub ».
Présentation du type d’GitHub App à créer
Il existe plusieurs façons de concevoir une GitHub App selon les fonctionnalités que vous voulez que l’application ait.
GitHub Apps qui agissent au nom d’un utilisateur
Si vous souhaitez que votre application effectue des actions au nom d’un utilisateur, vous devez utiliser un jeton d’accès utilisateur pour l’authentification. Ce type de demande est parfois appelé « utilisateur à serveur », ce qui signifie que l’application est limitée par les autorisations qui lui ont été accordées et par l’autorisation de l’utilisateur. Avec ce modèle, l’utilisateur doit autoriser l’application avant que celle-ci ne puisse effectuer des actions. Pour plus d’informations, consultez « Authentification auprès d’une application GitHub pour le compte d’un utilisateur ».
Voici quelques exemples d’automatisations que vous pouvez créer avec une GitHub App, où l’application agit au nom d’un utilisateur :
- Une GitHub App qui utilise GitHub comme fournisseur d’identité pour votre écosystème.
- Une GitHub App qui ajoute un service en plus de GitHub qui peut être utile à un utilisateur GitHub. Vous pouvez partager l’application avec d’autres développeurs via GitHub Marketplace ou en rendant l’application publique.
GitHub Apps qui agissent en leur nom
Si vous souhaitez que votre application effectue des actions en son nom, plutôt qu’au nom d’un utilisateur, vous devez utiliser un jeton d’accès d’installation pour l’authentification. Ce type de demande est parfois appelé « serveur à serveur », ce qui signifie que l’application est limitée par les autorisations qui lui ont été accordées. Pour plus d’informations, consultez « Installation de l’authentification en tant qu’application GitHub ».
Voici quelques exemples d’automatisations que vous pouvez créer avec une GitHub App, où l’application agit en son nom :
- Une GitHub App qui utilise des webhooks pour réagir à un événement en fonction d’un certain ensemble de critères. Par exemple, vous pouvez créer une automatisation autour des points de terminaison d’API REST pour examiner les demandes de fine-grained personal access token qui approuvent une demande en fonction d’une certaine stratégie.
- Une GitHub App qui aide les contributeurs de dépôt. Par exemple, l’application peut publier des ressources utiles une fois qu’un contributeur a créé une demande de tirage ou fait un commentaire.
- Une GitHub App qui génère des jetons de courte durée à donner à d’autres outils CI/CD ou pour tirer (pull) les informations d’un dépôt.
Des GitHub Apps qui répondent aux webhooks
Si vous souhaitez que votre application réponde aux événements sur GitHub, votre application doit s’abonner à des webhooks. Par exemple, vous voudrez peut-être que votre application laisse un commentaire lorsqu’une demande de tirage est ouverte. Pour plus d’informations, consultez « Utilisation de webhooks avec des applications GitHub ».
Des GitHub Apps pouvant effectuer certaines actions
Quand vous configurez votre GitHub App, vous pouvez sélectionner des autorisations spécifiques pour elle. Ces autorisations déterminent ce que l’application peut faire via l’API GitHub, ce qu’elle peut faire au nom d’un utilisateur connecté et quels webhooks elle peut recevoir. Pour plus d’informations, consultez « Choix des autorisations pour une application GitHub ».