refactor: dedupe ecosystem dispatch, telemetry, API client, cleanup, get#88
Merged
Conversation
…b helpers
Net ~718 lines removed across six files; all 1308 tests still pass.
- ecosystem_dispatch.rs: macro-extract the 8 per-ecosystem scan blocks
duplicated between find_packages_for_purls and find_packages_for_rollback;
share a dispatch_find core with a pypi_merge callback for the only real
divergence
- commands/get.rs: hoist report_error / print_json / empty_result_json /
report_fetch_failure / write_all_patch_blobs / vulnerabilities_for_manifest
/ build_patch_record; fold the three CVE/GHSA/PURL search arms into one
dispatch
- utils/telemetry.rs: replace ~18 hand-built HashMap<String, Value>
constructions with a fire() helper plus serde_json::json!({...}) literals
- api/client.rs: collapse search_patches_by_{cve,ghsa,package} behind a
shared search_patches_by_route(route, identifier)
- api/blob_fetcher.rs: derive Default for FetchMissingBlobsResult; share an
all_failed_result helper for the three mkdir-blocker branches
- utils/cleanup_blobs.rs: unify cleanup_unused_blobs / cleanup_unused_archives
behind a cleanup_dir(dir, dry_run, is_used) core
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
`-D clippy::type_complexity` rejected the inline fn-pointer signature on `dispatch_find`'s `pypi_merge` argument. Lift it to a `MergeFn` type alias shared by `merge_first_wins` and `merge_pypi_qualified`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Wenxin Jiang (Wenxin-Jiang)
approved these changes
May 27, 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
Net ~718 lines removed across six files in the two core crates. No behavior changes; no public API breakage; all 1308 tests pass with no new warnings.
ecosystem_dispatch.rs(953 → 556): macro-extracted the 8 per-ecosystem scan blocks duplicated between `find_packages_for_purls` and `find_packages_for_rollback`; the two functions now share a `dispatch_find` core that takes a `pypi_merge` callback for the only meaningful divergence.Test plan
🤖 Generated with Claude Code