Minimaler Satz von Bereichen, die mithilfe eines Zugriffstokens auf Github gepusht werden können
Lesezeit: 2 Minuten
Ich habe ein öffentliches Github-Repo (das ich vor ein paar Jahren erstellt habe). Ich habe die Zwei-Faktor-Authentifizierung aktiviert. Ich möchte ein Github-API-Token erstellen, um einige Änderungen an meinem Repo vornehmen zu können.
Was ist der minimale Satz von Bereichen, die ich auf der Github-Seite „Neues persönliches Zugriffstoken“ auswählen muss, um Änderungen an diesem Repository vornehmen zu können?
Ich möchte vermeiden, dem Token unnötige Rechte zu geben.
Entsprechend der GitHub-Dokumentationder Anwendungsbereich für öffentliche Repositories ist public_repound für private Repositories ist repo.
Ein Token mit einem dieser Bereiche ist der eingeschränkteste Zugriff, der für Git-Push- oder -Pull-Zugriff möglich ist; Dieses Token kann jedoch auf alle öffentlichen (bzw. privaten) Repositories zugreifen und auch für bestimmte API-Zugriffe verwendet werden. Wenn Sie das beunruhigt, können Sie einen SSH-Schlüssel für Ihr persönliches Konto verwenden oder, um es noch weiter einzuschränken, einen Read-Write-Deployment-Schlüssel für das betreffende Repo verwenden.
Obwohl es zwei Jahre her ist, seit die Frage gestellt wurde, gibt es jetzt eine Lösung von GitHub.
Persönliche Zugriffstoken (klassisch) erhalten Berechtigungen aus einer breiten Palette von Lese- und Schreibbereichen. Sie haben Zugriff auf alle Repositories und Organisationen, auf die der Benutzer zugreifen könnte, und dürfen ewig leben. Beispielsweise bietet der Repo-Bereich breiten Zugriff auf alle Daten in privaten Repositories, auf die der Benutzer Zugriff hat, und zwar auf Dauer.
Fein abgestufte persönliche Zugriffstokenhingegen erhalten Berechtigungen aus einem Satz von über 50 granularen Berechtigungen, die den Zugriff auf die Organisations-, Benutzer- und Repository-APIs von GitHub steuern. Jede Berechtigung kann auf der Basis „Kein Zugriff“, „Lesen“ oder „Lesen und Schreiben“ erteilt werden. Als Beispiel können Sie jetzt ein PAT erstellen, das nur Issues lesen und sonst nichts tun kann – nicht einmal den Inhalt eines Repositorys lesen.
Unter Repository Access wählen Only select repositories und wählen Sie das Repo aus, mit dem Sie arbeiten möchten (authentifizierte Pulls, Commits, Pushs usw.)
Unter Permissions wählen Repository permissions und nur eingestellt Contents Zu Access level -> Read and write.
Fügen Sie dann das PAT mit Kontext hinzu secrets zu Ihrem GitHub-Workflow/Ihrer Aktion, z. B.: