chore: SHA-pin all GitHub Actions#15
Conversation
Greptile SummaryThis PR hardens the CI pipeline's supply-chain security by SHA-pinning all GitHub Actions
Confidence Score: 4/5Safe to merge with a follow-up to pin the Semgrep Docker image and verify the upload-artifact v7 upgrade is intentional The core supply-chain hardening is well executed and the Dependabot config is correct. The P1 concern (upload-artifact major version bump) is most likely benign given that the standard inputs used here haven't changed across major releases of that action, but it was silent and deserves explicit acknowledgement. The unpinned Semgrep Docker image is a P2 gap relative to the PR's stated goal but is pre-existing and doesn't introduce a regression. .github/workflows/ci.yml — verify the upload-artifact v7 upgrade and pin the semgrep Docker image Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[push / pull_request] --> B[lint]
A --> C[typecheck]
A --> D[security]
B --> E[test]
C --> E
D --> E
E --> F[compliance]
subgraph SHA-pinned
B -->|checkout v6.0.2| B
B -->|setup-uv v7.6.0| B
C -->|checkout v6.0.2| C
C -->|setup-uv v7.6.0| C
E -->|checkout v6.0.2| E
E -->|setup-uv v7.6.0| E
E -->|upload-artifact v7.0.0 upgrade| E
F -->|checkout v6.0.2| F
F -->|setup-uv v7.6.0| F
end
subgraph Unpinned
D -->|docker semgrep:latest warning| D
end
Reviews (1): Last reviewed commit: "chore: SHA-pin all GitHub Actions for su..." | Re-trigger Greptile |
| - run: uv sync --frozen --dev | ||
| - run: uv run pytest --cov --cov-report=xml | ||
| - uses: actions/upload-artifact@v6 | ||
| - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 |
There was a problem hiding this comment.
Silent major-version upgrade alongside pinning
actions/upload-artifact was bumped from v6 → v7.0.0 (not just pinned). Major version releases commonly include breaking API changes. For example, upload-artifact v4 changed the default artifact retention behaviour and renamed inputs. Mixing a version upgrade with the pinning work makes it harder to attribute any CI regressions. This change is fine if intentional, but it's worth verifying the v7 release notes and confirming the name/path/retention-days inputs are still compatible.
Summary
Changes
uses:references now use@<sha> # <version>formatApplied via
npx actions-up.