Skip to main content

Utiliser GITHUB_TOKEN pour l’authentification dans les flux de travail

Découvrez comment utiliser l’authentification GITHUB_TOKEN pour le compte de GitHub Actions.

Ce tutoriel vous guide tout au long de l’utilisation de l’authentification GITHUB_TOKEN dans GitHub Actions les flux de travail, notamment des exemples de passage du jeton à des actions, d’exécution de demandes d’API et de configuration des autorisations pour l’automatisation sécurisée.

Pour obtenir des informations de référence, consultez Syntaxe de flux de travail pour GitHub Actions.

Utilisation de GITHUB_TOKEN dans un workflow

Vous pouvez utiliser GITHUB_TOKEN en utilisant la syntaxe standard pour référencer les secrets : ${{ secrets.GITHUB_TOKEN }}. Par exemple, parmi les utilisations du GITHUB_TOKEN, on peut citer le passage du jeton comme entrée d’une action, ou son utilisation pour effectuer une requête API authentifiée GitHub.

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 « Syntaxe de flux de travail pour 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 :

YAML
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 flux de travail crée un problème à l’aide de l’API GitHub REST :

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 qui ne sont pas disponibles dans le GITHUB_TOKEN, créez un GitHub App jeton d’accès d’installation et générez un jeton d’accès d’installation dans votre flux de travail. Pour plus d’informations, consultez « Effectuer des requêtes d’API authentifiées avec une application GitHub dans un flux de travail GitHub Actions ». Sinon, vous pouvez créer un personal access token, le stocker comme secret dans votre dépôt et utiliser le jeton dans votre flux de travail en utilisant 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 ».

Étapes suivantes