Informationen zur Authentifizierung
Viele REST-API-Endpunkte erfordern die Authentifizierung oder geben im Fall einer Authentifizierung zusätzliche Informationen zurück. Darüber hinaus kannst du mehr Anforderungen pro Stunde stellen, wenn du authentifiziert bist.
Du kannst deine Anforderung authentifizieren, indem du ein Token im Authorization
-Header deiner Anforderung sendest. Ersetze im folgenden Beispiel YOUR-TOKEN
durch einen Verweis auf dein Token:
curl --request GET \
--url "http(s)://HOSTNAME/api/v3/octocat" \
--header "Authorization: Bearer YOUR-TOKEN"
Hinweis: In den meisten Fällen kannst du Authorization: Bearer
oder Authorization: token
verwenden, um ein Token zu übergeben. Wenn du jedoch ein JWT (JSON Web Token) übergibst, musst du Authorization: Bearer
verwenden.
Wenn du versuchst, einen REST-API-Endpunkt ohne ein Token oder mit einem Token zu verwenden, das über unzureichende Berechtigungen verfügt, wird die Meldung 404 Not Found
oder 403 Forbidden
zurückgegeben.
Authentifizieren mit einem personal access token
Wenn du die GitHub-REST-API für den persönlichen Gebrauch verwenden möchtest, kannst du ein personal access token erstellen. Weitere Informationen zum Erstellen eines personal access token findest du unter Managing your personal access tokens.
Authentifizieren mit einem von einer App generierten Token
Wenn du die API für eine Organisation oder im Namen anderer Benutzer*innen verwenden möchtest, empfiehlt GitHub, dass du eine GitHub App verwendest. Weitere Informationen findest du unter Informationen zur Authentifizierung mit einer GitHub-App.
Du kannst auch ein OAuth-Token mit einer OAuth App erstellen, um auf die REST-API zuzugreifen. GitHub empfiehlt jedoch, stattdessen eine GitHub App zu verwenden. GitHub Apps ermöglichen mehr Kontrolle über den Zugriff und die Berechtigungen, über die die App verfügt.
Verwenden der Standardauthentifizierung
Für einige REST-API-Endpunkte für GitHub Apps und OAuth Apps musst du die Standardauthentifizierung für den Zugriff auf den Endpunkt verwenden. Du verwendest die Client-ID der App als Benutzernamen und den geheimen Clientschlüssel der App als Kennwort.
Beispiel:
curl --request POST \
--url "http(s)://HOSTNAME/api/v3/authorizations" \
--user ":"
Du kannst die Client-ID ermitteln und einen geheimen Clientschlüssel auf der Einstellungsseite für deine App generieren. Für GitHub Apps im Besitz von Benutzer*innen ist https://github.com/settings/apps/APP-SLUG
die Einstellungsseite. Für GitHub Apps im Besitz von Organisationen ist https://github.com/organizations/ORGANIZATION/settings/apps/APP-SLUG
die Einstellungsseite. Ersetze APP-SLUG
durch den mit Platzhaltern versehenen Namen deiner App und ORGANIZATION
durch den mit Platzhaltern versehenen Namen deiner Organisation. Beispiel: https://github.com/organizations/octo-org/settings/apps/octo-app
.
Authentifizieren in einem GitHub Actions-Workflow
Wenn du die API in einem GitHub Actions-Workflow verwenden möchtest, empfiehlt GitHub, dass du dich mit dem integrierten GITHUB_TOKEN
authentifizierst, anstatt ein Token zu erstellen. Du kannst den GITHUB_TOKEN
mit dem Schlüssel permissions
Berechtigungen erteilen. Weitere Informationen findest du unter Automatische Tokenauthentifizierung.
Authentifizieren mit Benutzername und Kennwort
GitHub empfiehlt die Verwendung eines Tokens anstelle eines Kennworts zur Authentifizierung bei der REST-API. Du hast mehr Kontrolle darüber, was ein Token tun kann, und du kannst ein Token jederzeit widerrufen. Du kannst dich jedoch auch bei der REST-API authentifizieren, indem du deinen Benutzernamen und dein Kennwort für die Standardauthentifizierung verwendest. Übergib hierfür deinen Benutzernamen und dein Kennwort mit der --user
-Option:
curl --request GET \
--url "http(s)://HOSTNAME/api/v3/user" \
--user USERNAME:PASSWORD