Hinweis: GitHub-gehostete Runner werden auf GitHub Enterprise Server derzeit nicht unterstützt. Weitere Informationen zur geplanten zukünftigen Unterstützung findest Du in der GitHub public roadmap.
Ü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 Berechtigungen, die in der folgenden Tabelle dargestellt sind, können Sie (sofern verfügbar) eine der Zugriffsebenen zuweisen: read
, write
oder none
. write
enthält read
. Wenn du den Zugriff für einen dieser Berechtigungen angibst, werden alle, die nicht angegeben sind, auf none
festgelegt.
Verfügbare Berechtigungen und Einzelheiten dazu, was sie einer Aktion jeweils erlauben:
Berechtigung | Erlaubt einer Aktion die Verwendung von GITHUB_TOKEN zum |
---|---|
actions | Arbeiten 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. |
checks | Arbeiten 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. |
contents | Arbeiten 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. |
deployments | Arbeiten 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. |
discussions | Arbeiten Sie mit GitHub-Diskussionen. 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. |
issues | Arbeiten mit Sachverhalten. 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. |
packages | Arbeiten 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. |
pages | Arbeiten 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-requests | Arbeiten 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-projects | Arbeiten 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-events | Arbeiten 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“. |
statuses | Arbeiten 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
-Berechtigungen
Du kannst den Zugriff definieren, den das GITHUB_TOKEN
zulässt, indem du read
, write
oder none
als Wert der verfügbaren Berechtigungen innerhalb des permissions
-Schlüssels angibst.
permissions:
actions: read|write|none
checks: read|write|none
contents: read|write|none
deployments: 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 Berechtigungen 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 Berechtigungen zu definieren:
permissions: read-all
permissions: write-all
Du kannst die folgende Syntax verwenden, um Berechtigungen für alle verfügbaren Berechtigungen 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
-Berechtigungen gewährt. Alle anderen Berechtigungen haben keinen Zugriff.
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v5