Alle Beiträge

Entwicklung und Zusammenarbeit

GitHub Apps: Erst die Aufgabe, dann die Berechtigung

Eine Umstellung von persönlichen Tokens auf eine GitHub App ist erst dann sinnvoll abgegrenzt, wenn jede automatisierte Aktion einen Zweck, einen Datenbereich und einen Verantwortlichen hat. Eine neue Integrationsmöglichkeit ist keine Aufforderung, alle verfügbaren Rechte zu vergeben.

KIURO Redaktion · Publiziert: · Geprüft:

GitHub meldete Enterprise-Installationen für Apps am 23. Oktober als allgemein verfügbar. Die Ankündigung erweitert administrative API-Abdeckung; GHES 3.24 wird als gesonderte künftige Bereitstellung genannt. (GitHub)

Mit einer Aktionsliste beginnen

Automatisierungen wachsen oft um ein persönliches Token herum. Später ist nicht mehr sichtbar, ob das Skript nur einen Bericht liest oder auch Zugriffsregeln ändern darf. Der erste Migrationsschritt ist deshalb eine Liste tatsächlicher Aufgaben. Nicht von bestehenden Token-Rechten auf notwendigen Bedarf schliessen: Breite Rechte können ein historischer Zufall sein.

Beispiel einer Berechtigungsakte
AufgabeLesen oder Schreiben?Vor einer Freigabe klären
Bestand für einen internen Bericht erfassenZunächst lesenWelche Organisationen und Felder sind erforderlich?
Eine Regel ändernGezielte SchreibaktionWer genehmigt Änderung und Rücknahme?
Zugang eines Mitglieds verwaltenVeränderung mit FolgenWelche Ereignisse dürfen den Schritt auslösen?
Ergebnis eines Jobs meldenBegrenzte AusgabeWelche Daten dürfen in die Meldung?

Die Beispiele legen keine konkreten GitHub-Berechtigungsnamen fest. Diese müssen für den verwendeten Endpunkt und Authentifizierungskontext aus der aktuellen Dokumentation abgeleitet werden. So wird verhindert, dass ein fachlicher Begriff wie «Bericht» versehentlich als Recht zur breiten Administration umgesetzt wird.

Vier Ebenen nicht in einem Häkchen zusammenfassen

GitHub unterscheidet Repository-, Organisations-, Enterprise- und Account-Berechtigungen und empfiehlt den minimal erforderlichen Umfang. Eine App-Zulassung ist deshalb nicht dieselbe Entscheidung wie ein Benutzerzugriff auf beliebige Ressourcen. (GitHub)

Für jede Aktion sind mindestens Ressourcenbereich, Identität und Art der Änderung zu klären. Zusätzlich braucht die Schlüsselverwaltung einen Eigentümer und einen Weg zur Sperrung. Tokens sollten nicht in Code, Protokollen oder Kundenübergaben auftauchen. Das gilt unabhängig davon, ob eine App einen früheren PAT ersetzt.

Was beim Vergleich PAT gegen App geprüft werden sollte

Entscheidung je Aufgabe statt pauschaler Sieger
PrüffrageBisherige AutomatisierungApp-Zielbild
API und Methode unterstützt?Aktuellen Aufruf dokumentierenEndpunkt und Authentifizierungsweg bestätigen
Wessen Lebenszyklus bestimmt den Zugang?Personenabhängigkeit sichtbar machenVerantwortung für App und Installation festlegen
Wie wird Zugang entzogen?Sperrverfahren und Abhängigkeiten prüfenEntzug und Wiederanlauf kontrolliert erproben
Wie lässt sich eine Aktion zuordnen?Vorhandene Protokolle prüfenNachvollziehbarkeit für die konkrete Aufgabe vorsehen

Die allgemeine Verfügbarkeit sagt nichts darüber aus, ob ein bestimmtes Skript unverändert funktioniert. API-Abdeckung, Webhook-Ereignisse, Fehlerbehandlung und das Verhalten beim Entzug eines Zugangs gehören in einen begrenzten Versuch. Für GHES zusätzlich die tatsächlich eingesetzte Serverversion betrachten; eine Cloud-Meldung beweist keine Freigabe des eigenen Servers.

Ein reversibler Lesepilot

  1. Eine einzelne lesende Aufgabe mit eng abgegrenzten Ressourcen auswählen.
  2. Bisherigen Ablauf und erwartete Datenausgabe festhalten.
  3. App-Zugang nach Dokumentation einrichten lassen; Änderungen und Schlüsselübernahme dokumentieren.
  4. Alte und neue Ausgabe anhand vorher definierter Kriterien vergleichen, ohne produktive Schreibaktionen auszulösen.
  5. Sperrung und Wiederanlauf prüfen und erst danach weitere Aufgaben migrieren.

Eine schreibende Automation benötigt anschliessend eigene Grenzen: erlaubte Übergänge, Freigabe, Wiederholung und Abbruch bei unerwartetem Zustand. Dass Lesen funktioniert hat, ist kein Test für administrative Änderungen. Für eine Agentur gehört ausserdem in die Übergabe, ob die App dem Kunden oder dem betreuenden Team gehört und wer Rechte später ändern darf.

Dieser Beitrag ist ein Planungsmodell, kein Installationsprotokoll. KIURO hat hierfür keine App registriert, keinen PAT ersetzt und keinen Kundenaccount geprüft. Konkrete Laufzeiten von Tokens, Pläne und Gebühren werden vor der Umsetzung in der geltenden Dokumentation geprüft, statt hier eine allgemeine Zahl zu versprechen.

Quellen

Datenschutz & Analyse

Mit Ihrer Zustimmung nutzt Kiuro Google Analytics 4, um Seitenbesuche und Interaktionen auszuwerten, etwa Seitenwechsel, Lesetiefe, Projektaufrufe, Kontaktklicks sowie den Beginn und das erfolgreiche Absenden eines Formulars. Google verarbeitet auch Angaben zu Browser, Gerät und ungefährem Standort. Anbieter ist Google Ireland Limited (Irland); eine Bearbeitung durch Google LLC in den USA ist ebenfalls möglich.

Wir übermitteln weder Ihren Namen noch Ihre E-Mail-Adresse oder Nachrichteninhalte. Werbespeicherung, personalisierte Werbung und Google-Signale sind deaktiviert. Google Analytics wird erst nach Ihrer Zustimmung geladen.

Nach Ihrer Zustimmung ist der zwischengespeicherte Seitenwechsel in diesem Tab für 30 Sekunden gültig und wird auf der Zielseite verbraucht. Ihre Entscheidung wird in diesem Browser für sechs Monate gespeichert. Analyse-Cookies sind auf eine Laufzeit von sechs Monaten eingestellt. Sie können Ihre Wahl hier jederzeit ändern. Eine Ablehnung stoppt die Messung und entfernt die Analytics-Cookies dieser Website.

Ihre Einstellungen für den hellen oder dunklen Modus und für Animationen werden separat auf diesem Gerät gespeichert. So merkt sich die Oberfläche Ihre Wahl. Kontakt: hello@kiuro.ch.