sec-report-kit 0.3.2__tar.gz → 0.3.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/CHANGELOG.md +11 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/PKG-INFO +1 -1
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/pyproject.toml +2 -1
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/__init__.py +1 -1
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/cli.py +3 -1
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/tests/test_cli.py +30 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/.gitattributes +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/.github/workflows/pip-audit.yml +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/.github/workflows/publish-pypi.yml +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/.github/workflows/publish-testpypi.yml +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/.github/workflows/trivy-fs-audit.yml +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/.github/workflows/unit-test-coverage-gate.yml +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/.gitignore +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/README.md +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/bandit-gaps-vs-sast-open-source-tools.md +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/check_assets.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/requirements.txt +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/download_safety_db.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/download_safety_db.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/download_safety_db.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/install_external_clis.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/install_tools.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/install_tools.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_bandit_html.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_bandit_html.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_checkov_html.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_checkov_html.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_codeql_html.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_codeql_html.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_consolidated_html.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_consolidated_html.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_gitleaks_html.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_gitleaks_html.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_osv_scanner_html.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_osv_scanner_html.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_pip_audit_html.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_pip_audit_html.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_safety_html.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_safety_html.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_semgrep_html.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_semgrep_html.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_tfsec_html.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_tfsec_html.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_trivy_html.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_trivy_html.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_trufflehog_html.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/render_trufflehog_html.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_all_security_scans.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_all_security_scans.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_bandit.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_bandit.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_checkov.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_checkov.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_codeql.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_codeql.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_gitleaks.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_gitleaks.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_osv_scanner.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_osv_scanner.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_pip_audit.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_pip_audit.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_safety.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_safety.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_semgrep.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_semgrep.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_tfsec.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_tfsec.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_trivy.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_trivy.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_trufflehog.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_trufflehog.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_unit_tests_with_coverage.bat +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/scripts/run_unit_tests_with_coverage.sh +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/__main__.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/generate_consolidated_security_report.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/mcp/__init__.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/mcp/server.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/models.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/parsers/__init__.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/parsers/bandit.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/parsers/checkov.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/parsers/codeql.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/parsers/gitleaks.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/parsers/osv_scanner.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/parsers/pip_audit.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/parsers/safety.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/parsers/semgrep.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/parsers/tfsec.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/parsers/trivy.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/parsers/trufflehog.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/report/__init__.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/report/html_renderer.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/services/__init__.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/services/normalize.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/src/sec_report_kit/services/summarize.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/tests/test_html_renderer.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/tests/test_mcp_server.py +0 -0
- {sec_report_kit-0.3.2 → sec_report_kit-0.3.3}/tests/test_parsers.py +0 -0
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented in this file.
|
|
4
4
|
|
|
5
|
+
## 0.3.3 - 2026-05-21
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- Added `sec_report_kit` console script alias alongside `srk` and `sec-report-kit`.
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
- CLI startup now suppresses the ASCII banner for `--help` and `--version` so these flags output only command help/version details.
|
|
12
|
+
|
|
13
|
+
### Tests
|
|
14
|
+
- Added regression tests for top-level `--help` and `--version` banner behavior.
|
|
15
|
+
|
|
5
16
|
## 0.2.9 - 2026-05-18
|
|
6
17
|
|
|
7
18
|
### Changed
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "sec-report-kit"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.3"
|
|
8
8
|
description = "Generate HTML security reports from Trivy, pip-audit, Safety, Bandit, and Gitleaks JSON"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -39,6 +39,7 @@ dev = [
|
|
|
39
39
|
|
|
40
40
|
[project.scripts]
|
|
41
41
|
srk = "sec_report_kit.cli:main"
|
|
42
|
+
sec_report_kit = "sec_report_kit.cli:main"
|
|
42
43
|
"sec-report-kit" = "sec_report_kit.cli:main"
|
|
43
44
|
|
|
44
45
|
[tool.hatch.build.targets.wheel]
|
|
@@ -2,6 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import datetime as dt
|
|
4
4
|
import json
|
|
5
|
+
import sys
|
|
5
6
|
from pathlib import Path
|
|
6
7
|
from typing import Any
|
|
7
8
|
|
|
@@ -467,7 +468,8 @@ ASCII_BANNER = """
|
|
|
467
468
|
|
|
468
469
|
|
|
469
470
|
def main() -> None:
|
|
470
|
-
|
|
471
|
+
if not any(flag in sys.argv[1:] for flag in ("--help", "-h", "--version")):
|
|
472
|
+
typer.echo(ASCII_BANNER)
|
|
471
473
|
app()
|
|
472
474
|
|
|
473
475
|
|
|
@@ -305,6 +305,36 @@ def test_main_calls_app(monkeypatch):
|
|
|
305
305
|
assert exc.value.code == 0
|
|
306
306
|
|
|
307
307
|
|
|
308
|
+
def test_main_help_does_not_print_banner(monkeypatch, capsys):
|
|
309
|
+
import pytest
|
|
310
|
+
|
|
311
|
+
monkeypatch.setattr("sys.argv", ["srk", "--help"])
|
|
312
|
+
from sec_report_kit.cli import main
|
|
313
|
+
|
|
314
|
+
with pytest.raises(SystemExit) as exc:
|
|
315
|
+
main()
|
|
316
|
+
|
|
317
|
+
captured = capsys.readouterr()
|
|
318
|
+
assert exc.value.code == 0
|
|
319
|
+
assert "____ _____" not in captured.out
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
def test_main_version_does_not_print_banner(monkeypatch, capsys):
|
|
323
|
+
import pytest
|
|
324
|
+
from sec_report_kit import __version__
|
|
325
|
+
|
|
326
|
+
monkeypatch.setattr("sys.argv", ["srk", "--version"])
|
|
327
|
+
from sec_report_kit.cli import main
|
|
328
|
+
|
|
329
|
+
with pytest.raises(SystemExit) as exc:
|
|
330
|
+
main()
|
|
331
|
+
|
|
332
|
+
captured = capsys.readouterr()
|
|
333
|
+
assert exc.value.code == 0
|
|
334
|
+
assert f"sec-report-kit {__version__}" in captured.out
|
|
335
|
+
assert "____ _____" not in captured.out
|
|
336
|
+
|
|
337
|
+
|
|
308
338
|
# Cover cli.py line 195: except ValueError as exc: (in _parse_modified_since)
|
|
309
339
|
def test_parse_modified_since_invalid_value():
|
|
310
340
|
from sec_report_kit.cli import _parse_modified_since
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|