Skip to main content

Décider quand créer une application GitHub

Lors de la création d’une intégration, vous devez envisager d’utiliser un GitHub App dans les scénarios suivants, au lieu d’un OAuth app, personal access tokenou GitHub Actions.

Utilisation de GitHub App au lieu de OAuth app

En général, GitHub Apps sont préférés à OAuth apps.

OAuth apps et GitHub Apps utilisent tous deux OAuth 2.0.

OAuth apps ne peut agir que pour le compte d’un utilisateur, tandis qu’il GitHub Apps peut agir au nom d’un utilisateur ou indépendamment d’un utilisateur.

Pour plus d’informations, consultez « Différences entre les applications GitHub et les applications OAuth ».

Pour plus d’informations sur la migration d’un existant OAuth app vers un GitHub App, consultez Migration d’applications OAuth vers des applications GitHub.

GitHub Apps offrir une sécurité renforcée

GitHub Apps fournir davantage de contrôle sur ce que l’application peut faire. Au lieu des autorisations à large portée qu’utilise OAuth apps, GitHub Apps utilise des autorisations granulaires. Par exemple, si votre application doit lire le contenu d’un référentiel, elle OAuth app nécessite l’étendue repo , ce qui permet également à l’application de modifier le contenu et les paramètres du référentiel. Un GitHub App peut demander un accès en lecture seule au contenu du référentiel, ce qui ne permet pas à l’application d’effectuer des actions plus privilégiées, telles que la modification du contenu ou des paramètres du référentiel.

GitHub Apps offrent également davantage de contrôle sur l’accès au référentiel. Avec un GitHub App, l’utilisateur ou le propriétaire de l’organisation qui a installé l’application peut décider des référentiels auxquels l’application peut accéder. À l’inverse, un OAuth app peut accéder à tous les dépôts auxquels l’utilisateur qui a autorisé l’application peut accéder.

GitHub Apps utilisez des jetons de courte durée. Si le jeton est divulgué, il reste valide pendant un laps de temps plus court, ce qui réduit les dommages qui peuvent être causés. À l’inverse, les jetons OAuth app n’expirent que lorsque la personne qui a autorisé le OAuth app révoque le jeton.

Ces fonctionnalités de sécurité permettent de renforcer la sécurité de votre GitHub Appapplication en limitant les dommages qui pourraient être causés si les informations d’identification de votre application ont été divulguées. De plus, cela permet aux organisations avec des stratégies de sécurité plus strictes d’utiliser votre application.

GitHub Apps peut agir indépendamment ou au nom d’un utilisateur

GitHub Apps peut agir indépendamment d’un utilisateur. C’est bien pour les automatisations qui ne nécessitent pas d’entrée utilisateur.

Similaire à OAuth apps, GitHub Apps peut toujours effectuer des actions pour le compte d’un utilisateur. Contrairement à OAuth apps, qui n’indiquent pas que l’action a été effectuée par l’application, GitHub Apps indiquent que l’action a été effectuée par l’application au nom de l’utilisateur.

GitHub Appsne sont pas liés à un compte d’utilisateur et ne consomment pas de siège. GitHub Apps reste installé même lorsque la personne qui a initialement installé l’application quitte l’organisation. Cela permet à vos intégrations de continuer à fonctionner même si des personnes quittent votre équipe.

GitHub Apps ont des limites de débit évolutives

La limite de taux pour GitHub Apps lors de l’utilisation d’un jeton d’accès d’installation varie en fonction du nombre de référentiels et du nombre d’utilisateurs de l’organisation. À l’inverse, OAuth apps ont des limites de débit plus faibles et ne passent pas à l’échelle. Pour plus d’informations, consultez « Limites de débit pour les applications GitHub ».

GitHub Apps disposent de webhooks intégrés

GitHub Apps ont des webhooks intégrés et centralisés. GitHub Apps peut recevoir des événements webhook pour tous les dépôts et organisations auxquels l’application peut accéder. À l’inverse, OAuth apps doit configurer des webhooks individuellement pour chaque dépôt et chaque organisation.

L’accès aux API diffère légèrement

En général, GitHub Apps et OAuth apps peut effectuer les mêmes demandes d’API. Toutefois, il existe certaines différences entre ces deux éléments :

  • L’API REST permettant de gérer les exécutions de vérification et les suites de vérification n’est disponible que pour GitHub Apps.
  • Les ressources au niveau de l’entreprise telles que l’objet d’entreprise lui-même ne sont pas disponibles GitHub Apps. Cela signifie que GitHub Apps ne peut pas appeler des points de terminaison comme GET /enterprise/settings/license. Toutefois, les ressources d’organisation et de référentiel appartenant à l’entreprise sont disponibles.
  • Certaines demandes peuvent retourner des données incomplètes en fonction des autorisations et de l’accès au référentiel accordés à un GitHub App. Par exemple, si votre application effectue une demande pour obtenir tous les dépôts auxquels un utilisateur peut accéder, la réponse inclut uniquement les dépôts auxquels l’application a également obtenu l’accès.

Pour plus d’informations sur les points de terminaison de l’API REST mis à la disposition de GitHub Apps, consultez Points de terminaison disponibles pour les jetons d’accès d’installation d’application GitHub.

Choisir entre un GitHub App et un personal access token

Si vous souhaitez accéder aux GitHub ressources pour le compte d’un utilisateur ou d’une organisation, ou si vous prévoyez une intégration à long terme, nous vous recommandons de créer un GitHub App.

Vous pouvez utiliser personal access tokens pour les tests d’API ou les scripts de courte durée. Étant donné qu’un personal access token utilisateur est associé à un utilisateur, votre automatisation peut s’interrompre si l’utilisateur n’a plus accès aux ressources dont vous avez besoin. Un GitHub App installé dans une organisation ne dépend pas d’un utilisateur. De plus, contrairement à un utilisateur, un GitHub App ne consomme pas de GitHublicence.

GitHub prend en charge deux types de personal access tokens, mais recommande d’utiliser des fine-grained personal access tokens plutôt que des personal access tokens (classic) dans la mesure du possible. Pour plus d’informations sur personal access tokens, consultez Gestion de vos jetons d’accès personnels.

Choix entre un GitHub App ou GitHub Actions

GitHub Apps et GitHub Actions fournissent des moyens de créer des outils d’automatisation et de flux de travail.

_ GitHub Actions _ fournissent une automatisation qui peut effectuer des tâches telles que l’intégration continue, les tâches de déploiement et la gestion des projets dans un référentiel. Ils s’exécutent directement sur GitHubdes machines d’exécution hébergées ou des exécuteurs auto-hébergés que votre administrateur configure. GitHub Actions ne s’exécutent pas de manière permanente. GitHub Actions Les flux de travail s’exécutent en réponse aux événements qui se produisent dans leur référentiel et ont uniquement accès aux ressources du référentiel pour lequel ils sont configurés. Toutefois, des actions personnalisées peuvent être partagées entre les dépôts et les organisations, ce qui permet aux développeurs de réutiliser et de modifier les actions existantes pour répondre à leurs besoins. GitHub Actions sont également fournis avec la gestion des secrets intégrée, que vous pouvez utiliser pour interagir en toute sécurité avec des services tiers et gérer les clés de déploiement en toute sécurité.

_ GitHub Apps _ s’exécuter en continu sur un serveur ou une infrastructure de calcul que vous fournissez, ou sur un appareil de l’utilisateur. Ils peuvent réagir à des événements GitHub webhook ainsi qu’à des événements issus de l’extérieur de l’écosystème GitHub. Elles constituent une bonne option pour les opérations qui couvrent plusieurs référentiels ou organisations, ou pour fournir des services hébergés à d'autres organisations et entreprises. Un GitHub App est le meilleur choix lors de la création d’un outil dont les fonctions s’exécutent principalement en dehors de GitHub ou nécessitent plus de temps d’exécution ou d’autorisations que ce qu’un workflow GitHub Actions n’autorise.

Pour plus d’informations sur la comparaison GitHub Actions à GitHub Apps, consultez GitHub Actions contre applications GitHub.

Vous pouvez utiliser un GitHub App pour vous authentifier dans un GitHub Actions flux de travail si le composant intégré GITHUB_TOKEN n’a pas les autorisations nécessaires. Pour plus d’informations, consultez « Effectuer des requêtes d’API authentifiées avec une application GitHub dans un flux de travail GitHub Actions ».