Skip to main content

Verwenden von GITHUB_TOKEN für die Authentifizierung in Workflows

Erfahren Sie, wie Sie GITHUB_TOKEN verwenden, um sich im Namen von GitHub Actions zu authentifizieren.

Dieses Lernprogramm führt Sie durch die Verwendung der GITHUB_TOKEN Authentifizierung in GitHub Actions Workflows, einschließlich Beispielen zum Übergeben des Tokens an Aktionen, zum Erstellen von API-Anforderungen und zum Konfigurieren von Berechtigungen für die sichere Automatisierung.

Referenzinformationen findest du unter Workflowsyntax für GitHub Actions.

Verwenden des GITHUB_TOKEN in einem Workflow

Sie können die GITHUB_TOKEN Standardsyntax zum Verweisen auf geheime Schlüssel verwenden: ${{ secrets.GITHUB_TOKEN }}. Beispiele für die Verwendung des Tokens sind das GITHUB_TOKEN Übergeben des Tokens als Eingabe an eine Aktion oder die Verwendung, um eine authentifizierte GitHub API-Anforderung zu erstellen.

Wichtig

Eine Aktion kann über den GITHUB_TOKEN-Kontext auf das github.token zugreifen, auch wenn der Workflow das GITHUB_TOKEN nicht explizit für die Aktion übergibt. Als gute Sicherheitsmethode solltest du immer sicherstellen, dass Aktionen nur über den minimalen benötigten Zugriff verfügen, indem du die Berechtigungen für GITHUB_TOKEN einschränkst. Weitere Informationen finden Sie unter Workflowsyntax für GitHub Actions.

Beispiel 1: Übergeben des GITHUB_TOKEN als Eingabe

In diesem Beispielworkflow wird die GitHub CLI verwendet, die das GITHUB_TOKEN als Wert für den GH_TOKEN-Eingabeparameter erfordert:

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

Beispiel 2: Aufrufen der REST-API

Du kannst das GITHUB_TOKEN für authentifizierte API-Aufrufe verwenden. In diesem Beispielworkflow wird ein Problem mit der GitHub REST-API erstellt:

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

Ändern der Berechtigungen für GITHUB_TOKEN

Verwende den permissions-Schlüssel in deiner Workflowdatei, um Berechtigungen für das GITHUB_TOKEN für einen gesamten Workflow oder für einzelne Aufträge zu ändern. So kannst du die erforderlichen Mindestberechtigungen für einen Workflow oder Auftrag konfigurieren. Als bewährte Sicherheitsmethode sollten Sie dem GITHUB_TOKEN nur den geringsten erforderlichen Zugriff gewähren.

Eine Liste der verfügbaren Berechtigungen und deren parametrisierte Namen findest du unter Verwalten deiner persönlichen Zugriffstoken.

Die beiden zuvor in diesem Artikel beschriebenen Workflowbeispiele zeigen, wie der permissions-Schlüssel auf Auftragsebene verwendet wird.

Erteilen zusätzlicher Berechtigungen

Wenn Sie ein Token benötigen, das Berechtigungen erfordert, die im GITHUB_TOKEN nicht verfügbar sind, erstellen Sie ein GitHub App und generieren Sie innerhalb Ihres Workflows ein Installationszugriffstoken. Weitere Informationen finden Sie unter Erstellen authentifizierter API-Anforderungen mit einer GitHub App in einem GitHub Actions-Workflow. Alternativ können Sie ein Objekt personal access tokenerstellen, es als geheimer Schlüssel in Ihrem Repository speichern und das Token in Ihrem Workflow mit der ${{ secrets.SECRET_NAME }} Syntax verwenden. Weitere Informationen findest du unter Verwalten deiner persönlichen Zugriffstoken und Verwenden von Geheimnissen in GitHub-Aktionen.

Nächste Schritte