Potential fix for code scanning alert no. 10: Workflow does not contain permissions#12
Merged
Potential fix for code scanning alert no. 10: Workflow does not contain permissions#12
Conversation
…in permissions Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR addresses a security alert by implementing least-privilege permissions for the GitHub Actions workflow. The change restricts the default GITHUB_TOKEN permissions to read-only at the workflow level, while granting write permissions only to the release job that specifically needs it.
Changes:
- Added workflow-level
permissionsblock withcontents: readas the default for all jobs - Added job-level
permissionsblock withcontents: writefor thereleasejob that creates GitHub releases
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Potential fix for https://github.com/GoodPie/modular_tree/security/code-scanning/10
In general, the fix is to declare a
permissionsblock in the workflow so jobs do not implicitly inherit the repository defaultGITHUB_TOKENpermissions. We should define least-privilege defaults at the workflow root (applies to all jobs), and then override them only for jobs that need broader permissions.For this specific file, the safest, non‑functional‑changing approach is:
permissionsblock aftername(line 1) that setscontents: read(and optionally other read-only scopes if needed). This constrains all jobs by default.permissionsblock for thereleasejob because it usessoftprops/action-gh-release@v2to update/create GitHub releases, which needs to write to repository contents/releases. The minimal sensible permission iscontents: writefor that job alone.lint,test,build-wheels,test-python,package-addon) use checkout, artifacts, Python tooling, etc., but do not modify repo contents via the API, so the rootcontents: readis sufficient and should not be overridden.Concretely:
.github/workflows/CD.yml, insert:on new line 2, shifting the rest down.
releasejob definition (around existing line 116), add:directly under
runs-on: ubuntu-latest(or afterneeds:andruns-on:), to scope elevated permissions to this job only.No additional methods, imports, or external dependencies are needed; this is purely a YAML configuration change.
Suggested fixes powered by Copilot Autofix. Review carefully before merging.