À propos de l’authentification
De nombreux points de terminaison de l’API REST nécessitent une authentification ou retournent des informations supplémentaires si vous êtes authentifié. De plus, vous pouvez effectuer plus de requêtes par heure lorsque vous êtes authentifié.
Vous pouvez authentifier votre requête en envoyant un jeton dans l’en-tête Authorization
de votre requête. Dans l’exemple suivant, remplacez YOUR-TOKEN
par une référence à votre jeton :
curl --request GET \
--url "http(s)://HOSTNAME/api/v3/octocat" \
--header "Authorization: Bearer YOUR-TOKEN"
Remarque : Dans la plupart des cas, vous pouvez utiliser Authorization: Bearer
ou Authorization: token
pour passer un jeton. Toutefois, si vous passez un jeton web JSON (JWT), vous devez utiliser Authorization: Bearer
.
Si vous essayez d’utiliser un point de terminaison de l’API REST sans jeton ou avec un jeton disposant d’autorisations insuffisantes, vous recevez une réponse 404 Not Found
ou 403 Forbidden
.
Authentification avec un personal access token
Si vous souhaitez utiliser l’API REST GitHub à des fins personnelles, vous pouvez créer un personal access token. Pour plus d’informations sur la création d’un personal access token, consultez « Managing your personal access tokens ».
Authentification avec un jeton généré par une application
Si vous voulez utiliser l’API pour une organisation ou au nom d’un autre utilisateur, GitHub vous recommande d’utiliser une GitHub App. Pour plus d’informations, consultez « À propos de l’authentification avec une application GitHub ».
Vous pouvez également créer un jeton OAuth avec une OAuth App pour accéder à l’API REST. Toutefois, GitHub vous recommande d’utiliser plutôt une GitHub App. Les GitHub App permettent de contrôler davantage l’accès et l’autorisation dont dispose l’application.
Utilisation de l’authentification de base
Pour y accéder, certains points de terminaison de l’API REST pour les GitHub App et les OAuth App vous obligent à utiliser une authentification de base. Vous utiliserez l’ID client de l’application comme nom d’utilisateur et le secret client de l’application comme mot de passe.
Par exemple :
curl --request POST \
--url "http(s)://HOSTNAME/api/v3/authorizations" \
--user ":"
Vous pouvez trouver l’ID client et générer un secret client dans la page des paramètres de votre application. Pour les GitHub App appartenant à l’utilisateur, la page des paramètres est https://github.com/settings/apps/APP-SLUG
. Pour les GitHub App appartenant à l’organisation, la page des paramètres est https://github.com/organizations/ORGANIZATION/settings/apps/APP-SLUG
. Remplacez APP-SLUG
par le nom sluggifié de votre application et ORGANIZATION
par le nom sluggifié de votre organisation. Par exemple : https://github.com/organizations/octo-org/settings/apps/octo-app
.
Authentification dans un workflow GitHub Actions
Si vous voulez utiliser l’API dans un workflow GitHub Actions, GitHub vous recommande d’être authentifié avec le jeton GITHUB_TOKEN
intégré au lieu de créer un jeton. Vous pouvez accorder des autorisations au GITHUB_TOKEN
avec la clé permissions
. Pour plus d’informations, consultez « Authentification par jeton automatique ».
Authentification avec un nom d’utilisateur et un mot de passe
GitHub vous recommande d’utiliser un jeton pour vous authentifier auprès de l’API REST au lieu de votre mot de passe. Vous avez davantage de contrôle sur ce qu’un jeton peut faire et vous pouvez révoquer un jeton à tout moment. Toutefois, vous pouvez également vous authentifier auprès de l’API REST avec votre nom d’utilisateur et votre mot de passe pour l’authentification de base. Pour ce faire, vous transmettez votre nom d’utilisateur et votre mot de passe avec l’option --user
:
curl --request GET \
--url "http(s)://HOSTNAME/api/v3/user" \
--user USERNAME:PASSWORD