Skip to main content

Utiliser GITHUB_TOKEN dans les flux de travail

Apprenez à utiliser le GITHUB_TOKEN pour vous authentifier au nom de GitHub Actions.

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 :

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 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.

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 ».

Étapes suivantes