Skip to main content
Nous publions des mises à jour fréquentes de notre documentation, et la traduction de cette page peut encore être en cours. Pour obtenir les informations les plus actuelles, consultez la documentation anglaise.

Authentification auprès de l’API REST

Vous pouvez vous authentifier auprès de l’API REST pour accéder à davantage de points de terminaison et avoir une limite de débit plus élevée.

À 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 « Création d’un jeton d’accès personnel ».

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