Automatisierung auf GitHub umfasst typischerweise mehrere Komponenten, die zusammenarbeiten. Die wichtigsten GitHub nativen Komponenten sind:
- GitHub Actions Workflows, die eine Laufzeit 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 Laufzeit 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.
In den meisten Fällen der Unternehmensautomatisierung werden GitHub Apps und GitHub Actions zusammen verwendet. Beispielsweise kann ein in GitHub Actions ausgeführter Workflow GitHub App verwenden, um ein kurzlebiges Token zu erhalten, mit dem er repository- oder organisationsübergreifend Aufgaben ausführen kann.
In diesem Leitfaden wird erläutert, wie GitHub Apps, externe Automatisierungen und GitHub Actions sich gegenseitig ergänzen und wann sie in Ihrem Unternehmen verwendet werden.
GitHub Apps
A 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 Unternehmensautomatisierung durch das Angebot von:
- 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öglicht GitHub Apps?
GitHub Apps es Automatisierungen, die Sie an anderer Stelle schreiben – etwa externe Dienste oder Workflow-Schritte – zu ermöglichen, innerhalb der von Ihnen gewährten Berechtigungen mit GitHub APIs zu interagieren. Beispiel:
- Empfangen von Webhook-Ereignissen und Auslösen externer Dienste
- Das Aktivieren eines Workflows, um außerhalb seines Standard-Repository-Bereichs zu agieren.
- Integration von GitHub mit Systemen von Drittanbietern
- Koordinieren von Änderungen in vielen Repositorys
- Ausführen von langlebigen Bots oder Diensten, die aktivitäten auf Unternehmensebene überwachen
Hinweis
Das von einem Unternehmen installierte GitHub Apps kann nicht jeden API-Endpunkt aufrufen. Weitere Informationen findest du unter Installieren einer GitHub-App in deinem Unternehmen.
GitHub Actions
GitHub Actions stellt GitHub integrierte Laufzeit für die Ausführung von Automatisierungslogik in Repositorys bereit. Workflows werden auf gehosteten oder selbstgehosteten Runnern ausgeführt und sind ideal für Aufgaben, die mit Codeänderungen oder Repository-Ereignissen verknüpft sind.
GitHub Actions verwenden 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
Wie GitHub ActionsGitHub Apps verwendet
GitHub Actions und GitHub Apps sind tief verbunden:
- Workflow-Berechtigungen entsprechen direkt den Berechtigungen GitHub App.
- Workflows können sich mithilfe von
actions/create-github-app-tokenals eine bestimmte GitHub App authentifizieren. - GitHub Apps kann Workflows durch Ereignisse wie
repository_dispatchz. B. auslösen.
Externe Automatisierungen und Dienste
Externe Automatisierungen werden außerhalb von GitHub auf Ihrer eigenen Infrastruktur ausgeführt. Diese Dienste sind in der Regel:
- Webhook-Ereignisse von einem GitHub App empfangen
- Verwenden Sie das 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 basiert auf GitHub Apps für Authentifizierung, Identitätsverwaltung und Ereignisse – nicht für die Ausführung.
Zusammenarbeit dieser Komponenten
Die meisten Unternehmensautomatisierung verwendet eine Kombination aus GitHub Apps, externen Diensten und GitHub Actions um robuste, 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 ein 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 Folgendes benötigen:
- CI/CD-Pipelines
- Repository-bezogene Automatisierung
- Automatisierte Prüfungen, die an Repositoryereignisse gebunden sind
- Ausführung der Logik 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 in GitHub Apps auf Unternehmensebene entwerfen und verwalten.