Conversation
Greptile SummaryThis PR pins all external GitHub Actions to specific commit SHAs for supply-chain security hardening — a good practice that prevents tag-mutation attacks. However, two issues are worth noting:
All other pins ( Confidence Score: 4/5Safe to merge with low risk, but the undisclosed goreleaser-action v6→v7 major version bump in the release workflow warrants explicit verification before the next tag push. The changes are workflow-only with no application code impact. SHA-pinning is a security best practice. The main concern is the undisclosed major version bump for goreleaser-action in a release-critical workflow — it only fires on tag pushes, so it won't break CI, but it could silently fail on the next release if there are any v7 incompatibilities.
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Push to master / PR] --> B[CI Workflow]
B --> C[actions/checkout\nde0fac2e #v6.0.2]
C --> D[actions/setup-go\n4a360112 #v6.4.0]
D --> E[golangci-lint-action\n1e7e51e7 #v9.2.0]
D --> F[Run Tests Matrix]
F --> G[codecov-action\n57e3a136 #v6.0.0]
E & G --> H[Build]
I[Push tag v*] --> J[Release Workflow]
J --> K[actions/checkout\nde0fac2e #v6.0.2]
K --> L[actions/setup-go\n4a360112 #v6.4.0]
L --> M[goreleaser-action\nec59f474 #v7.0.0 ⚠️ bumped from v6]
M --> N[GitHub Release + Homebrew tap]
Reviews (1): Last reviewed commit: "chore: pin github action shas" | Re-trigger Greptile |
|
|
||
| - name: Run GoReleaser | ||
| uses: goreleaser/goreleaser-action@v6 | ||
| uses: goreleaser/goreleaser-action@ec59f474b9834571250b370d4735c50f8e2d1e29 # v7.0.0 |
There was a problem hiding this comment.
Undisclosed major version bump (v6 → v7)
The PR description frames this as purely SHA-pinning, but goreleaser/goreleaser-action has been quietly bumped from @v6 to v7.0.0. This is a major version change for a release-critical action that runs on every tag push. The v6→v7 migration removed some deprecated inputs and changed default behavior.
While the current configuration (version: latest, args: release --clean) is likely compatible with v7, this upgrade deserves explicit acknowledgment rather than being bundled silently into a security-pinning PR. Please confirm this bump is intentional and that the GoReleaser config has been validated against v7.
| - name: Upload coverage | ||
| if: matrix.os == 'blacksmith-2vcpu-ubuntu-2404' | ||
| uses: codecov/codecov-action@v6 | ||
| uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0 |
There was a problem hiding this comment.
codecov-action pinned to v6.0.0, not the latest v6 patch
The original @v6 tag resolved to the latest v6 release automatically. This PR pins to 57e3a136b779b570ffcdbf80b3bdc90e7fab3de2, which corresponds to v6.0.0 — the first patch of the v6 series, not the most recent. The v6 line has had subsequent patch releases (e.g. v6.1.x, v6.4.x) that include bug fixes and security improvements.
Consider pinning to the latest v6 patch SHA instead to stay current within the major version while still getting the supply-chain security benefit of SHA pinning.
Summary
default-days: 3is already configuredTesting