How to Contribute
January 28, 2026 ยท View on GitHub
We'd love to accept your patches and contributions to this project. There are just a few small guidelines you need to follow.
Code of Conduct
This is a project of the Open Source Security Foundation and follows its Code of Conduct.
Accepted Contributions
This repository is primarily for the OSV Schema definition(human-readable and JSON Schema), and related tooling.
See the guiding principles for background thinking behind the schema's design, and what is more and less likely to be acceptable in the way of changes.
For more substantial changes, we encourage you to open an issue for discussion and to also engage with the OpenSSF Vulnerability Working Group about the proposed change.
Code Reviews
All submissions, including submissions by project members, require review. We use GitHub pull requests for this purpose. Consult GitHub Help for more information on using pull requests.
Adding a new ecosystem
To add a new ecosystem, follow these steps:
-
ecosystems.json: Add an entry for the new ecosystem and it's description.- If your ecosystem has multiple separate release, please include how releases are specified.
-
Database-specific prefix: Generally a new ecosystem will introduce a new database-specific ID prefix (e.g.,
GHSAfor GitHub Security Advisories), please add it to:- The "Database-specific prefixes" table in
docs/schema.md. - The
prefixpattern withinvalidation/schema.json.
- The "Database-specific prefixes" table in
-
README.md: Add the new ecosystem to the list of data exporters in the README. -
Run update script: Finally, run
python3 ./scripts/update-ecosystems-lists.py. This script will automatically update the following files based on your changes toecosystems.json:bindings/go/osvschema/constants.go- The main ecosystem table in
docs/schema.md - The ecosystem enum in
validation/schema.json - Make a copy of the
validation/schema.jsonfor the linter intools/osv-linter/internal/checks/schema_generated.json
Development policies
Dependencies
Selection
Dependencies should be taken in an intentional manner, following the OpenSSF's Best Practices Guides and Concise Guides. Bias towards avoiding taking a new dependency where possible. Include your rationale for adding a new dependency in the pull request that adds it so reviewers may understand it, and the rationale is captured in the commit history.
To ease their ongoing management, dependencies must be obtained from relevant language-specific package registries and not vendored.
Tracking
Dependencies are tracked by their respective lock files.
Management
Dependencies are managed with standard dependency management tooling, such as Dependabot.