Automatisierung auf GitHub umfasst in der Regel mehrere Komponenten, die zusammenarbeiten. Die wichtigsten GitHub native Komponenten sind:
-
**GitHub Actions-Workflows**, die eine Laufzeitumgebung für die Ausführung von Automatisierungslogik bereitstellen. Standardmäßig funktionieren sie innerhalb eines einzelnen Repositorys, können aber erweitert werden, um sie über oder sogar außerhalb von Repositorys zu automatisieren. -
**GitHub Apps**, die keine Laufzeitumgebung haben. Stattdessen stellen sie Identitäten, Berechtigungen und Ereignisübermittlung bereit, damit Ihre Automatisierungen, unabhängig davon, ob externe Dienste oder Workflows, sicher authentifiziert und agieren können.
Die meisten Enterprise-Automatisierungen verwenden GitHub Apps und GitHub Actions zusammen. So kann beispielsweise ein Workflow, der in GitHub Actions ausgeführt wird, eine GitHub App verwenden, um ein kurzlebiges Token zu erhalten, das die Ausführung von Aufgaben über Repositorys oder Organisationen hinweg ermöglicht.
In diesem Handbuch wird erläutert, wie GitHub Apps, externe Automatisierungen und GitHub Actions einander ergänzen und wann sie in Ihrem Unternehmen verwendet werden.
GitHub Apps
Eine GitHub App stellt die Identitäts-, Berechtigungs- und Webhook-Ereignisse bereit, die für die Automatisierung in oder über Repositorys, Organisationen oder Ihr Unternehmen erforderlich sind. GitHub Apps selbst führen keine Logik aus, sie ermöglichen es anderen Systemen, dies zu tun.
GitHub Apps unterstützen die Enterprise-Automatisierung durch:
-
**Granulare Berechtigungen**, um das Prinzip der geringsten Rechte zu befolgen -
**Installationen mit festem Umfang** auf Unternehmens-, Organisations- oder Repository-Ebene -
**Kurzlebige Token für sicheren** Zugriff -
**Unterschiedliche Identitäten** mit vollständiger Auditierbarkeit -
**Delegierte Verwaltung** über die GitHub App-Managerrolle -
**Skalierbare Konsistenz** bei unternehmenseigenem Account
Was ermöglichen GitHub Apps?
GitHub Apps erlauben es Automatisierungen, die Sie anderswo schreiben (z. B. externe Dienste oder Workflowschritte), über GitHub-APIs innerhalb der von Ihnen erteilten Berechtigungen Aktionen auszuführen. Beispiel:
- Empfangen von Webhook-Ereignissen und Auslösen externer Dienste
- Das Aktivieren eines Workflows, um außerhalb seines Standard-Repository-Bereichs zu agieren.
- Integrieren von GitHub in Drittanbietersysteme
- Koordinieren von Änderungen in vielen Repositorys
- Ausführen von langlebigen Bots oder Diensten, die aktivitäten auf Unternehmensebene überwachen
GitHub Actions
GitHub Actions stellen die integrierte Laufzeit von GitHub für die Ausführung von Automatisierungslogik in Repositorys bereit. Workflows werden auf selbst-gehosteten Runnern ausgeführt und eignen sich ideal für Aufgaben, die an Codeänderungen oder Repository-Ereignisse gebunden sind.
Nutzen Sie GitHub Actions für:
- CI/CD (Build, Test, Bereitstellen)
- Pull-Request-Prüfungen und -Validierungen
- Wartungsaufgaben auf Repositoryebene
- Ereignisgesteuerte Workflows, die auf Push-, Tags- oder Problemaktualisierungen reagieren
- Geplante Aufträge mit Cron
Verwendung von GitHub Apps durch GitHub Actions
GitHub Actions und GitHub Apps sind eng miteinander verbunden:
- Workflowberechtigungen entsprechen direkt den Berechtigungen der GitHub App.
- Workflows können sich mit
actions/create-github-app-tokenals eine spezifische GitHub App authentifizieren. - GitHub Apps können Workflows durch Ereignisse wie
repository_dispatchauslösen.
Externe Automatisierungen und Dienste
Externe Automatisierungen werden außerhalb von GitHub in Ihrer eigenen Infrastruktur ausgeführt. Diese Dienste sind in der Regel:
- Empfangen von Webhook-Ereignissen von einer GitHub App
- Verwenden Sie die GitHub App, um kurzlebige Installationstoken anzufordern.
- Ausführen von lang andauernder oder unternehmensübergreifender Logik
- Integration in externe Geschäftssysteme
Beispiele sind:
- Organisationsweite Konfigurationsverwaltung
- Richtlinienerzwingungsdienste
- Multi-Repository-Code oder Metadatensynchronisierung
- Erstellung von Complianceberichten
- Organisationsübergreifendes Issue- oder Pull-Request-Management
All dies nutzt GitHub Apps für die Authentifizierung, Identität und Ereignisse, nicht für die Ausführung.
Zusammenarbeit dieser Komponenten
Bei der meisten Unternehmensautomatisierung wird eine Kombination aus GitHub Apps, externen Diensten und GitHub Actions verwendet, um stabile, skalierbare Workflows zu erzielen.
Beispiel:
- Ein Unternehmen GitHub App empfängt einen Webhook, wenn ein neues Repository erstellt wird, und sendet die Webhook-Nutzlast an einen Server, auf dem ein externer Dienst ausgeführt wird.
- Der externe Dienst standardisiert die erforderlichen Einstellungen und stellt Ressourcen zur Auswahl.
- Der Dienst löst einen GitHub Actions Workflow im Repository aus.
- Der Workflow führt die kontinuierliche Integration (CI) aus, stellt Vorlagen bereit oder konfiguriert das Scannen.
Jede Komponente behandelt eine andere Automatisierungsebene.
Wann jeder Automatisierungstyp verwendet werden soll
Verwenden Sie eine GitHub App, wenn Sie Folgendes benötigen:
- Authentifizierung oder Berechtigung zum Handeln in vielen Repositorys
- Integration in externe Systeme
- Webhook-gesteuerte Automatisierungen
- Langlebige oder unternehmensweite Workflows
- Auditierbarkeit und Identitätstrennung
Verwenden Sie bei Bedarf externe Automatisierungen :
- Logik, die kontinuierlich oder außerhalb von GitHub ausgeführt wird
- Integration in interne Systeme
Verwenden Sie GitHub Actions, wenn Sie es brauchen:
- CI/CD-Pipelines
- Repository-bezogene Automatisierung
- Automatisierte Prüfungen, die an Repositoryereignisse gebunden sind
- Ausführung logischer Prozesse mithilfe der Runner-Infrastruktur von GitHub
Verwenden Sie GitHub Apps und GitHub Actions zusammen, wenn:
- Ein Workflow muss über die Standardberechtigungen des Repositorys hinausgehen
- Ein GitHub App muss einen Workflow auslösen
- Externe Logik koordiniert die In-Repo-Ausführung
- Unternehmensweite Richtlinien oder Workflows erfordern sowohl Identität als auch Laufzeit
Nächste Schritte
Erfahren Sie, wie Sie GitHub Apps entwerfen und auf Unternehmensebene verwalten in Erstellen GitHub Apps für Ihr Unternehmen.