Skip to content

GH Actions: set permissions for each workflow/job - #22

Merged
diedexx merged 1 commit into
mainfrom
feature/ghactions-set-minimal-permissions
Oct 8, 2026
Merged

diedexx merged 1 commit into
mainfrom
feature/ghactions-set-minimal-permissions

Conversation

@jrfnl

@jrfnl jrfnl commented Sep 28, 2026

Copy link
Copy Markdown
Contributor

Users frequently over-scope their workflow and job permissions, or set broad workflow-level permissions without realizing that all jobs inherit those permissions.

Furthermore, users often don't realize that the default GITHUB_TOKEN permissions can be very broad, meaning that workflows that don't configure any permissions at all can still provide excessive credentials to their individual jobs.

Remediation
In general, permissions should be declared as minimally as possible, and as close to their usage site as possible.

In practice, this means that workflows should almost always set permissions: {} at the workflow level to disable all permissions by default, and then set specific job-level permissions as needed.

Includes minor tweaks for consistency in the comments and the order of the GHA instructions.

Refs:

> Users frequently over-scope their workflow and job permissions, or set broad workflow-level permissions without realizing that all jobs inherit those permissions.
>
> Furthermore, users often don't realize that the _default_ `GITHUB_TOKEN` permissions can be very broad, meaning that workflows that don't configure any permissions at all can _still_ provide excessive credentials to their individual jobs.
>
> **Remediation**
> In general, permissions should be declared as minimally as possible, and as close to their usage site as possible.
>
> In practice, this means that workflows should almost always set `permissions: {}` at the workflow level to disable all permissions by default, and then set specific job-level permissions as needed.

Includes minor tweaks for consistency in the comments and the order of the GHA instructions.

Refs:
* https://docs.zizmor.sh/audits/#excessive-permissions
@jrfnl jrfnl added this to the 1.2.0 milestone Sep 28, 2026
@jrfnl

jrfnl commented Sep 28, 2026

Copy link
Copy Markdown
Contributor Author

@diedexx Would you like to review this PR ?

@diedexx diedexx left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks 🙌

@diedexx
diedexx merged commit 5554133 into main Oct 8, 2026
3 checks passed
@diedexx
diedexx deleted the feature/ghactions-set-minimal-permissions branch October 8, 2026 09:22
@jrfnl

jrfnl commented Oct 8, 2026

Copy link
Copy Markdown
Contributor Author

@diedexx All good. FYI: I'm planning to do the same for all the plugin repos over the next few weeks. Just thought I'd let someone review this one as these are re-used, so have higher and indirect impact. Thanks for having a look.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants