GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — refactor: dedupe ecosystem dispatch, telemetry, API client, cleanup, get by mikolalysenko · Pull Request #88 · SocketDev/socket-patch

Conversation

@mikolalysenko

@mikolalysenko Mikola Lysenko (mikolalysenko) commented May 27, 2026

Copy link
Copy Markdown
Collaborator

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.
  • `commands/get.rs` (1901 → 1767): hoisted `report_error` / `print_json` / `empty_result_json` / `report_fetch_failure` / `write_all_patch_blobs` / `vulnerabilities_for_manifest` / `build_patch_record`; folded the three identical CVE/GHSA/PURL search match arms into one dispatch.
  • `utils/telemetry.rs` (1107 → 1027): replaced ~18 hand-built `HashMap<String, Value>` constructions with a single `fire()` helper plus `serde_json::json!({...})` literals; each per-event tracker is now 3–5 lines instead of 10–20.
  • `api/client.rs` (1336 → 1322): collapsed `search_patches_by_cve` / `by_ghsa` / `by_package` into a shared `search_patches_by_route(route, identifier)`.
  • `api/blob_fetcher.rs` (871 → 833): derived `Default` for `FetchMissingBlobsResult`, introduced `all_failed_result` for the three blocker-on-mkdir branches, removed the redundant `empty_result()` helper.
  • `utils/cleanup_blobs.rs` (585 → 540): unified `cleanup_unused_blobs` / `cleanup_unused_archives` behind a `cleanup_dir(dir, dry_run, is_used)` core taking a closure for the per-file "is this still in use" check.

Test plan

  • `cargo test --features cargo` — 499 lib tests + all integration tests pass
  • `cargo test --features "cargo golang maven composer nuget deno"` — all tests pass under every feature gate
  • `cargo build --tests --features "cargo golang maven composer nuget deno"` — no new warnings (only the two pre-existing snake_case warnings in `crawler_maven_e2e.rs`)
  • CI on the PR

🤖 Generated with Claude Code

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Mikola Lysenko (mikolalysenko) and others added 2 commits May 27, 2026 15:48
@mikolalysenko @claude
refactor: dedupe ecosystem dispatch, telemetry, API, cleanup, get/blo…
95f8cc4
…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) <[email protected]>
@mikolalysenko @claude
refactor(ecosystem_dispatch): hoist MergeFn type alias for clippy
596d519
`-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) <[email protected]>
@mikolalysenko
Mikola Lysenko (mikolalysenko) enabled auto-merge (squash) May 27, 2026 20:10
Wenxin-Jiang
Wenxin Jiang (Wenxin-Jiang) approved these changes May 27, 2026
View reviewed changes
@mikolalysenko
Mikola Lysenko (mikolalysenko) merged commit 3835974 into main May 27, 2026
42 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@mikolalysenko
Mikola Lysenko (mikolalysenko) deleted the cleanup branch May 27, 2026 20:18
@mikolalysenko Mikola Lysenko (mikolalysenko) mentioned this pull request May 28, 2026
test(args): regression coverage for BoolishValueParser on env bools #89
Merged
2 of 3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@Wenxin-Jiang Wenxin Jiang (Wenxin-Jiang) Wenxin-Jiang approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@mikolalysenko @Wenxin-Jiang
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.