Skip to main content

Entscheiden, wann eine GitHub App erstellt werden soll

Beim Erstellen einer Integration sollten Sie in den folgenden Szenarien die Verwendung von GitHub App anstelle von OAuth app, personal access token oder GitHub Actions in Betracht ziehen.

Verwenden einer GitHub App anstelle einer OAuth app

Im Allgemeinen werden GitHub Apps gegenüber OAuth apps bevorzugt.

Sowohl OAuth apps als auch GitHub Apps verwenden OAuth 2.0.

OAuth apps kann nur im Namen eines Benutzers handeln, während GitHub Apps er entweder im Namen eines Benutzers oder unabhängig von einem Benutzer handeln kann.

Weitere Informationen finden Sie unter Unterschiede zwischen GitHub Apps und OAuth-Apps.

Informationen zum Migrieren eines vorhandenen OAuth app zu einem GitHub App finden Sie unter Migrieren von OAuth-Apps zu GitHub Apps.

GitHub Apps bieten erhöhte Sicherheit

GitHub Apps Bieten Sie mehr Kontrolle darüber, was die App tun kann. Anstelle der umfassenden Berechtigungsbereiche, die OAuth apps verwendet, verwendet GitHub Apps feingranulare Berechtigungen. Wenn Ihre App z. B. den Inhalt eines Repositorys lesen muss, würde ein OAuth apprepo Bereich erforderlich sein, wodurch die App auch die Repositoryinhalte und -einstellungen bearbeiten kann. Ein GitHub App Kann schreibgeschützten Zugriff auf Repositoryinhalte anfordern, wodurch die App keine privilegierteren Aktionen wie das Bearbeiten der Repositoryinhalte oder -einstellungen ausführen kann.

GitHub Apps bieten auch mehr Kontrolle über den Repositoryzugriff. Mit einem GitHub App kann der Benutzer oder der Organisationsinhaber, der die App installiert hat, entscheiden, auf welche Repositories die App zugreifen kann. Umgekehrt kann ein OAuth app auf jedes Repository zugreifen, auf das der Benutzer, der die App autorisiert hat, zugreifen kann.

GitHub Apps verwenden Sie kurzlebige Token. Wenn das Token geleakt wird, ist es nur für einen kürzeren Zeitraum gültig, wodurch potenzieller Schaden begrenzt wird. Umgekehrt laufen OAuth app Tokens erst dann nicht mehr ab, wenn die Person, die das OAuth app autorisiert hat, das Token widerruft.

Diese Sicherheitsfunktionen tragen dazu bei, die Sicherheit Ihrer App GitHub App zu härten, indem sie den Schaden begrenzen, der entstehen könnte, wenn die Anmeldeinformationen Ihrer App offengelegt würden. Darüber hinaus können Organisationen mit strengeren Sicherheitsrichtlinien deine App verwenden.

GitHub Apps kann unabhängig von oder im Auftrag eines Benutzers handeln

GitHub Apps kann unabhängig von einem Benutzer handeln. Dies ist von Vorteil für Automatisierungen, die keine Benutzereingabe erfordern.

Ähnlich wie OAuth apps, GitHub Apps können weiterhin Aktionen im Auftrag eines Benutzers ausgeführt werden. Im Gegensatz dazu OAuth apps, was nicht darauf hinweist, dass die Aktion von der App ausgeführt wurde, geben Sie an, GitHub Apps dass die Aktion von der App im Auftrag des Benutzers ausgeführt wurde.

GitHub Apps sind nicht an ein Benutzerkonto gebunden und belegen keinen Lizenzplatz. GitHub Apps bleiben auch dann installiert, wenn die Person, die die App ursprünglich installiert hat, die Organisation verlässt. Auf diese Weise können deine Integrationen auch dann weiterhin funktionieren, wenn Personen dein Team verlassen.

GitHub Apps haben skalierbare Ratenbegrenzungen

Das Ratenlimit für GitHub Apps bei Verwendung eines Installationszugriffstokens skaliert mit der Anzahl der Repositories und der Anzahl der Organisationsbenutzer. Umgekehrt haben OAuth apps niedrigere Ratenlimits und skalieren nicht. Weitere Informationen finden Sie unter Preisbeschränkungen für GitHub Apps.

GitHub Apps haben integrierte Webhooks

GitHub Apps verfügen über integrierte, zentrale Webhooks. GitHub Apps kann Webhook-Ereignisse für alle Repositorys und Organisationen empfangen, auf die die App zugreifen kann. OAuth apps Umgekehrt müssen Webhooks für jedes Repository und jede Organisation einzeln konfiguriert werden.

Der API-Zugriff unterscheidet sich geringfügig

Im Allgemeinen können GitHub Apps und OAuth apps dieselben API-Anfragen stellen. Es gibt aber einige Unterschiede:

  • Die REST-API zum Verwalten von Check-Ausführungen und Check-Suites ist nur für GitHub Apps verfügbar.
  • Nicht jede API auf Unternehmensebene unterstützt GitHub Apps derzeit. Neue Berechtigungen werden hinzugefügt, um weitere APIs zu unterstützen. Überprüfen Sie Erforderliche Berechtigungen für GitHub Apps , um die Liste der unterstützten Unternehmensberechtigungen und APIs zu überprüfen.
  • Einige Anfragen geben möglicherweise unvollständige Daten zurück, abhängig von den Berechtigungen und den Zugriffsrechten auf das Repository, die einem GitHub App gewährt wurden. Wenn deine App beispielsweise eine Anforderung sendet, um alle Repositorys abzurufen, auf die eine Benutzerin zugreifen kann, enthält die Antwort nur die Repositorys, auf die der App ebenfalls Zugriff gewährt wurden.

Weitere Informationen zu den REST-API-Endpunkten, die GitHub Apps zur Verfügung stehen, finden Sie unter Für GitHub App-Installationszugriffstoken verfügbare Endpunkte.

Auswählen zwischen einem GitHub App oder einem personal access token

Wenn Sie im Namen eines Benutzers oder für eine Organisation auf GitHub Ressourcen zugreifen möchten oder eine langlebige Integration erwarten, empfehlen wir die Erstellung einer GitHub App.

Sie können für API-Tests oder kurzlebige Skripts verwenden personal access tokens . Da ein personal access token einem Benutzer zugeordnet ist, könnte Ihre Automatisierung nicht mehr funktionieren, wenn der Benutzer keinen Zugriff mehr auf die benötigten Ressourcen hat. Ein GitHub App, das in einem Unternehmen oder einer Organisation installiert ist, ist nicht von einem Benutzer abhängig. Darüber hinaus belegt ein GitHub App im Gegensatz zu einem Benutzer keinen GitHubLizenzplatz.

GitHub unterstützt zwei Arten von personal access tokens, empfiehlt jedoch, fine-grained personal access tokens anstelle von personal access tokens (classic) zu verwenden, wann immer möglich. Weitere Informationen zu personal access tokens findest du unter Verwalten deiner persönlichen Zugriffstoken.

Auswählen zwischen einem GitHub App oder GitHub Actions

GitHub Apps und GitHub Actions beide bieten Möglichkeiten zum Erstellen von Automatisierungs- und Workflowtools.

_ GitHub Actions _ Bieten Sie Automatisierung, die Aufträge wie kontinuierliche Integration, Bereitstellungsaufgaben und Projektmanagement in einem Repository ausführen kann. Sie werden direkt auf von GitHub gehosteten Runnern oder auf selbst gehosteten Runnern ausgeführt, die Ihre Administratorin oder Ihr Administrator einrichtet. GitHub Actions wird nicht dauerhaft ausgeführt. GitHub Actions Workflows werden als Reaktion auf Ereignisse ausgeführt, die in ihrem Repository auftreten, und haben nur Zugriff auf die Ressourcen des Repositorys, für das sie eingerichtet sind. Benutzerdefinierte Aktionen können jedoch für mehrere Repositorys und Organisationen freigegeben werden, sodass Entwickler*innen vorhandene Aktionen wiederverwenden und ändern können, um ihre Anforderungen zu erfüllen. GitHub Actions Außerdem verfügen Sie über integrierte geheime Verwaltung, die Sie verwenden können, um sicher mit Drittanbieterdiensten zu interagieren und Bereitstellungsschlüssel sicher zu verwalten.

_ GitHub Apps _ dauerhaft auf einem von Ihnen bereitgestellten Server oder einer Recheninfrastruktur laufen oder auf einem Endgerät des Benutzers ausgeführt werden. Sie können auf GitHub Webhook-Ereignisse und Ereignisse von außerhalb des GitHub Ökosystems reagieren. Sie sind eine gute Option für Vorgänge, die mehrere Repositorys oder Organisationen umfassen, oder für die Bereitstellung gehosteter Dienste für andere Organisationen und Unternehmen. Ein GitHub App ist die beste Wahl beim Erstellen eines Tools mit Funktionen, die hauptsächlich außerhalb von GitHub auftreten oder mehr Ausführungszeit bzw. Berechtigungen erfordern, als einem GitHub Actions-Workflow zugewiesen werden.

Weitere Informationen zum Vergleich GitHub ActionsGitHub Appsfinden Sie unter GitHub-Aktionen im Vergleich zu GitHub-Apps.

Sie können zur Authentifizierung in einer GitHub App ein GitHub Actions verwenden. Workflow, wenn der integrierte GITHUB_TOKEN nicht über ausreichende Berechtigungen verfügt. Weitere Informationen finden Sie unter Erstellen authentifizierter API-Anforderungen mit einer GitHub App in einem GitHub Actions-Workflow.