Informationen zum Entwickeln von GitHub Apps für GitHub Enterprise Server
Wenn deine GitHub App für Organisationen in einer GitHub Enterprise Server-Instanz verfügbar sein sollen, der du nicht angehörst, musst du die folgenden Schritte ausführen.
Diese Schritte sind nicht erforderlich, wenn deine GitHub App nur von Organisationen in einer GitHub Enterprise Server-Instanz verwendet wird, der du angehörst. Weitere Informationen findest du unter Installieren einer eigenen GitHub-App.
Wenn der Zugriff auf GitHub Enterprise Server wichtig ist, überlege, ob stattdessen eine benutzerdefinierte Aktion für GitHub Actions deinen Anforderungen entspricht. Öffentliche Aktionen sind in GitHub Enterprise Server-Instanzen mit GitHub Connect verfügbar. Weitere Informationen findest du unter Aktivieren des automatischen Zugriffs auf GitHub.com-Aktionen mit GitHub Connect.
Jede GitHub Enterprise Server-Instanz muss ihre eigene GitHub App registrieren.
Organisationen im Besitz einer GitHub Enterprise Server-Instanz können keine GitHub Apps installieren, die auf GitHub.com oder in einer anderen GitHub Enterprise Server-Instanz registriert sind. Stattdessen müssen sie eine eigene GitHub App registrieren und installieren, damit sie in dieser Instanz verwendet werden kann.
-
Der App-Entwickler bzw. die App-Entwicklerin erstellt ein Manifest oder URL-Parameter. Weitere Informationen finden Sie unter Registrieren einer GitHub-App über ein Manifest und unter Registrieren einer GitHub-App mithilfe von URL-Parametern.
-
Der App-Entwickler bzw. die App-Entwicklerin gibt das Manifest oder die URL-Parameter für den GitHub Enterprise Server-Administrator bzw. die -Administratorin frei, der/die die App verwenden möchte. Dasselbe Manifest oder dieselben URL-Parameter können für mehrere GitHub Enterprise Server-Instanzen freigegeben werden.
-
Ein Organisationsbesitzer in der Instanz verwendet die Manifestparameter oder URL-Parameter, um eine GitHub App zu registrieren.
-
Die Organisation registriert die erstellte GitHub App.
Optional gilt: Wenn die Organisation die GitHub App öffentlich gemacht hat, können auch andere Organisationen innerhalb der Instanz die GitHub App installieren. Es gibt keine Möglichkeit, eine GitHub App für eine gesamte Instanz zu installieren. Sie kann nur für Organisationen innerhalb einer Instanz installiert werden.
Der App-Code muss auf die GitHub App-Anmeldeinformationen für die Instanz zugreifen können.
Der Code deiner App benötigt die Anmeldeinformationen der GitHub App, die die GitHub Enterprise Server-Instanz registriert hat. Außerdem wird der Hostname der Instanz benötigt. Du hast zwei Optionen: Rufe die Anmeldeinformationen und den Hostnamen aus der Instanz ab, oder lasse GitHub Enterprise Server-Kund*innen und eine selbst hostbare Version der App hosten und verwalten.
Abrufen der Anmeldeinformationen aus der GitHub Enterprise Server-Instanz
Die Instanz kann die GitHub App-Anmeldeinformationen und den Hostnamen für den App-Entwickler bzw. die App-Entwicklerin freigeben. Websiteadministrator*innen sollten dies nur tun, wenn sie dem App-Entwickler bzw. der App-Entwicklerin vertrauen. Anschließend kann der App-Code die entsprechenden Anmeldeinformationen abhängig von den ausgeführten Aktionen verwenden. Der App-Entwickler bzw. die App-Entwicklerin muss Vorkehrungen treffen, um die entsprechenden Anmeldeinformationen zu verwenden und Datenlecks zu vermeiden.
Vorteile:
- Der App-Entwickler bzw. die App-Entwicklerin steuert die Infrastruktur, in der die App ausgeführt wird.
- Der App-Entwickler bzw. die App-Entwicklerin hat mehr Kontrolle über App-Updates.
- Der App-Entwickler bzw. die App-Entwicklerin hat möglicherweise mehr Einblick in die App-Leistung.
Nachteile:
- Der App-Entwickler bzw. die App-Entwicklerin muss Vorkehrungen treffen, um Datenlecks in der Instanz zu vermeiden.
- Websiteadministrator*innen müssen möglicherweise Firewallausnahmen einrichten, damit deine Anwendung die Instanz erreichen kann, und ist vielleicht nicht dazu bereit.
Lasse GitHub Enterprise Server-Kund*innen eine selbst hostbare Version der App hosten und verwalten.
App-Entwicklerinnen können eine selbst hostbare Version ihrer App bereitstellen. Anschließend können Websiteadministratorinnen die App gemäß den Setup- und Installationsanweisungen der App-Entwickler*innen hosten.
Die Methode, mit der die selbst hostbare Version der App erstellt und freigegeben wird, ist den App-Entwickler*innen überlassen und hängt von der Technologie ab, die von der App verwendet wird.
Vorteile:
- Die Instanz ist besser geschützt, da keine App-Anmeldeinformationen freigegeben werden.
- Der App-Entwickler bzw. die App-Entwicklerin muss sich keine Sorgen über Datenlecks in der Instanz machen.
Nachteile:
- App-Entwicklerinnen sind darauf angewiesen, dass Websiteadministratorinnen die Infrastruktur für die App bereitstellen und alles richtig einrichten.
- Das Freigeben von Updates für den App-Code ist möglicherweise komplexer.
- Der App-Entwickler bzw. die App-Entwicklerin hat möglicherweise keinen Einblick mehr in die App-Leistung.
Der App-Code muss die richtigen URLs verwenden.
GitHub Enterprise Server verwendet andere URLs als GitHub Free, GitHub Pro, GitHub Team und GitHub Enterprise Cloud. Bei Verwendung einer GitHub Enterprise Server-Instanz musst du deinen App-Code mit der entsprechenden URL aktualisieren. Ersetze HOSTNAME
durch den Hostnamen der GitHub Enterprise Server-Instanz.
GitHub Free GitHub Pro GitHub Team GitHub Enterprise Cloud | GitHub Enterprise Server |
---|---|
https://api.github.com | https://HOSTNAME/api/v3 |
https://api.github.com/graphql | https://HOSTNAME/api/v3/graphql |
https://github.com/login/oauth/authorize | https://HOSTNAME/login/oauth/authorize |
https://github.com/login/oauth/access_token | https://HOSTNAME/login/oauth/access_token |
Der App-Code muss die Featureunterschiede kennen.
Neue REST-API-Endpunkte, GraphQL-Objekte und Webhooks werden für GitHub Enterprise Server zu einem späteren Zeitpunkt als für GitHub Free, GitHub Pro, GitHub Team und GitHub Enterprise Cloud freigegeben. Darüber hinaus gibt es mehrere Versionen von GitHub Enterprise Server, und ältere Versionen verfügen möglicherweise über andere REST-API-Endpunkte, GraphQL-Objekte und Webhooks.
Daher muss der App-Code diese Unterschiede kennen. API-Antworten und Webhooknutzdaten enthalten einen x-github-enterprise-version
-Header für GitHub Enterprise Server-Nutzdaten, mit dem du ermitteln kannst, welche Version verwendet wird.
Jede GitHub Enterprise Server-Instanz kann Ratenbegrenzungen konfigurieren.
Jede GitHub Enterprise Server-Instanz kann eigene Ratenbegrenzungen konfigurieren. Wenn deine App eine Ratenbegrenzung erreicht und bereits Vorkehrungen trifft, um innerhalb dieser Begrenzung zu bleiben, musst du mit dem Administrator bzw. der Administratorin der GitHub Enterprise Server-Instanz sprechen.