Repository navigation
feat(ci): install pinned fd and rg in setup-kipp - #188
Merged
Merged
Conversation
Pi's find and grep tools need fd and rg, which the hosted Ubuntu image does not ship, and PI_OFFLINE=1 stops Pi downloading them. Read the `kipp.tools` pins the Kipp package declares, validate each version, release URL (whose tag must match the version) and SHA-256, and install the runner's assets into the agent directory's bin, where Pi looks before PATH. Each archive is checked against its pin before it is extracted, and each binary is smoke-tested. A package without `kipp.tools`, or a runner other than Linux X64 or ARM64, skips the install with a notice. A malformed block fails the step on any runner, including macOS runners with bash 3.2.
Contributor
🛡️ SHA Pinned Actions Report✅ All 31 file(s) passed — actions are allowed and pinned as required. |
pleb
enabled auto-merge
September 30, 2026 11:39
mderriey
approved these changes
Sep 30, 2026
mderriey
left a comment
Member
There was a problem hiding this comment.
Overall looks good, but I couldn't find a manifest in Kipp's main branch that declares the tools and the associated versions, which made it a bit hard to validate.
petaravramoski-oss
approved these changes
Sep 30, 2026
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.
What
setup-kippgains an "Install search tools" step. It reads thefdandrgpins the Kipp package declares underkipp.tools, downloads the asset for the runner's platform, verifies its SHA-256 before extracting, and installs the binary into the Pi agent directory'sbin. Each binary is smoke-tested with--version.Why
Pi's
findandgreptools needfdandrg. The hosted Ubuntu runner image ships neither, and underPI_OFFLINE=1Pi cannot download them, so those tools fail in CI and a session falls back to shell searches. One such fallback (an unprunedfindover installednode_modules) stalled a dependency remediation run.Pi 0.84.2's
getToolPathchecks$PI_CODING_AGENT_DIR/binbeforePATH, so installing there needs no change to the session's environment. Declaring the pins in the Kipp package, besidekipp.supportedPiVersion, makes a tool upgrade a Kipp release rather than a shared-config change.Behaviour
.tar.gzrelease download fromsharkdp/fdorBurntSushi/ripgrepwhose tag is the version (orvplus the version), and a 64-character SHA-256. A malformed block fails the step. Validation errors name the field rather than echo a malformed value; a value is printed only after it has passed validation (the release tag, the URL, the checksums).Linux/X64andLinux/ARM64. Any other runner skips with a notice.kipp.toolsskips with a notice.curlruns HTTPS-only (redirects included), with 3 retries and a 120-second limit. Extraction uses--no-same-owner, and the binary is installed0755.mapfile, so a macOS runner reaches the skip notice.Testing
zizmor --offlineare clean.runbody, extracted fromaction.ymland run withRUNNER_OSandRUNNER_ARCHset and fake manifests pinned to the real fd v10.5.0 and ripgrep 15.2.0 assets, under both bash 3.2.57 and bash 5.2: installs on Linux X64 and ARM64, checksum mismatch, download and extraction failures, malformed blocks, and the skip paths.PI_OFFLINE=1: after the step,getToolPathandensureToolresolvefdandrgfrom the agent directory.