Problem
Release-related workflows can be made more robust by scoping privileges and runtime bounds explicitly.
Evidence
.github/workflows/release.yml grants top-level contents: write, id-token: write, and attestations: write for the workflow, while some jobs only need read permissions.
- No release
concurrency group is configured, so tag/manual release jobs can overlap.
timeout-minutes appears only in mutation-testing.yml; release and build workflows rely on defaults.
- Several curl retry/probe loops do not specify curl-level timeout flags.
Expected behavior
Move permissions to the narrowest job scope, add a release concurrency group keyed by tag/ref, and give long-running jobs/network probes explicit timeouts.
Labels
bug, security, github_actions
Problem
Release-related workflows can be made more robust by scoping privileges and runtime bounds explicitly.
Evidence
.github/workflows/release.ymlgrants top-levelcontents: write,id-token: write, andattestations: writefor the workflow, while some jobs only need read permissions.concurrencygroup is configured, so tag/manual release jobs can overlap.timeout-minutesappears only inmutation-testing.yml; release and build workflows rely on defaults.Expected behavior
Move permissions to the narrowest job scope, add a release concurrency group keyed by tag/ref, and give long-running jobs/network probes explicit timeouts.
Labels
bug,security,github_actions