Skip to main content

Open-source CRA Readiness Scanner CLI for assessing EU Cyber Resilience Act readiness from SBOMs and project signals.

Project description

cra-scanner

Open source CLI tool for assessing EU Cyber Resilience Act (CRA) compliance readiness from SBOMs and project signals.

PyPI version License: MIT

Installation

pip install cra-scanner

Quick Start

Scan a project directory:

cra-scanner scan .

Scan with an explicit SBOM:

cra-scanner scan . --sbom path/to/bom.json

Output as JSON:

cra-scanner scan . --format json --output report.json

Fail if score is below a threshold (useful in CI/CD):

cra-scanner scan . --min-score 50

CRA Readiness Score

The scanner returns a score from 0-100 based on:

Dimension Points What it checks
SBOM 40 Presence, coverage, version completeness
Vulnerabilities 30 Known vulnerability exposure (placeholder in v0.1)
Practices 30 SECURITY.md, Dependabot, documentation

The score is a directional indicator, not legal advice.

SBOM Format Support

  • CycloneDX JSON and XML
  • SPDX JSON and tag-value

SBOMs are auto-discovered in your project directory, or you can specify one with --sbom.

GitHub Action

Use cra-scanner in your CI/CD pipeline:

name: CRA Compliance Check
on: [push, pull_request]

jobs:
  cra-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Run CRA Scanner
        uses: complaro/cra-scanner/action@main
        with:
          min-score: 40

See action/README.md for full documentation.

Roadmap

  • Vulnerability matching against NVD, OSV.dev, and CISA KEV
  • Version range comparison (semver, PEP 440, CPE)
  • SARIF output for GitHub/GitLab code scanning
  • CycloneDX VEX output
  • Auto-SBOM generation from package managers

License

MIT - see LICENSE

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cra_scanner-0.2.0.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cra_scanner-0.2.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file cra_scanner-0.2.0.tar.gz.

File metadata

  • Download URL: cra_scanner-0.2.0.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for cra_scanner-0.2.0.tar.gz
Algorithm Hash digest
SHA256 beabe14375e1759fd2fdb3c548886a390bbad54023a912e1af59fdb0bedd72c0
MD5 996e06ab1c70edaeccf363255d7926db
BLAKE2b-256 ee6b6eb6064a9c6329e5a9c6dfcd3e5bcbac71f8748c456cdbd0c8a4cc4addac

See more details on using hashes here.

File details

Details for the file cra_scanner-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: cra_scanner-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for cra_scanner-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 11dfc3ab9f5c4038fa76fe1f37f18e16b6dc3404619313f138870d7cc467ecd9
MD5 f96d40e026549543cd996509e00ff6bf
BLAKE2b-256 8003d7638c17a658083855ccea1ca3ff8f3169d51d82c6880641cc55f9528121

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page