ci: enforce one SHA per action across workflows + composites (maturity L2)#992
Conversation
…flows/composites Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Jc1ZYHFjXjn6mE6U6riVU
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Jc1ZYHFjXjn6mE6U6riVU
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Jc1ZYHFjXjn6mE6U6riVU
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe PR extends GitHub Action pin validation to composite actions, updates several action references to newer pinned commits, and marks the related maturity backlog item complete. ChangesGitHub Action pin uniformity
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 Checkov (3.3.8).github/workflows/dependency-report.ymlTraceback (most recent call last): Comment |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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 `@scripts/check-github-action-pins.mjs`:
- Around line 100-112: The composite-action scan around
discoverCompositeActionFiles must validate every matched action reference, not
only record 40-hex SHA matches. Reuse validateActionReference as in the
workflow-processing path so references such as vendor/action@v1 are rejected,
while preserving the existing SHA grouping and location tracking for valid pins.
🪄 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: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 1aa26576-3616-47c2-8916-b981ef5159cc
📒 Files selected for processing (8)
.github/actions/setup-node-cached/action.yml.github/workflows/ci-triage.yml.github/workflows/dependency-report.yml.github/workflows/ingestion-autopilot.yml.github/workflows/ops-digest.yml.github/workflows/staging-tenancy.ymldocs/maturity-backlog-workorders.mdscripts/check-github-action-pins.mjs
The single-SHA uniformity pass scans workflow and composite files with a 40-hex-only pattern, and only the workflow pre-pass runs validateActionReference. A non-SHA reference in a composite action file (e.g. vendor/action@v1) therefore matched neither path and slipped through unpinned. Run validateActionReference over composite-file lines too; local `./` refs are still ignored, so all current composites pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Jc1ZYHFjXjn6mE6U6riVU
Summary
Phase 3 of the maturity backlog (
docs/maturity-backlog-workorders.md→ L2): eliminate action-version skew and make it non-regressable.actions/checkoutv6.0.3 → v7.0.0 in 5 workflows (ci-triage,ingestion-autopilot,staging-tenancy,dependency-report,ops-digest), andactions/setup-nodev5.0.0 → v7.0.0 in thesetup-node-cachedcomposite. Every action is now on a single SHA (checkout 24×, setup-node 8×, all others already uniform).scripts/check-github-action-pins.mjsto assert one SHA per action across workflows and composite actions. The checker previously scanned only.github/workflows/**, which is exactly why thesetup-nodecomposite skew was invisible.The
setup-node-cachedcomposite uses only stable inputs (node-version-file,cache,cache-dependency-path) — all supported in v7 — and v7.0.0 is already the proven majority across CI, so there's no behavioural change.Verification
npm run check:github-actions— pass (alignment satisfies the new assertion).checkout@v6.0.3skew makes the checker fail with a precise message listing every location; reverting restores green. (Proven locally.)npm run format:check— pass.npm run docs:check-links— pass (989 refs).Risk and rollout
Clinical Governance Preflight
N/A — CI configuration only; no ingestion, answer generation, search/ranking, source rendering, document access, privacy, production-env, or clinical-output behaviour changed.
Notes
Complements Phase 1 (#985, merged — Dependabot grouping already batches action bumps) and Phase 2 (#986 — import-boundary linter + dependency report). Remaining backlog items (
src/lib/ragextraction, monolith decomposition, SAST-blocking, ACL consolidation, coverage floors, L3/L4) stay as tracked work orders.Generated by Claude Code
Summary by CodeRabbit