Skip to content

feat: add offline OSV-to-catalog generator (tools/osvcatalog)#45

Open
adel-pplx wants to merge 1 commit into
mainfrom
osv-catalog-import
Open

feat: add offline OSV-to-catalog generator (tools/osvcatalog)#45
adel-pplx wants to merge 1 commit into
mainfrom
osv-catalog-import

Conversation

@adel-pplx
Copy link
Copy Markdown
Collaborator

Adds tools/osvcatalog, an offline generator that converts a locally-downloaded OSV snapshot into a Bumblebee exposure catalog. The scanner never contacts osv.dev at scan time; this is a maintainer-side import that produces a static catalog reviewed and committed like any other under threat_intel/.

By default only malicious-package records (MAL- ids) are emitted; -include-vulns widens to all OSV records. OSV ecosystems (npm, PyPI, Go, RubyGems, Packagist) map to Bumblebee's, using OSV's enumerated affected[].versions. Records whose only version information is a range (no enumerated versions, e.g. introduced:"0") are skipped, since v0.1 matches exact versions only — documented as the main coverage limit.

Conversion logic lives in internal/osv; the CLI under tools/ is thin. Output validates against the published exposure-catalog schema and is consumed by bumblebee scan --exposure-catalog. Zero new dependencies.

Closes #21

Converts a locally-downloaded OSV snapshot into a Bumblebee exposure
catalog. The scanner never contacts osv.dev; this is an offline,
maintainer-side import that produces a static catalog reviewed and
committed like any other under threat_intel/.

By default only malicious-package records (MAL- ids) are emitted;
-include-vulns widens to all OSV records. OSV ecosystems (npm, PyPI, Go,
RubyGems, Packagist) map to Bumblebee's, using OSV's enumerated
affected[].versions. Range-only entries (no enumerated versions) are
skipped, since v0.1 matches exact versions only.

Closes #21
@adel-pplx adel-pplx requested a review from kyle-pplx May 29, 2026 20:12
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.

Add osv.dev as package source

1 participant