ci: pin GitHub Actions to commit SHA, not mutable tags - #10
Conversation
sha_pinning_required is off at the org level (checked via
gh api .../actions/permissions), so all four actions here were pinned
to floating major-version tags - a tag that can be moved to point at
different (potentially malicious) code without the workflow file
changing at all. Pinned each to the exact commit its current tag
resolves to (no functional/version change):
actions/checkout@v4 -> v4.4.0
actions/upload-artifact@v4 -> v4.6.2
carlosperate/arm-none-eabi-gcc-action@v1 -> v1.13.0
softprops/action-gh-release@v1 -> v1 (no semver tag exists
for this repo's v1 line)
Added helpers:pinGitHubActionDigests to renovate.json so Renovate keeps
maintaining this pin format (updating the digest + version comment
together) instead of the next version bump reverting to a floating tag.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 41 minutes Limit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
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 |
Summary
Org-level
sha_pinning_requiredis off, so all four actions ingithubci.ymlwere pinned to floating tags - a supply-chain risk (a compromised or hijacked tag moves without the workflow file changing). Pinned each to the exact commit its current tag resolves to; no functional or version change:actions/checkoutv4v4.4.0actions/upload-artifactv4v4.6.2carlosperate/arm-none-eabi-gcc-actionv1v1.13.0softprops/action-gh-releasev1v1(no semver tag exists on this repo's v1 line)Added
helpers:pinGitHubActionDigeststorenovate.json(#7) so future version bumps keep the pin-with-comment format instead of reverting to a floating tag.Test plan
yq eval '.' .github/workflows/githubci.yml- valid YAMLjq . renovate.json- valid JSON