Skip to content

ci: GHA workflow security cleanup#339

Open
emptyhammond wants to merge 3 commits into
mainfrom
worktree-fixup-workflows
Open

ci: GHA workflow security cleanup#339
emptyhammond wants to merge 3 commits into
mainfrom
worktree-fixup-workflows

Conversation

@emptyhammond
Copy link
Copy Markdown
Contributor

Routine hygiene pass over the GitHub Actions workflows in this repo, addressing findings from a workflow security audit. Changes are split into three commits, one per finding type:

  • Disable credential persistence on actions/checkout steps so the default GITHUB_TOKEN is not left in the local git config after checkout.
  • Scope each workflow's permissions explicitly: top-level permissions: {}, with each job granted only the GITHUB_TOKEN scopes it actually needs (contents: read, plus id-token: write
    where OIDC is used to assume an AWS role).
  • Pin all third-party actions to commit SHAs (with the major-version tag preserved as a trailing comment) so an upstream tag move can't silently change what runs in CI.

No behavioural changes intended - the workflows run the same steps against the same inputs, no version bumps.

Set `persist-credentials: false` on all `actions/checkout` steps so the
default `GITHUB_TOKEN` is not written to the local git config after
checkout. Addresses a finding from a routine workflow audit.

No behavioural change — these workflows do not push back to the repo
using the auto-persisted credentials.
Add top-level `permissions: {}` to each workflow and grant each job
only the `GITHUB_TOKEN` scopes it actually uses (`contents: read`,
plus `id-token: write` where OIDC is needed to assume an AWS role).
Addresses a finding from a routine workflow audit.

No behavioural change — the same operations succeed with the
narrower scopes.
Pin every `uses:` reference to a commit SHA, preserving the existing
major-version tag as a trailing comment. This stops an upstream tag
move from silently changing what runs in CI. Addresses a finding from
a routine workflow audit.

No version bumps — each pinned SHA is the current head of the same
major version tag the workflow already used.
@emptyhammond emptyhammond requested a review from lmars May 26, 2026 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants