feat(ci): add setup-and-install reusable workflow + native zizmor#23
Open
John-David Dalton (jdalton) wants to merge 1 commit intomasterfrom
Open
feat(ci): add setup-and-install reusable workflow + native zizmor#23John-David Dalton (jdalton) wants to merge 1 commit intomasterfrom
John-David Dalton (jdalton) wants to merge 1 commit intomasterfrom
Conversation
2 tasks
318354d to
6b8d507
Compare
Add setup-and-install reusable workflow and composite actions (setup, install, setup-and-install) matching the socket-registry action structure. setup-and-install provides a complete CI environment in one call: - pnpm v10.33.0 (native binary, checksum-verified) - Node.js 25.9.0 (via actions/setup-node) - Socket firewall shims (npm, yarn, pnpm, pip, uv, cargo) - pnpm install with sfw guard When SOCKET_API_KEY is set, downloads sfw-enterprise from SocketDev/firewall-release with expanded wrapper-mode ecosystems (gem, bundler, nuget, go on Linux). Otherwise uses sfw-free. audit-gha-workflows.yml now downloads zizmor v1.23.1 as a native binary instead of pip install. No Python dependency needed. All binary downloads are SHA-256 checksum-verified. Handles Linux, macOS, and Windows (sha256sum/shasum fallback, backslash stripping, pnpm.exe copy, MSYS path conversion).
4e56d28 to
13c9f6c
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.
Summary
Adds a
setup-and-installreusable workflow (split into separate composite actions) and replacespip install zizmorwith a native binary download.New: Composite actions
Split into the same structure as socket-registry:
.github/actions/setup— pnpm, Node.js, sfw download + shims.github/actions/install—pnpm installwith sfw guard.github/actions/setup-and-install— aggregate: checkout + setup + installNew:
setup-and-install.ymlreusable workflowA thin wrapper that gives any repo a complete CI environment in one line:
What it sets up:
actions/setup-nodeSOCKET_API_KEYis provided) or sfw-free (default), with shims for supported ecosystemsWrapper mode ecosystems (sfw-free):
Additional wrapper mode ecosystems (sfw-enterprise):
pnpm install— dependencies installed through the firewallChanged:
audit-gha-workflows.ymlReplaced
pip install zizmor==1.23.1with a direct download of the zizmor native binary. No Python/pip dependency, SHA-256 checksum-verified. Also switchedsecrets.GITHUB_TOKEN→github.token.Design
No Docker, no Python, no npm needed to bootstrap. Every binary (pnpm, sfw, zizmor) follows the same pattern: download from GitHub releases, verify SHA-256 checksum, put on PATH. Only two third-party actions:
actions/checkoutandactions/setup-node, both pinned to commit SHAs.Binary checksums (SHA-256)
pnpm v10.33.0
8d4e8f7d778e8ac482022e2577011706a872542f6f6f233e795a4d9f978ea8b506755ad2817548b84317d857d5c8003dc6e9e28416a3ea7467256c49ab400d48c31e29554b0e3f4e03f4617195c949595e4dca36085922003de4896c3ca4057ded8a1f140f4de457b01ebe0be3ae28e9a7e28863315dcd53d22ff1e5a32d63aeafc96009dc39fe23a835d65192049e6a995f342496b175585dc2beda7d42d33fsfw-free v1.6.1
4a1e8b65e90fce7d5fd066cf0af6c93d512065fa4222a475c8d959a6bc14b9ffdf2eedb2daf2572eee047adb8bfd81c9069edcb200fc7d3710fca98ec3ca81a1724ccea19d847b79db8cc8e38f5f18ce2dd32336007f42b11bed7d2e5f4a2566bf1616fc44ac49f1cb2067fedfa127a3ae65d6ec6d634efbb3098cfa355e5555c953e62ad7928d4d8f2302f5737884ea1a757babc26bed6a42b9b6b68a5d54afsfw-enterprise v1.6.1
9115b4ca8021eb173eb9e9c3627deb7f1066f8debd48c5c9d9f3caabb2a26a4b671270231617142404a1564e52672f79b806f9df3f232fcc7606329c0246da5501d64d40effda35c31f8d8ee1fed1388aac0a11aba40d47fba8a36024b77500cacad0b517601bb7408e2e611c9226f47dcccbd83333d7fc5157f1d32ed2b953d9a50e1ddaf038138c3f85418dc5df0113bbe6fc884f5abe158beaa9aea18d70azizmor v1.23.1
67a8df0a14352dd81882e14876653d097b99b0f4f6b6fe798edc0320cff27aff3725d7cd7102e4d70827186389f7d5930b6878232930d0a3eb058d7e5b47e65889d5ed42081dd9d0433a10b7545fac42b35f1f030885c278b9712b32c66f25972632561b974c69f952258c1ab4b7432d5c7f92e555704155c3ac28a2910bd71733c2293ff02834720dd7cd8b47348aafb2e95a19bdc993c0ecaca9c804ade92aTest plan
SOCKET_API_KEYsecret is provided