Getting Started
This guide demonstrates how to use ORT with SCANOSS to analyse your projects, scan for licence compliance issues, evaluate policies, and generate reports.Basic Workflow
Step 1: Analyse Dependencies
The first step is to analyse your project’s dependency manifests to build a complete dependency tree.-i .— Analyses the current directory-o ort-results— Writes results to theort-resultsdirectory
- Detect supported package managers (npm, Maven, Gradle, etc.)
- Parse dependency manifests
- Build a complete dependency tree
- Generate
analyzer-result.yml
Note: The analyze subcommand name reflects ORT’s CLI spelling and is used
verbatim throughout this guide.
Step 2: Scan with SCANOSS
Once dependency analysis is complete, scan the identified packages for licence and copyright information using SCANOSS.- Reads the analyser results
- Scans all identified packages using SCANOSS
- Detects licences and copyrights
- Generates
scan-result.yml
Note: Vulnerability data may also be returned by SCANOSS where available, but vulnerability detection is not guaranteed for all packages.
Step 3: Generate an HTML Report
Generate an interactive HTML report to review your scan results.Step 4: View Reports
Open the generated HTML report in your browser: Windows (PowerShell):Advanced Workflows
Complete Workflow with Policy Evaluation
To include policy evaluation in your compliance workflow, add theevaluate step
between the scan and report stages.
macOS / Linux:
Report Formats
Generate Multiple Formats
ORT can generate reports in several formats simultaneously. Select the format(s) appropriate for your use case.Format Use Cases
Static HTML Report
Recommended for:- Human-readable licence compliance reviews
- Sharing results with stakeholders
- Interactive exploration of scan results
SPDX Document
An industry-standard Software Bill of Materials (SBOM) format. Recommended for:- Legal compliance requirements
- Tool interoperability
- Sharing with third parties that require a standardised SBOM
CycloneDX
A modern SBOM format with strong tooling support. Recommended for:- Vulnerability tracking workflows
- Security analysis pipelines
- Integration with CycloneDX-compatible tools
Specific Use Cases
Scanning a JavaScript / Node.js Project
Scanning a Java / Maven Project
Scanning a Python Project
CI/CD Integration
GitHub Actions Workflow
Create.github/workflows/ort-scan.yml:
GitLab CI/CD Pipeline
Create.gitlab-ci.yml:
Policy Enforcement Examples
Example 1: Block GPL Licences
Example 2: Require a Licence for All Packages
Example 3: Block Packages with Critical Vulnerabilities
Note: ThehowToFixmessage above has been corrected. The original referenced${pkg.metadata.id.version}, which is the current (affected) version — not a remediated one. Update the message to reference the specific fixed version where known.
Troubleshooting Common Issues
Issue: Analysis Fails for a Specific Package Manager
Solution:Issue: Scan Takes Too Long
Solution:Issue: Out-of-Memory Errors
Solution:Best Practices
1. Version-Control Your Configuration
Store your ORT configuration alongside your project source:2. Use Exclusions for Large Projects
For large projects, use ORT’s exclusion mechanism to skip directories or packages that are out of scope, rather than scanning everything unconditionally:
Note: The --skip-excluded flag skips packages or paths marked as excluded in
your ORT configuration. It does not perform incremental or diff-based scanning.
3. Schedule Regular Compliance Scans
Run scans on a schedule to detect newly disclosed vulnerabilities or licence changes. The following example uses a cron job (Linux/macOS) to run a weekly scan:4. Document Policy Decisions
Add comments to policy rules to record the rationale and approval process:Next Steps
- Customise policies — Adapt policy rules to your organisation’s licence and security requirements.
- Automate — Integrate ORT into your CI/CD pipelines using the examples above.
- Monitor — Schedule regular scans to track compliance over time.
- Report — Generate compliance reports in the format required by your stakeholders.