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.
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 AUTOTITLE in der GitHub Enterprise Server-Dokumentation.
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 findest du unter AUTOTITLE und AUTOTITLE.
-
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 installiert die von ihr registrierte 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 Ihrer 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: Entweder rufst du die Anmeldeinformationen und den Hostnamen aus der Instanz ab, oder du lässt den GitHub Enterprise Server-Kund*innen 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 mit den App-Entwicklerinnen teilen. Websiteadministratorinnen 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.
- Möglicherweise müssen Systemadministrator*innen Firewall-Ausnahmen erstellen, damit Ihre Anwendung die Instanz erreichen kann, und sie sind 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 bleibt sicherer, weil sie ihre App-Anmeldeinformationen nicht teilen.
- 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. Abhängig davon, ob eine GitHub Enterprise Server-Instanz verwendet wird, sollten Sie Ihren App-Code so aktualisieren, dass die entsprechende URL verwendet wird. Ersetze 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 Webhookpayloads enthalten einen -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.