Initial commit. monorepo deps are copied in a dirty way to the vendor folder

This commit is contained in:
Florian Frank committed 2026-09-18 16:58:29 +02:00
commit 06593ac488
53 files changed
+7692

No files matched your search

+42
View File
@@ -0,0 +1,42 @@
# vendor
Copies of everything `report_generator` borrows from the monorepo, so the package can be lifted into
a repository of its own.
Nothing in here is edited. `sync.py` writes it, under the same import paths the monorepo uses:
```
python -m persistent_storage.report_generator.vendor.sync
```
Re-run it after changing anything it lists; the diff then shows what drifted. The copied packages
are removed whole first, so dropping an entry from the list actually drops it from the tree.
`__init__.py` decides whether these copies are used. It asks whether the real packages can be
imported — not a flag, not an environment variable — so the same code runs in the monorepo and
outside it, and the copies can never shadow the real packages while those are present.
## What is copied, and what for
| Copied | Used for |
| --- | --- |
| `cc_common` | The CLI framework, the logging context, `PipelineError`. |
| `persistent_storage/shared.py` | The storage configuration and its secrets. |
| `persistent_storage/wrapper.py` | The `Scan` and `Artifact` rows. |
| `persistent_storage/utils/db_utils.py` | Reading a scan and its artifacts. |
| `persistent_storage/utils/s3_utils.py` | Fetching the stored files. |
| `persistent_storage/utils/cvss_utils.py` | Reading a CVSS vector of any generation. |
| `persistent_storage/helper.py` | What `db_utils` prints its tables with. |
| `cipherverifier/core/services/sarif.py` | Summarising a SARIF report. |
| `cipherverifier/core/services/vdr.py` | Summarising a vulnerability report. |
The two summarisers live in the web application today and are written to be free of it — no Django,
no store. That is what makes copying them honest rather than a workaround: wherever this tool ends
up, they belong beside it rather than inside a web application it does not otherwise use.
Not copied: the report's own template, stylesheet and fonts, which are this package's own and live
in `template/`.
## Third-party dependencies
`pyproject.toml` lists them. WeasyPrint additionally needs the native Pango and cairo libraries.