Migrate GitHub Actions to Node 24 and tighten release permissions - #12
Open
jpmartins98 wants to merge 2 commits into
Open
Migrate GitHub Actions to Node 24 and tighten release permissions#12jpmartins98 wants to merge 2 commits into
jpmartins98 wants to merge 2 commits into
Conversation
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.
Summary
Migrate CI and release workflows away from deprecated Node 20 actions, remove an upstream
Buffer()deprecation warning, and apply least-privilege token permissions.Problem
GitHub is retiring Node 20 for JavaScript actions. The existing workflow versions produce deprecation warnings and will increasingly depend on temporary compatibility behavior.
The current artifact download path also emits Node
DEP0005. Investigation traced it toactions/download-artifactthrough@actions/artifact -> unzip-stream, which still invokes the deprecatednew Buffer()constructor. The download succeeds, but the warning remains in otherwise successful release logs.Finally,
contents: writeis currently granted globally, including to jobs that only need to check out code and build artifacts.Changes
actions/checkoutto v7.actions/setup-pythonto v7.actions/upload-artifactto v7.softprops/action-gh-releaseto v3.astral-sh/setup-uvv9.0.0 to its immutable commit SHA.actions/download-artifactwith the documentedgh run downloadcommand.fail_on_unmatched_filesso an empty or malformed release cannot silently succeed.contents: read.actions: readandcontents: write.ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSIONor suppress deprecation warnings.Why this PR is needed
This keeps the workflows compatible with GitHub's Node 24 migration, removes obsolete transitive Node code from the release path, and reduces the impact of a compromised build step by withholding repository write access from build jobs.
Compatibility and scope
There are no application runtime changes. Build profiles, Python dependencies, artifact names, checksums, and supported operating systems remain unchanged.
Validation
v0.3.1.dev6: all 10 jobs succeeded.gh run download.References
AI disclosure
This PR and all changes introduced by it, including workflow code, investigation, and this description, were generated by OpenAI Codex under the user's direction. The resulting changes were reviewed through source inspection and real GitHub Actions release validation.