Repository navigation
Harden the organization check install - #4
Closed
silveltman wants to merge 1 commit into
Closed
silveltman wants to merge 1 commit into
silveltman wants to merge 1 commit into
Conversation
Always run the frozen install, cache the pnpm store instead of node_modules, skip pnpmfiles, protect nested installs, and pin actions to commit SHAs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
silveltman
force-pushed
the
security/pnpm-install-hardening
branch
from
October 2, 2026 17:55
0f8376b to
5933421
Compare
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.
Hardens the install in the organization
Checkworkflow that the Merge policy ruleset requires on every pull request.Rebased on
mainafter #3 (checkout and setup-node 7) merged.What changes
node_modulesand skippedpnpm install, so a run never checked the lockfile against the repository's pnpm settings or the registry. Now only the pnpm store (downloaded packages) is cached, keyed onpnpm-lock.yaml, andpnpm install --frozen-lockfileruns every time. That is wheretrustPolicy, the strict release age andignorePnpmfilefrom the per-repository PRs are enforced.--ignore-pnpmfileadded to the install, andpnpm_config_ignore_scripts/pnpm_config_ignore_pnpmfileset for the job, so installs started from acheckscript get the same protection. Explicitpnpm runscripts still run.actions/checkoutv7.0.1 andactions/setup-nodev7.0.0 (the currentv7tags, as Use checkout and setup-node 7 in the check workflow #3 set),actions/cachev6.1.0 (the currentv6tag).contents: readfor the check, write only on the CloudCannon auto-merge job, which is unchanged.Testing
actionlint1.7.12 and Prettier pass.pnpm store path --silentprints only the store path on pnpm 11.28.0 and 12.8.1.pnpm install --frozen-lockfile --ignore-scripts --ignore-pnpmfilewith pnpm 12.8.1, the version all 43 repositories now pin, passes on each repository's security PR rebased on currentmain.main, so other repositories only use it after merge. This PR's ownCheckfinds no package and exits with the "nothing to run" notice, so it does not exercise the new steps. Watch the first PRs after merging.Risks
node_modulescache hit, in exchange for a verified install.🤖 Generated with Claude Code