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 Bereiche, die in der folgenden Tabelle dargestellt sind, kannst du eine der Berechtigungen zuweisen: read
, write
oder 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:
Scope | 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 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. |
| issues
| Arbeiten 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. |
| 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
-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
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