chore: harden supply chain — exclude-newer, pin actions and uv - #6565
Merged
Conversation
- Add `exclude-newer = "2026-03-25T00:00:00Z"` to `[tool.uv]` so uv refuses to resolve any Python package published in the last 7 days, giving the community time to detect and yank malicious releases. - Pin `jlumbroso/free-disk-space` from `@main` to `@v1.3.1` across all CI workflows (pr-test-suite, nightly-publish-s3, build-docs). - Pin `docker-practice/actions-setup-docker` from `@master` to `@v1`. - Pin `pip install uv` in `.readthedocs.yaml` to `uv==0.9.2`. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
Greptile SummaryThis PR hardens the supply chain by pinning mutable CI action tags to specific versions and adding a Key changes:
Issues found:
Confidence Score: 4/5
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Developer runs uv lock or uv add] --> B{exclude-newer check}
B -->|Published on or before 2026-03-25| C[Allowed into lockfile]
B -->|Published after 2026-03-25| D[Excluded by uv]
D --> E[Static cutoff - window grows over time]
E --> F[Legitimate updates and CVE fixes blocked]
G[CI Workflow triggers] --> H{Action ref type}
H -->|Semver tag v1.3.1| I[Mutable but relatively stable]
H -->|Floating major tag v1| J[Mutable - same risk as master]
H -->|Full commit SHA| K[Immutable - ideal for supply chain]
Reviews (1): Last reviewed commit: "chore: harden supply chain — exclude-new..." | Re-trigger Greptile |
The uv-lock pre-commit hook requires the lockfile to be consistent with the new [tool.uv] exclude-newer setting. Regenerated via `uv lock` — all resolved versions are published before 2026-03-25. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The lockfile generated by uv 0.9.2 had a missing transitive dependency (imagehash -> scipy 1.16.1) that caused parse failures in CI which runs uv 0.11.2. Regenerated with `uv lock --upgrade` on 0.11.2 and updated the uv-pre-commit hook from 0.9.22 to 0.11.2 to match. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
everettVT
force-pushed
the
everettVT/supply-chain-harden
branch
from
April 1, 2026 17:53
92ae892 to
5e03976
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6565 +/- ##
==========================================
+ Coverage 75.12% 75.13% +0.01%
==========================================
Files 1047 1047
Lines 141838 141829 -9
==========================================
+ Hits 106549 106558 +9
+ Misses 35289 35271 -18 🚀 New features to boost your workflow:
|
Per reviewer feedback (universalmind303), uv supports human-readable relative durations like "7 days" for exclude-newer. This makes the quarantine window roll forward automatically on every `uv lock`, eliminating the need to manually bump a static date. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
everettVT
requested review from
universalmind303
and removed request for
desmondcheongzx
April 1, 2026 19:13
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
uv 0.9.2 does not support the relative date format "7 days" for exclude-newer (added in uv 0.9.17). Bump to 0.11.2 to match local. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
universalmind303
approved these changes
Apr 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
exclude-newer = "2026-03-25T00:00:00Z"to[tool.uv]— prevents uv from resolving any Python package published in the last 7 days during fresh resolves, giving the community time to detect and yank malicious releases (motivated by recent Axios npm and litellm supply chain attacks).jlumbroso/free-disk-spacefrom mutable@mainto@v1.3.1across all CI workflows.docker-practice/actions-setup-dockerfrom mutable@masterto@v1.pip install uvin.readthedocs.yamltouv==0.9.2.Context
Recent supply chain attacks (Axios npm hijack, litellm poisoned scanner) highlighted gaps in our dependency resolution and CI action pinning. This PR addresses the lowest-hanging fruit. Follow-up PRs planned for:
syftin the release pipelineTest plan
uv lockstill works withexclude-newerset (only affects fresh resolves, not existing lockfile)🤖 Generated with Claude Code