Quality Score: 70/100
Low RiskThis repo is in good health with CI, tests, and active maintenance.
High churn files -10High complexity -10Multiple anti-patterns -10
Maintainability grade
Static analysisHow maintainable the code looks — from complexity, code issues, test presence, file size, and hotspot load. It grades the shape of the code, not defect risk, and doesn't replace review.
F20/100
A ≥ 85, B ≥ 70, C ≥ 55, D ≥ 40, F < 40
Cyclomatic complexityavg 660/35 Code issues20 errors, 61 warnings0/20 Testspresent · ~87% of files20/20 Largest file7,793 lines0/15 Hotspot load8 high-risk files0/10 Configuration status
CI/CD Pipeline — configured
Test Suite — detected
606 test files detected
Stack: Rust test
Where: crates/uv/tests/it · crates/uv/tests/build · crates/uv-client/tests/it
Test Coverage — ~87%heuristic
606 test files / 694 source files. This is a file-count ratio, not real line coverage — set up Codecov for authoritative numbers.
Dependency Scanning — no config detected
No Dependabot / Renovate / Snyk / Trivy / CodeQL config found. Enable Dependabot or Renovate.
Live Signals
Real-time data from Codecov, GitHub Actions, GitHub Issues, deps.dev — not estimates.
CI pass rate86%
last 50 runs · median 4m
Stale-issue ratio0%
of 4 recent open issues are 30d+ old with no replies
Maintainer response17m
median first-reply across 6 recent issues · fast
Top hotspots
Files edited often AND hard to reason about. Churn = recent commit frequency, Complexity = branches and nesting, Risk = both combined. These are the highest-leverage targets for refactoring or testing.
All hotspots
Files that change often and are complex tend to accumulate more bugs
AI-suggested anti-patterns
AI · unverifiedPattern-matches from the file structure and dependencies — useful as hypotheses, but not grounded in actual source. For real findings see Code Scanning above.
Silent credential fallback to unauthenticated access
MediumIf credential lookup fails, requests proceed without auth headers, risking rate limiting or private package rejection without explicit error.
crates/uv-auth/src/middleware.rs
Unchecked OSV service unavailability
HighAudit subsystem may silently skip vulnerability checks if OSV API is unreachable, creating false sense of security.
crates/uv-audit/src/service/osv.rs
Workspace discovery via filesystem scan without validation
LowWorkspace member detection relies on presence of pyproject.toml without schema validation, risking misconfiguration.
crates/uv-bench/benches/workspace_discovery.rs
AI-suggested bottlenecks
AI · unverifiedSpeculation from file structure, not profiling data. Validate against real metrics before acting on these.
I/O-bound Bottleneck
Serial metadata requests for each discovered dependency; parallelization via async HTTP mitigates but network latency remains.
PyPI metadata fetching loop in dependency resolver
Network-bound Bottleneck
External API calls for every audit operation; no local caching means repeated queries for common packages are re-fetched.
OSV vulnerability database queries in uv-audit
CPU-bound Bottleneck
Exponential backtracking on complex dependency graphs with many conflicting version constraints.
SAT solver for dependency conflict resolution
I/O-bound Bottleneck
System keyring operations are synchronous I/O; repeated credential lookups may block CLI responsiveness.
Keyring access in uv-auth cache layer
Code metrics
Static analysis on sampled source files (up to 15 files).
Avg Cyclomatic Complexity66
Counts if/for/while/switch/catch/ternary branches
Errors / Warnings20 / 61
Secrets, empty catches, console.log, var usage, long lines