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
.
Verfügbare Bereiche und Zugriffswerte:
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 Lese- oder Schreibzugriff für alle verfügbaren Bereiche zu definieren:
permissions: read-all|write-all
Du kannst die folgende Syntax verwenden, um Berechtigungen für alle verfügbaren Bereiche zu deaktivieren:
permissions: {}
``` 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 [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#enabling-workflows-for-private-repository-forks).
### Beispiel: Zuweisen von Berechtigungen zu GITHUB_TOKEN
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.
```yaml
name: "My workflow"
on: [ push ]
permissions: read-all
jobs:
...
Zuweisen von Berechtigungen zu einem 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
.
Verfügbare Bereiche und Zugriffswerte:
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 Lese- oder Schreibzugriff für alle verfügbaren Bereiche zu definieren:
permissions: read-all|write-all
Du kannst die folgende Syntax verwenden, um Berechtigungen für alle verfügbaren Bereiche zu deaktivieren:
permissions: {}
``` 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 [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#enabling-workflows-for-private-repository-forks).
### Beispiel: Festlegen von Berechtigungen für einen bestimmten Auftrag
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.
```yaml
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v5