ci(security): SHA-pin GitHub Actions in publish.yml (SEC-06) - #3
Conversation
Pin actions/checkout, actions/setup-java, actions/setup-node to immutable commit SHAs per 26-02 §2c. Config-only change; no-release proof recorded in 28-04 (C1-C6 PASS, EXISTS=true). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 59 minutes and 44 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more credits in the billing tab to continue. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
SHA-pin GitHub Actions in
publish.yml(SEC-06)This PR applies a
uses:-SHA-value-only pin to the three GitHub Actions in.github/workflows/publish.yml— pasting the canonical SHA values for the actions already referenced at@v4. No version bump (still# v4), no trigger /if:/with:/env:/needs:/ step-order change. Part of GSD phase 28 (batch-3 cohort, plan 28-04).actions/checkout@v434e114876b0b11c390a56381ad16ebd13914f8d5# v4 (v4.3.1)actions/setup-java@v4c1e323688fd81a25caa38c78aa6df2d33d3e20d9# v4 (v4.8.0)actions/setup-node@v449933ea5288caeca8642d1e84afbd3f7d6820020# v4 (v4.4.0)Before → after pin lines
UltiTrade — C1–C6 no-release proof verdict (Archetype C, SEC-06)
Proof recorded in the 28-04 proof artifact (Task 1), re-verified against
git diff origin/masterin Task 3.uses:lines confirmed@v4onorigin/master— L22actions/checkout@v4, L27actions/setup-java@v4, L94actions/setup-node@v4— plus a trailing# v4 (vX.Y.Z)comment, pasting the 26-02 §2c pin strings verbatim. Noon:/trigger, noif:, nowith:, noenv:, noneeds:, no step ordering or job-logic changes.git diff origin/master -- .github/workflows/publish.yml= exactly 3 changed lines. PASSon: push: branches: [master](withpaths-ignore) +workflow_dispatch. A SHA-pin commit on a feature branch targetingmastervia PR does not trigger thepush: branches: [master]path until merge, and at merge the existing-version guard (C5) intercepts before any publish step. Nopull_requesttrigger. PASSrelease-and-publish(permissions: contents: write). Stepcheck(Check if release exists) runsif gh release view "v${VERSION}" ... then EXISTS=true ... else EXISTS=false. Every subsequent publish step is gatedif: steps.check.outputs.EXISTS == 'false'. PASSEXISTSguard (C3/C5) are byte-identical pre/post pin. The set of conditions under which any publish step runs is unchanged. The pin cannot alterpom.xml<version>nor the release state, so it cannot flipEXISTS. PASSv1.0.0exists onUltiKits/UltiTrade(tagv1.0.0→d34c4028...),isDraft:false,isPrerelease:false. TheEXISTS=truebranch short-circuits every publish step unconditionally; a SHA-only pin on a feature branch cannot flipEXISTS. PASSPASS — config-only pin, unreachable-to-publish.1a197b0(origin/master)publish.ymlmaster sha25636728f84...(pre == post; config-only)EXISTS=true evidence
v1.0.0is published onUltiKits/UltiTrade(tagv1.0.0→d34c4028...,isDraft:false,isPrerelease:false) — a published release, not a draft or prerelease.pom.xmlproject<version>resolves to1.0.0, matching the publishedv1.0.0tag, so the workflow's existing-version guard resolvesEXISTS=trueand short-circuits every publish step.1a197b0;publish.ymlmaster sha25636728f84....Reference: GSD Phase 28 plan 28-04 proof artifact, maintainer token
approve 28-04-cohort-batch-3.Must NOT be merged until the maintainer's per-PR token with proof PASS + CI confirming no release/tag/publish fired.