Skip to main content

Zuweisen von Berechtigungen zu Aufträgen

Ändere die für GITHUB_TOKEN gewährten Standardberechtigungen.

Übersicht

Du kannst permissions verwenden, um die Standardberechtigungen zu ändern, die dem GitHub-Token (GITHUB_TOKEN) gewährt werden. So kannst du Zugriff nach Bedarf hinzufügen oder entfernen, um nur den mindestens erforderlichen Zugriff zu gewähren. Weitere Informationen findest du unter Automatische Tokenauthentifizierung.

permissions kann entweder als Schlüssel auf oberster Ebene verwendet werden, um für alle Aufträge im Workflow zu gelten, oder innerhalb bestimmter Aufträge. Wenn du den Schlüssel permissions innerhalb eines bestimmten Auftrags hinzufügst, werden die von dir angegebenen Zugriffsrechte auf alle Aktionen und Ausführungsbefehle innerhalb dieses Auftrags angewendet, die das GitHub-Token (GITHUB_TOKEN) verwenden. Weitere Informationen findest du unter jobs.<job_id>.permissions.

Für jeden der verfügbaren Bereiche, die in der folgenden Tabelle dargestellt sind, kannst du eine der Berechtigungen zuweisen: read, writeoder none. Wenn du den Zugriff für einen dieser Bereiche angibst, werden alle, die nicht angegeben sind, auf none festgelegt.

Verfügbare Bereiche und Einzelheiten dazu, was sie einer Aktion jeweils erlauben:

ScopeErlaubt einer Aktion die Verwendung von GITHUB_TOKEN zum
actionsArbeiten mit GitHub Actions. actions: write ermöglicht einer Aktion beispielsweise das Abbrechen einer Workflowausführung. Weitere Informationen findest du unter Für GitHub-Apps erforderliche Berechtigungen.
checksArbeiten mit Überprüfungsausführungen und Überprüfungssammlungen. checks: write ermöglicht einer Aktion beispielsweise das Erstellen einer Überprüfungsausführung. Weitere Informationen findest du unter Für GitHub-Apps erforderliche Berechtigungen.
contentsArbeiten mit den Inhalten des Repositorys. contents: read ermöglicht einer Aktion beispielsweise das Auflisten der Commits, und contents:write ermöglicht der Aktion das Erstellen eines Releases. Weitere Informationen findest du unter Für GitHub-Apps erforderliche Berechtigungen.
deploymentsArbeiten mit Bereitstellungen. deployments: write ermöglicht einer Aktion beispielsweise das Erstellen einer neuen Bereitstellung. Weitere Informationen findest du unter Für GitHub-Apps erforderliche Berechtigungen.
discussionsArbeiten mit GitHub Discussions. discussions: write ermöglicht einer Aktion beispielsweise das Schließen oder Löschen einer Diskussion. Weitere Informationen findest du unter Verwenden der GraphQL-API für Diskussionen.
id-tokenAbrufen eines OIDC-Tokens (OpenID Connect). Dies erfordert id-token: write. Weitere Informationen findest du unter Informationen zur Sicherheitshärtung mit OpenID Connect
issuesArbeiten mit Issues. issues: write ermöglicht einer Aktion beispielsweise das Hinzufügen eines Kommentars zu einem Issue. Weitere Informationen findest du unter Für GitHub-Apps erforderliche Berechtigungen.
packagesArbeiten mit GitHub Packages. packages: write ermöglicht einer Aktion beispielsweise das Hochladen und Veröffentlichen von Paketen auf GitHub Packages. Weitere Informationen findest du unter Informationen zu Berechtigungen für GitHub-Pakete.
pagesArbeiten mit GitHub Pages. pages: write ermöglicht einer Aktion beispielsweise das Anfordern eines GitHub Pages-Builds. Weitere Informationen findest du unter Für GitHub-Apps erforderliche Berechtigungen.
pull-requestsArbeiten mit Pull Requests. pull-requests: write ermöglicht einer Aktion beispielsweise das Hinzufügen einer Bezeichnung zu einem Pull Request. Weitere Informationen findest du unter Für GitHub-Apps erforderliche Berechtigungen.
repository-projectsArbeiten mit GitHub-Projekten (klassisch). repository-projects: write ermöglicht einer Aktion beispielsweise das Hinzufügen einer Spalte zu einem Projekt (klassisch). Weitere Informationen findest du unter Für GitHub-Apps erforderliche Berechtigungen.
security-eventsArbeiten mit GitHub-Codeüberprüfungen und Dependabot-Warnungen. security-events: read ermöglicht einer Aktion beispielsweise das Auflisten der Dependabot-Warnungen für das Repository, und security-events: write ermöglicht einer Aktion, den Status einer Codeüberprüfungswarnung zu aktualisieren. Weitere Informationen findest du unter Repositoryberechtigungen für „Codeüberprüfungswarnungen“ und Repositoryberechtigungen für „Dependabot-Warnungen“ in „Für GitHub Apps erforderliche Berechtigungen“.
statusesArbeiten mit Commitstatus. statuses:read ermöglicht einer Aktion beispielsweise das Auflisten der Commitstatus für einen bestimmten Verweis. Weitere Informationen findest du unter Für GitHub-Apps erforderliche Berechtigungen.

Definieren des Zugriffs für die GITHUB_TOKEN-Bereiche

Du kannst den Zugriff definieren, den das GITHUB_TOKEN zulässt, indem du read, write oder none als Wert der verfügbaren Bereiche innerhalb des permissions-Schlüssels angibst.

permissions:
  actions: read|write|none
  checks: read|write|none
  contents: read|write|none
  deployments: read|write|none
  id-token: read|write|none
  issues: read|write|none
  discussions: read|write|none
  packages: read|write|none
  pages: read|write|none
  pull-requests: read|write|none
  repository-projects: read|write|none
  security-events: read|write|none
  statuses: read|write|none

Wenn du den Zugriff für einen dieser Bereiche angibst, werden alle, die nicht angegeben sind, auf none festgelegt.

Du kannst die folgende Syntax verwenden, um einen der read-all- oder write-all-Zugriffe für alle verfügbaren Reservierungsumfänge zu definieren:

permissions: read-all
permissions: write-all

Du kannst die folgende Syntax verwenden, um Berechtigungen für alle verfügbaren Bereiche zu deaktivieren:

permissions: {}

Ändern der Berechtigungen in einem geforkten Repository

Darüber hinaus kannst du den permissions-Schlüssel verwenden, um Leseberechtigungen für geforkte Repositorys hinzuzufügen oder zu entfernen, aber in der Regel kannst du keinen Schreibzugriff gewähren. Eine Ausnahme für dieses Verhalten besteht dann, wenn ein Administratorbenutzer die Option Schreibtoken an Workflows aus Pull Requests senden in den GitHub Actions-Einstellungen ausgewählt hat. Weitere Informationen findest du unter Verwalten von GitHub Actions-Einstellungen für ein Repository.

Festlegen der GITHUB_TOKEN-Berechtigungen für alle Aufträge in einem Workflow

Du kannst permissions auf der obersten Ebene eines Workflows angeben, sodass die Einstellung für alle Aufträge im Workflow gilt.

Beispiel: Festlegen der GITHUB_TOKEN-Berechtigungen für einen gesamten Workflow

In diesem Beispiel wird gezeigt, wie Berechtigungen für das GitHub-Token (GITHUB_TOKEN) festgelegt werden, die für alle Aufträge im Workflow gelten. Bei allen Berechtigungen handelt es sich um die Gewährung von Lesezugriff.

name: "My workflow"

on: [ push ]

permissions: read-all

jobs:
  ...

Festlegen der GITHUB_TOKEN-Berechtigungen für einen bestimmten Auftrag

Du kannst für einen spezifischen Auftrag jobs.<job_id>.permissions verwenden, um die Standardberechtigungen zu ändern, die demGITHUB_TOKEN gewährt werden, und können so den Zugriff nach Bedarf hinzufügen oder entfernen, um nur den erforderlich Mindestzugriff zu gewähren. Weitere Informationen findest du unter Automatische Tokenauthentifizierung.

Wenn du die Berechtigung in einer Auftragsdefinition angibst, kannst du bei Bedarf einen anderen Satz von Berechtigungen für die GITHUB_TOKEN für jeden Auftrag konfigurieren. Alternativ kannst du die Berechtigungen für alle Aufträge im Workflow angeben. Informationen zum Definieren von Berechtigungen auf Workflow-Ebene findest du unter permissions.

Beispiel: Festlegen der GITHUB_TOKEN-Berechtigungen für einen Auftrag in einem Workflow

In diesem Beispiel werden Berechtigungen angezeigt, die für den GITHUB_TOKEN eingestellt werden, der nur für den Auftrag namens stale angewendet werden. Der Schreibzugriff wird für die issues- und pull-requests-Bereiche gewährt. Alle anderen Bereiche haben keinen Zugriff.

jobs:
  stale:
    runs-on: ubuntu-latest

    permissions:
      issues: write
      pull-requests: write

    steps:
      - uses: actions/stale@v5