Ce didacticiel vous explique comment utiliser le GITHUB_TOKEN
pour l'authentification dans les workflows GitHub Actions, avec des exemples pour transmettre le jeton aux actions, effectuer des requĂȘtes API et configurer les autorisations pour une automatisation sĂ©curisĂ©e.
Pour obtenir des informations de référence, consultez Workflow syntax for GitHub Actions.
Utilisation de GITHUB_TOKEN
dans un workflow
Vous pouvez utiliser le GITHUB_TOKEN
avec la syntaxe standard pour référencer les secrets : ${{ secrets.GITHUB_TOKEN }}
. Les exemples d'utilisation GITHUB_TOKEN
du jeton incluent le passage du jeton en tant qu'entrĂ©e d'une action, ou son utilisation pour effectuer une requĂȘte API GitHub authentifiĂ©e. demande d'API authentifiĂ©e.
Important
Une action peut accéder au GITHUB_TOKEN
via le contexte github.token
mĂȘme si le workflow ne passe pas explicitement le GITHUB_TOKEN
Ă lâaction. En tant que bonne pratique de sĂ©curitĂ©, vous devez toujours vous assurer que les actions ont uniquement lâaccĂšs minimal requis en limitant les autorisations accordĂ©es au GITHUB_TOKEN
. Pour plus dâinformations, consultez « Workflow syntax for GitHub Actions ».
Exemple 1 : passage du GITHUB_TOKEN
en tant quâentrĂ©e
Cet exemple de flux de travail utilise leCLI GitHub, qui nécessite GITHUB_TOKEN
en tant que valeur du paramĂštre dâentrĂ©e de GH_TOKEN
:
name: Open new issue on: workflow_dispatch jobs: open-issue: runs-on: ubuntu-latest permissions: contents: read issues: write steps: - run: | gh issue --repo ${{ github.repository }} \ create --title "Issue title" --body "Issue body" env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
name: Open new issue
on: workflow_dispatch
jobs:
open-issue:
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
steps:
- run: |
gh issue --repo ${{ github.repository }} \
create --title "Issue title" --body "Issue body"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Exemple 2 : appel de lâAPI REST
Vous pouvez utiliser le GITHUB_TOKEN
pour effectuer des appels dâAPI authentifiĂ©s. Cet exemple de workflow crĂ©e un problĂšme Ă lâaide de lâAPI REST GitHub :
name: Create issue on commit
on: [ push ]
jobs:
create_issue:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Create issue using REST API
run: |
curl --request POST \
--url https://api.github.com/repos/${{ github.repository }}/issues \
--header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
--header 'content-type: application/json' \
--data '{
"title": "Automated issue for commit: ${{ github.sha }}",
"body": "This issue was automatically created by the GitHub Action workflow **${{ github.workflow }}**. \n\n The commit hash was: _${{ github.sha }}_."
}' \
--fail
Modification des autorisations pour GITHUB_TOKEN
Utilisez la clé permissions
dans votre fichier de workflow pour modifier les autorisations du GITHUB_TOKEN
pour un workflow entier ou pour des travaux individuels. Cela vous permet de configurer les autorisations minimales requises pour un workflow ou un travail. En guise de bonne pratique de sécurité, vous devez accorder à GITHUB_TOKEN
le moins dâaccĂšs requis.
Pour consulter la liste des autorisations disponibles et leurs noms paramétrés, consultez Gestion de vos jetons d'accÚs personnels.
Les deux exemples de workflows plus haut dans cet article montrent la clé permissions
utilisée au niveau du travail.
Octroi dâautorisations supplĂ©mentaires
Si vous avez besoin dâun jeton qui nĂ©cessite des autorisations non disponibles dans GITHUB_TOKEN
, crĂ©ez une GitHub App et gĂ©nĂ©rer un jeton dâaccĂšs dâinstallation dans votre workflow. Pour plus dâinformations, consultez « Effectuer des requĂȘtes dâAPI authentifiĂ©es avec une application GitHub dans un workflow GitHub Actions ». Vous pouvez Ă©galement crĂ©er un personal access token, le stocker en tant que secret dans votre rĂ©fĂ©rentiel et utiliser le jeton dans votre workflow avec la syntaxe ${{ secrets.SECRET_NAME }}
. Pour plus dâinformations, consultez « Gestion de vos jetons d'accĂšs personnels » et « Utilisation de secrets dans GitHub Actions ».