Check open-source license compatibility on every pull request — run osv-scanner against the PR head, publish commit statuses, comment on failures, and track dependency license statistics in the console.
Built with SuperPlane.
- On pull request — listen for
opened,synchronize, andreopenedevents on a selected repository - Run license check — clone the PR head, detect the project license from
LICENSE,package.json, orpyproject.toml, then runosv-scanner --licensesrecursively across lockfiles - Enforce — publish an OSS Guard commit status (success or failure) and comment on the PR when dependencies use unapproved licenses
- Setup — save the repository (
owner/repo) to canvas memory - Scan main — read the saved repository, clone
main, and run the same license scan as the PR flow - Record stats — populate the console dashboard from
main, including a list of unapproved dependencies (no commit statuses or PR comments)
- Latest scan and Licenses in use reflect the latest Scan main run on
main, not individual PR branches - Unapproved dependencies lists packages on
mainthat fail the license check
- SuperPlane account
- GitHub integration connected to the target repository
- A project license declared in the repository (
LICENSE,package.json, orpyproject.toml)
- Add a LICENSE file (or set
licenseinpackage.json/pyproject.toml) in your repository — OSS Guard reads the project license from source code. - Connect GitHub — bind a GitHub integration on the canvas nodes, then select the repository on On Pull Request.
- Run Setup — enter the repository as
owner/repo(for example,superplanehq/superplane). - Run Scan main — scan
mainand populate the console. - Optional: add a
GITHUB_TOKENsecret on Run setup scan and Run license check for private repositories. Add dependency exceptions inosv-scanner.tomlat the repository root (applies repo-wide).
Add a secret named GITHUB_TOKEN on the Run setup scan and Run license check nodes. It is used to clone private repositories.
- Private repositories: required
- Public repositories: optional
- Repository access: Only select repositories → choose the target repository
- Repository permissions:
- Contents: Read
- Metadata: Read
MIT