Skip to content

feat(fetchers): add PackageRegistryFetcher for PyPI, crates.io, npm#65

Merged
chaliy merged 1 commit intomainfrom
fix/issue-54-package-registry-fetcher
Mar 26, 2026
Merged

feat(fetchers): add PackageRegistryFetcher for PyPI, crates.io, npm#65
chaliy merged 1 commit intomainfrom
fix/issue-54-package-registry-fetcher

Conversation

@chaliy
Copy link
Copy Markdown
Contributor

@chaliy chaliy commented Mar 26, 2026

What

Adds a PackageRegistryFetcher handling PyPI, crates.io, and npm package URLs with structured metadata via their JSON APIs.

Closes #54

Why

Agents evaluating dependencies need quick access to version, license, and dependency info without parsing noisy registry HTML. Directly supports the AGENTS.md requirement to avoid non-permissive licenses.

How

  • Single fetcher with sub-matching for three registries
  • PyPI: pypi.org/project/{name} via pypi.org/pypi/{name}/json
  • crates.io: crates.io/crates/{name} via crates.io/api/v1/crates/{name}
  • npm: npmjs.com/package/{name} via registry.npmjs.org/{name}
  • Supports version-specific PyPI URLs and scoped npm packages
  • Format field: "package_registry"

Risk

  • Low

Checklist

  • Unit tests passed
  • Clippy clean
  • Formatting applied

Closes #54 — Adds a single fetcher handling PyPI, crates.io, and npm
URLs, returning structured package metadata via their JSON APIs.

Returns version, license, description, dependencies, and download stats.
Supports version-specific PyPI URLs and scoped npm packages (@scope/name).
Format: "package_registry".
@chaliy chaliy merged commit 4042e61 into main Mar 26, 2026
10 checks passed
@chaliy chaliy deleted the fix/issue-54-package-registry-fetcher branch March 26, 2026 23:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(fetchers): PackageRegistryFetcher — PyPI, crates.io, npm metadata

1 participant