Solltest du in der API auf etwas Eigenartiges stoßen, findest du hier eine Liste mit Lösungen für einige mögliche Probleme.
Fehler 400
aufgrund nicht unterstützter API-Version
Du solltest den X-GitHub-Api-Version
-Header verwenden, um eine API-Version anzugeben. Beispiel:
$ curl --header "X-GitHub-Api-Version:2022-11-28" https://api.github.com/zen
Wenn du eine nicht vorhandene Version angibst, wird der Fehler 400
ausgelöst.
Weitere Informationen findest du unter API-Versionen.
Fehler 404
für ein vorhandenes Repository
Der Fehler 404
wird für gewöhnlich ausgegeben, wenn dein Client nicht ordnungsgemäß authentifiziert ist.
In diesen Fällen erwartest du möglicherweise einen Fehler vom Typ 403 Forbidden
. Da wir jedoch keinerlei Informationen zu privaten Repositorys angeben möchten, gibt die API stattdessen einen Fehler vom Typ 404
zurück.
Stelle zur Behandlung des Problems Folgendes sicher: Du authentifizierst dich ordnungsgemäß, dein OAuth-Zugriffstoken verfügt über die erforderlichen Bereiche, der Zugriff wird nicht durch Einschränkungen von Drittanbieteranwendungen blockiert, und das Token ist nicht abgelaufen und wurde nicht widerrufen.
Nicht alle Ergebnisse zurückgegeben
Die meisten API-Aufrufe, die auf eine Liste von Ressourcen zugreifen (z. B. Benutzer, Probleme usw.) unterstützen die Pagination. Wenn du bei Anforderungen unvollständige Ergebnisse erhältst, siehst du wahrscheinlich nur die erste Seite. Du musst die restlichen Seiten anfordern, um weitere Ergebnisse zu erhalten.
Wichtig: Versuche nicht, das Format der Paginierungs-URL zu erraten. Nicht jeder API-Aufruf verwendet die gleiche Struktur. Extrahiere stattdessen die Paginierungsinformationen aus dem Linkheader, der mit jeder Anforderung zurückgegeben wird. Weitere Informationen zur Paginierung findest du unter Verwenden der Paginierung in der REST-API.
Standardauthentifizierungsfehler
Am 13. November 2020 wurde die Authentifizierung mit Benutzername und Kennwort für die REST-API und für die API für die OAuth-Autorisierung als veraltet eingestuft, und sie funktioniert nicht mehr.
Verwenden von username
/password
für die Standardauthentifizierung
Wenn du username
und password
für API-Aufrufe verwendest, ist keine Authentifizierung mehr möglich. Beispiel:
curl -u YOUR-USERNAME:YOUR-PASSWORD https://api.github.com/user/repos
Verwende zum Testen von Endpunkten oder bei der lokalen Entwicklung stattdessen ein personal access token oder ein Zugriffstoken für eine GitHub App:
curl -H 'Authorization: Bearer YOUR-TOKEN' https://api.github.com/user/repos
Weitere Informationen findest du unter Managing your personal access tokens und unter Informationen zur Authentifizierung mit einer GitHub-App.
Bei OAuth-Apps empfiehlt sich die Verwendung des Webanwendungsflusses, um ein OAuth-Token für den Header des API-Aufrufs zu generieren:
curl -H 'Authorization: Bearer YOUR-OAUTH-TOKEN' https://api.github.com/user/repos
Zeitlimits
Wenn die Verarbeitung einer API-Anforderung durch GitHub Enterprise Cloud länger als zehn Sekunden dauert, wird die Anforderung durch GitHub Enterprise Cloud beendet, und du erhältst eine Timeoutantwort.