L’automatisation sur GitHub implique généralement plusieurs composants travaillant ensemble. Les composants natifs les plus importants GitHub sont les suivants :
- GitHub Actions workflows, qui fournissent un runtime pour l’exécution de la logique d’automatisation. Prêt à l'emploi, ils fonctionnent dans un référentiel unique, mais ils peuvent être étendus pour automatiser à travers ou même en dehors des référentiels.
- GitHub Apps, qui n’ont pas de runtime. Au lieu de cela, ils fournissent une identité, des autorisations et une remise d’événements afin que vos automatisations, qu’il s’agisse de services externes ou de flux de travail, peuvent s’authentifier et agir en toute sécurité.
La plupart des automatisations d’entreprise utilisent GitHub Apps et GitHub Actions ensemble. Par exemple, un flux de travail s’exécutant dans GitHub Actions peut utiliser un jeton GitHub App pour obtenir un jeton de courte durée lui permettant d’effectuer des tâches dans différents référentiels ou différentes organisations.
Ce guide explique comment GitHub Apps, automatisations externes et GitHub Actions se compléter mutuellement, et quand les utiliser dans votre entreprise.
GitHub Apps
Un GitHub App fournit l’identité, les autorisations et les événements de webhook nécessaires à l’automatisation au sein de dépôts, d’organisations ou de votre entreprise, ou entre ceux-ci. GitHub Apps eux-mêmes n’exécutent pas de logique, ils permettent à d’autres systèmes de le faire.
GitHub Apps prendre en charge l’automatisation d’entreprise en offrant :
- Autorisations granulaires pour suivre les principes de privilège minimum
- Installations avec périmètre défini au niveau de l’entreprise, de l’organisation ou du référentiel
- Jetons de courte durée pour l’accès sécurisé
- Identités distinctes avec une auditabilité complète
- Administration déléguée par le biais du GitHub App rôle de responsable
- Cohérence à grande échelle lorsque gérée par le compte d'entreprise
Que permet GitHub Apps ?
GitHub Apps autorisez les automatisations que vous écrivez ailleurs, telles que les services externes ou les étapes de flux de travail, à agir sur GitHub les API dans les autorisations que vous accordez. Par exemple:
- Réception d’événements de webhook et déclenchement de services externes
- Activation d’un flux de travail en dehors de son étendue de référentiel par défaut
- GitHub Intégration à des systèmes tiers
- Coordination des modifications dans de nombreux référentiels
- Exécution de bots ou de services de longue durée qui surveillent l’activité au niveau de l’entreprise
GitHub Actions
GitHub Actions fournir l’GitHubenvironnement d’exécution**** intégré pour exécuter la logique d’automatisation dans les dépôts. Les flux de travail s’exécutent sur auto-hébergés et sont idéaux pour les tâches liées aux modifications de code ou aux événements de référentiel.
Utiliser GitHub Actions pour :
- CI/CD (construction, test, déploiement)
- Vérifications et validations des pull requests
- Tâches de maintenance au niveau du référentiel
- Flux de travail pilotés par les événements répondant aux pushs, balises ou mises à jour des tickets.
- Travaux planifiés avec cron
Comment GitHub Actions utilise GitHub Apps
GitHub Actions et GitHub Apps sont profondément connectés :
- Les autorisations de flux de travail correspondent directement à celles de GitHub App.
- Les flux de travail peuvent s’authentifier en tant qu’utilisateur spécifique GitHub App à l’aide de
actions/create-github-app-token. - GitHub Apps peut déclencher des flux de travail par le biais d’événements tels que
repository_dispatch.
Automatisations et services externes
Les automatisations externes s’exécutent en dehors GitHub de votre propre infrastructure. Ces services sont généralement les suivants :
- Recevoir des événements webhook depuis GitHub App
- Utilisez la GitHub App commande pour demander des jetons d’installation à courte durée de vie
- Exécuter une logique de longue durée ou trans-entreprise
- Intégrer à des systèmes d’entreprise externes
Voici quelques exemples :
- Gestion de la configuration à l’échelle de l’organisation
- Services d’application de stratégie
- Code multi-référentiel ou synchronisation des métadonnées
- Génération du rapport de conformité
- Gestion des problèmes ou des demandes de tirage à l’échelle interorganisationnelle
Tout cela s’appuie sur GitHub Apps pour l’authentification, l’identité et les événements — et non pour l’exécution.
Fonctionnement de ces composants
La plupart des automatisations d’entreprise utilisent une combinaison de GitHub Appsservices externes et GitHub Actions pour obtenir des flux de travail robustes et évolutifs.
Par exemple:
- Une entreprise GitHub App reçoit un webhook lorsqu’un nouveau référentiel est créé et envoie la charge utile du webhook à un serveur sur lequel un service externe est en cours d’exécution.
- Le service externe normalise les paramètres requis et provisionne les ressources.
- Le service déclenche un GitHub Actions flux de travail dans le référentiel.
- Le flux de travail effectue l’intégration continue, déploie des modèles de déploiement ou configure le scannage.
Chaque composant gère une couche d’automatisation différente.
Quand utiliser chaque type d’automatisation
Utilisez un GitHub App lorsque vous avez besoin de :
- Authentification ou autorisation d’agir sur de nombreux référentiels
- Intégration avec des systèmes externes
- Automatisations basées sur les webhooks
- Flux de travail à long terme ou à l’échelle de l’entreprise
- Auditabilité et séparation des identités
Utilisez des automatisations externes lorsque vous avez besoin des éléments suivants :
- Logique qui s’exécute en continu ou à l’extérieur de GitHub
- Intégration avec des systèmes internes
Utilisez GitHub Actions quand vous avez besoin des éléments suivants :
- Pipelines CI/CD
- Automatisation à l'échelle du référentiel
- Vérifications automatisées liées aux événements de référentiel
- Exécution de la logique à l’aide de l’infrastructure d’exécution de GitHub
Utilisez GitHub Apps et GitHub Actions ensemble quand :
- Un flux de travail doit agir au-delà des autorisations par défaut du référentiel
- Un GitHub App doit déclencher un workflow
- Une logique externe pilote et orchestre l’exécution au sein du référentiel
- Les stratégies ou workflows à l’échelle de l’entreprise nécessitent à la fois l’identité et le runtime
Étapes suivantes
Découvrez comment concevoir et gérer GitHub Apps au niveau de l’entreprise dans Création d’applications GitHub pour votre entreprise.