cyclonedx2report
cyclonedx2report is a Python CLI that converts a CycloneDX JSON SBOM into an interactive HTML report. It is the core used on cyclonedx2report.github.io.
Features
- Converts CycloneDX JSON into self-contained report HTML
- Embeds SBOM payload into URL hash (
#pako) for offline usage - Copies required runtime asset (
report-core.js) next to generated report - Supports report title and template selection
Installation
Install from PyPI:
pip install cyclonedx2report
Install from source (editable):
pip install -e .
CLI Usage
cyclonedx2report INPUT_JSON [-o OUTPUT_HTML] [--title TITLE] [--template {main,light}]
Examples:
cyclonedx2report cyclonedx-example.json
cyclonedx2report cyclonedx-example.json -o report.generated.html --title "My SBOM" --template light
Development
Create distributions locally:
python -m pip install --upgrade build twine
python -m build
python -m twine check dist/*
Upload manually (optional):
python -m twine upload dist/*
Publishing From GitHub Actions
This repository includes:
.github/workflows/ci.ymlfor CI checks on PR/push.github/workflows/publish.ymlfor trusted publishing to PyPI on GitHub Release
One-time setup
- Create a PyPI project named
cyclonedx2report(or renameproject.nameif needed). - In PyPI, configure Trusted Publisher for this GitHub repository and workflow
.github/workflows/publish.yml. - In GitHub, create an environment named
pypi(optional but recommended) and allow deployment.
Release flow
- Bump version in
pyproject.toml. - Push changes to GitHub.
- Create a GitHub Release (tag like
v0.1.1). publish.ymlbuilds and uploads package to PyPI.
License
MIT
Metadata
Release files for cyclonedx2report 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cyclonedx2report-1.0.1.tar.gz | 16.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cyclonedx2report-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 31.7 kB
Release files / cyclonedx2report-1.0.1.tar.gz
| Download URL | cyclonedx2report-1.0.1.tar.gz |
|---|---|
| Size | 16.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
70eca437fdddde6c9d153dd83c0d1fe5c259597f368cb35070a7dc5aadd5aea6
|
|
BLAKE2b-256 checksum How to use checksums |
7a322a504d0ba38a1bab1948c5d48236cf28a0f3fed29eb4febf6fdc59da0342
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 17, 2026.
Transparency logRelease files / cyclonedx2report-1.0.1-py3-none-any.whl
| Download URL | cyclonedx2report-1.0.1-py3-none-any.whl |
|---|---|
| Size | 15.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3d0cd28a2c37734c740a7d4bfa82aaeea639f8780d2d0a85fcee41493c224887
|
|
BLAKE2b-256 checksum How to use checksums |
0a70f43790c0ff6a61439c3d78665d6421812552299dafbaba6e170cff93534c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 17, 2026.
Transparency log