À 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é.
Afin d’authentifier votre requête, vous devrez fournir un jeton d’authentification disposant des étendues ou des autorisations requises. Il existe plusieurs façons d’obtenir un jeton : vous pouvez créer un personal access tokenjeton, générer un jeton avec un GitHub Appou utiliser le composant GITHUB_TOKEN intégré d’un GitHub Actions flux de travail.
Après la création du jeton, vous pouvez authentifier votre demande en envoyant le jeton dans l’en-tête Authorization de votre demande. Par exemple, dans la demande suivante, 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" \
--header "X-GitHub-Api-Version: 2026-03-10"
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.
Limite de tentatives de connexion échouées
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. L’authentification à l’aide d’informations d’identification non valides renvoie initialement une réponse 401 Unauthorized.
Après détection de plusieurs demandes comportant des informations d’identification non valides dans un court délai, l’API rejette temporairement toutes les tentatives d’authentification de cet utilisateur (y compris celles contenant des informations d’identification valides) avec une réponse 403 Forbidden. Pour plus d’informations, consultez « Limites de débit pour l'API REST ».
Authentification avec un personal access token
Si vous souhaitez utiliser l’API GitHub REST pour une utilisation personnelle, vous pouvez créer un personal access token. Si possible, GitHub vous recommande d’utiliser un(e) fine-grained personal access token au lieu d'un(e) personal access token (classic). Pour plus d’informations sur la création d’un personal access token, consultez Gestion de vos jetons d’accès personnels.
Si vous utilisez un fine-grained personal access token, vous fine-grained personal access token avez besoin d’autorisations spécifiques pour accéder à chaque point de terminaison d’API REST. Le document de référence de l’API REST pour chaque point de terminaison indique si le point de terminaison fonctionne avec fine-grained personal access tokens et indique les autorisations requises pour que le jeton utilise le point de terminaison. Certains points de terminaison peuvent nécessiter plusieurs autorisations, et certains points de terminaison peuvent nécessiter une autorisation parmi des autorisations multiples. Pour obtenir une vue d’ensemble des points de terminaison de l’API REST auxquels un fine-grained personal access token accès peut être associé à chaque autorisation, consultez Autorisations nécessaires pour les jetons d’accès personnels affinés.
Si vous utilisez un personal access token (classic), il nécessite des étendues spécifiques pour accéder à chaque point de terminaison d’API REST. Pour obtenir des conseils généraux sur les étendues à choisir, consultez Étendues des applications OAuth.
Personal access tokens agissez comme votre identité (limitée par les étendues ou les autorisations que vous avez sélectionnées) lorsque vous effectuez des demandes à l’API REST. Par conséquent, il est important de garder votre personal access tokens en sécurité. Pour plus d’informations sur la sécurisation de votre personal access tokens, consultez Sécuriser les informations d’identification de l’API.
Personal access tokens et SAML SSO
Authentification avec un jeton généré par une application
Si vous souhaitez utiliser l’API pour une organisation ou pour le compte d’un autre utilisateur, GitHub vous recommande d’utiliser un GitHub App. Pour plus d’informations, consultez « À propos de l’authentification avec une application GitHub ».
La documentation de référence de l’API REST pour chaque point de terminaison indique si le point de terminaison fonctionne avec GitHub Apps et indique les autorisations requises pour que l’application utilise le point de terminaison. Certains points de terminaison peuvent nécessiter plusieurs autorisations, et certains points de terminaison peuvent nécessiter une autorisation parmi des autorisations multiples. Pour obtenir une vue d’ensemble des points de terminaison de l’API REST auxquels un GitHub App accès peut être associé à chaque autorisation, consultez Autorisations requises pour les applications GitHub.
Vous pouvez également créer un jeton OAuth avec un OAuth app pour accéder à l’API REST. Toutefois, GitHub recommande d’utiliser un GitHub App à la place. GitHub Apps autorisez davantage de contrôle sur l’accès et l’autorisation dont dispose l’application.
Utilisation de l’authentification de base
Certains points de terminaison de l’API REST pour GitHub Apps et OAuth apps nécessitent l’utilisation de l’authentification de base pour y accéder. 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/applications/YOUR_CLIENT_ID/token" \
--user "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET" \
--header "Accept: application/vnd.github+json" \
--header "X-GitHub-Api-Version: 2026-03-10" \
--data '{
"access_token": "ACCESS_TOKEN_TO_CHECK"
}'
L’ID client et la clé secrète client sont associés à l’application, et non au propriétaire de l’application ou à un utilisateur qui a autorisé l’application. Ils sont utilisés pour effectuer des opérations pour le compte de l’application, telles que la création de jetons d’accès.
Si vous êtes le propriétaire d’un GitHub App ou OAuth app, ou si vous êtes un gestionnaire d’applications pour un GitHub App, vous pouvez trouver l’ID client et générer une clé secrète client dans la page des paramètres de votre application. Pour accéder à la page des paramètres de votre application :
- Dans le coin supérieur droit de n’importe quelle page sur GitHub, cliquez sur votre photo de profil.
- Accédez aux paramètres de votre compte.
- Pour une application appartenant à un compte personnel, cliquez sur Paramètres.
- Pour une application appartenant à une organisation :
- Cliquez sur Vos organisations.
- À droite de l'organisation, cliquez sur Paramètres.
- Dans la barre latérale gauche, cliquez sur Paramètres de développeur.
- Dans la barre latérale gauche, cliquez GitHub Apps ou OAuth apps.
- Pour GitHub Apps, à droite de GitHub App auquel vous voulez accéder, cliquez sur Modifier. Pour OAuth apps, cliquez sur l’application à laquelle vous souhaitez accéder.
- En regard de l’ID client vous verrez l’ID client de votre application.
- En regard des clés secrètes client, cliquez sur Générer une nouvelle clé secrète client afin de générer une clé secrète client pour votre application.
Authentification dans un GitHub Actions flux de travail
Si vous souhaitez utiliser l’API dans un GitHub Actions flux de travail, GitHub vous recommande de vous authentifier auprès du composant intégré GITHUB_TOKEN au lieu de créer un jeton. Vous pouvez accorder des autorisations au GITHUB_TOKEN avec la clé permissions. Pour plus d’informations, consultez « Utiliser GITHUB_TOKEN pour l’authentification dans les flux de travail ».
Si ce n’est pas possible, vous pouvez stocker votre jeton en tant que secret et utiliser le nom de votre secret dans votre GitHub Actions flux de travail. Pour plus d’informations sur les secrets, consultez « Utilisation de secrets dans GitHub Actions ».
Authentification dans un GitHub Actions flux de travail à l’aide de GitHub CLI
Pour effectuer une requête authentifiée auprès de l’API dans un workflow GitHub Actions à l’aide de GitHub CLI, vous pouvez stocker la valeur de GITHUB_TOKEN en tant que variable d’environnement et utiliser le mot-clé run pour exécuter la sous-commande GitHub CLIapi. Pour plus d’informations sur le mot clé run, consultez « Syntaxe de flux de travail pour GitHub Actions ».
Dans l’exemple de flux de travail suivant, remplacez PATH par le chemin d’accès du point de terminaison. Pour plus d’informations sur le chemin d’accès, consultez Prise en main de l’API REST. Remplacez HOSTNAME par le nom de votre instance GitHub Enterprise Server.
jobs:
use_api:
runs-on: ubuntu-latest
permissions: {}
steps:
- env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api /PATH
Authentification dans un GitHub Actions flux de travail à l’aide de curl
Pour effectuer une requête authentifiée vers l’API dans un workflow GitHub Actions à l’aide de curl, vous pouvez stocker la valeur de GITHUB_TOKEN comme variable d’environnement et utiliser le mot-clé run pour exécuter une requête curl vers l’API. Pour plus d’informations sur le mot clé run, consultez « Syntaxe de flux de travail pour GitHub Actions ».
Dans l’exemple de flux de travail suivant, remplacez PATH par le chemin d’accès du point de terminaison. Pour plus d’informations sur le chemin d’accès, consultez Prise en main de l’API REST. Remplacez HOSTNAME par le nom de votre instance GitHub Enterprise Server.
jobs:
use_api:
runs-on: ubuntu-latest
permissions: {}
steps:
- env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl --request GET \
--url "http(s)://HOSTNAME/api/v3/PATH" \
--header "Authorization: Bearer $GH_TOKEN"
jobs:
use_api:
runs-on: ubuntu-latest
permissions: {}
steps:
- env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl --request GET \
--url "http(s)://HOSTNAME/api/v3/PATH" \
--header "Authorization: Bearer $GH_TOKEN"
Authentification dans un GitHub Actions flux de travail à l’aide de JavaScript
Pour obtenir un exemple de l’authentification dans un GitHub Actions flux de travail à l’aide de JavaScript, consultez Écriture de scripts avec l’API REST et JavaScript.
Authentification avec un nom d’utilisateur et un mot de passe
GitHub 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 \
--header "X-GitHub-Api-Version: 2026-03-10"