enrichment now exposes FundingLinks and Maintainers on PackageInfo (git-pkgs/enrichment#26), but only the ecosyste.ms backend can populate them. The direct-registry backend gets nothing because core.Package carries neither field.
Maintainers already exist here as core.Maintainer with a per-registry FetchMaintainers(ctx, name) call. That works for single lookups but BulkFetchPackages callers would need N extra requests to fill them in. Funding has no support at all.
Proposed:
- Add
Maintainers []Maintainer to core.Package and populate it in FetchPackage for registries where the package endpoint already returns maintainer data (npm, hex, rubygems, cargo owners, etc.). Registries that need a separate call can keep returning nil here and rely on FetchMaintainers.
- Add
FundingLinks []string to core.Package and populate from registries that expose it: npm funding, rubygems funding_uri, hex links.Sponsor, cargo (via repo metadata), pypi project_urls Funding/Sponsor entries.
Once that lands, enrichment.RegistriesClient.BulkLookup can copy both fields straight through and the hybrid client will have parity with ecosyste.ms for packages routed to direct registries.
enrichmentnow exposesFundingLinksandMaintainersonPackageInfo(git-pkgs/enrichment#26), but only the ecosyste.ms backend can populate them. The direct-registry backend gets nothing becausecore.Packagecarries neither field.Maintainers already exist here as
core.Maintainerwith a per-registryFetchMaintainers(ctx, name)call. That works for single lookups butBulkFetchPackagescallers would need N extra requests to fill them in. Funding has no support at all.Proposed:
Maintainers []Maintainertocore.Packageand populate it inFetchPackagefor registries where the package endpoint already returns maintainer data (npm, hex, rubygems, cargo owners, etc.). Registries that need a separate call can keep returning nil here and rely onFetchMaintainers.FundingLinks []stringtocore.Packageand populate from registries that expose it: npmfunding, rubygemsfunding_uri, hexlinks.Sponsor, cargo (via repo metadata), pypiproject_urlsFunding/Sponsor entries.Once that lands,
enrichment.RegistriesClient.BulkLookupcan copy both fields straight through and the hybrid client will have parity with ecosyste.ms for packages routed to direct registries.