chore(ci): supply-chain hardening — SHA-pin actions, dependabot, deploy gate - #632
Conversation
…oy gate Hardens the public repo's CI/CD ahead of beta traffic. - SHA-pin every third-party and first-party action across all workflows (was using mutable tags / @latest). Notably webfactory/ssh-agent (holds the VPS deploy key), anthropics/claude-code-action, codecov/codecov-action, and anomalyco/opencode (was @latest, a moving ref). Version kept in a trailing comment for readability. - Add .github/dependabot.yml (github-actions + pip + npm, weekly, grouped) so the new pins receive security/patch bumps instead of going stale. - Re-enable the test gate on the production deploy job (was commented out, so production could deploy without tests passing); clarify the staging gate. - Delete opencode-review.yml: it was already disabled (`if: false`) and flagged by its own comment as leaking GITHUB_TOKEN into PR comments, yet still carried issues:write + pull-requests:write. Removed rather than left parked. Settings applied out of band: Dependabot vulnerability alerts + automated security fixes enabled; branch protection on main set to strict (require up-to-date branch) + required conversation resolution.
|
Warning Review limit reached
More reviews will be available in 3 hours, 21 minutes, and 11 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ 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: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
WalkthroughAdds ChangesCI/CD Security Hardening
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/opencode.yml:
- Line 24: The actions/checkout action in the opencode.yml workflow is using v6
(SHA df4cb1c069e1874edd31b4311f1884172cec0e10) while all other workflows in the
PR use v4 (SHA 34e114876b0b11c390a56381ad16ebd13914f8d5). Update the checkout
action to use the same v4 SHA and version comment as the other workflows for
consistency, replacing both the commit hash and the version identifier from v6
to v4.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 97d6695d-410e-4546-869a-207bcd0066aa
📒 Files selected for processing (8)
.github/dependabot.yml.github/workflows/claude-code-review.yml.github/workflows/claude.yml.github/workflows/deploy.yml.github/workflows/lifecycle.yml.github/workflows/opencode-review.yml.github/workflows/opencode.yml.github/workflows/test.yml
💤 Files with no reviewable changes (1)
- .github/workflows/opencode-review.yml
Addresses CodeRabbit: every other workflow pins actions/checkout to the v4 SHA; opencode.yml was on v6. No functional difference for a plain checkout.
Hardens the public repo's CI/CD supply chain ahead of beta traffic. From a security pass over all workflows + repo settings.
Workflow changes (this PR)
@latest). A repointed/compromised action otherwise runs with the workflow's permissions + secrets. Highest-risk pins:webfactory/ssh-agent(holds the VPS SSH deploy key indeploy.yml),anomalyco/opencode/github(was@latest, a moving ref),anthropics/claude-code-action,codecov/codecov-action. Version retained in a trailing comment..github/dependabot.yml(github-actions + pip + npm, weekly, grouped minor/patch) — keeps the pins fresh so they don't rot into known-vulnerable versions.deploy.yml's production job had# needs: testcommented out, so production could deploy without tests passing.opencode-review.yml— already disabled (if: false) and flagged by its own comment as leakingGITHUB_TOKENinto PR comments, yet still carriedissues: write+pull-requests: write. Removed rather than leave a parked, one-toggle-away liability.Settings already applied (out of band)
strict(require up-to-date branch before merge) + required conversation resolution; existing required checks / no-force-push preserved.Verification
dependabot.ymlparse.uses:remain (commented-out lines intentionally untouched).test.ymlwith the new pins — a wrong SHA fails here.Deliberately NOT changed (your call)
enforce_admins— would block you merging your own PRs as sole maintainer; skipped per your decision.claude.yml/opencode.ymlonissue_comment;claude-code-reviewon every PR) — read-only tokens, fork secrets withheld by GitHub, so limited blast radius. Left as-is.pytest/ruff/hypothesisare runtime deps) — regression risk; separate change.Note: confirm
anomalyco/opencodeis the publisher you intend (upstream OpenCode issst/opencode).Summary by CodeRabbit
Release Notes