Skip to content

Commit 56df3cd

Browse files
committed
Fixed SBOM generation and verified license info in markdown
Signed-off-by: Manav Gupta <[email protected]>
1 parent 2ae96ad commit 56df3cd

File tree

1 file changed

+33
-4
lines changed

1 file changed

+33
-4
lines changed

Makefile

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -437,10 +437,39 @@ sbom: ## 🛡️ Generate SBOM & security report
437437
@python3 -m venv "$(VENV_DIR).sbom"
438438
@/bin/bash -c "source $(VENV_DIR).sbom/bin/activate && python3 -m pip install --upgrade pip setuptools pdm uv && python3 -m uv pip install .[dev]"
439439
@/bin/bash -c "source $(VENV_DIR)/bin/activate && python3 -m uv pip install cyclonedx-bom sbom2doc"
440-
@/bin/bash -c "source $(VENV_DIR)/bin/activate && python -m cyclonedx_py environment --validate '$(VENV_DIR).sbom' --pyproject pyproject.toml --gather-license-texts > $(PROJECT_NAME).sbom.json"
441-
@/bin/bash -c "source $(VENV_DIR)/bin/activate && sbom2doc -i $(PROJECT_NAME).sbom.json -f markdown -o $(DOCS_DIR)/docs/test/sbom.md"
442-
@trivy sbom $(PROJECT_NAME).sbom.json | tee -a $(DOCS_DIR)/docs/test/sbom.md
443-
@/bin/bash -c "source $(VENV_DIR).sbom/bin/activate && python3 -m pdm outdated | tee -a $(DOCS_DIR)/docs/test/sbom.md"
440+
@echo "🔍 Generating SBOM from environment..."
441+
@/bin/bash -c "source $(VENV_DIR)/bin/activate && \
442+
python -m cyclonedx_py environment \
443+
--output-format XML \
444+
--output-file $(PROJECT_NAME).sbom.xml \
445+
--no-validate \
446+
'$(VENV_DIR).sbom/bin/python'"
447+
@echo "📁 Creating docs directory structure..."
448+
@mkdir -p $(DOCS_DIR)/docs/test
449+
@echo "📋 Converting SBOM to markdown..."
450+
@/bin/bash -c "source $(VENV_DIR)/bin/activate && \
451+
sbom2doc -i $(PROJECT_NAME).sbom.xml -f markdown -o $(DOCS_DIR)/docs/test/sbom.md"
452+
@echo "🔒 Running security scans..."
453+
@/bin/bash -c "if command -v trivy >/dev/null 2>&1; then \
454+
echo '## Trivy Vulnerability Scan' >> $(DOCS_DIR)/docs/test/sbom.md; \
455+
echo '' >> $(DOCS_DIR)/docs/test/sbom.md; \
456+
trivy sbom $(PROJECT_NAME).sbom.xml | tee -a $(DOCS_DIR)/docs/test/sbom.md; \
457+
else \
458+
echo '⚠️ trivy not found, skipping vulnerability scan'; \
459+
echo '## Security Scan' >> $(DOCS_DIR)/docs/test/sbom.md; \
460+
echo '' >> $(DOCS_DIR)/docs/test/sbom.md; \
461+
echo 'Trivy not available - install with: brew install trivy' >> $(DOCS_DIR)/docs/test/sbom.md; \
462+
fi"
463+
@echo "📊 Checking for outdated packages..."
464+
@/bin/bash -c "source $(VENV_DIR).sbom/bin/activate && \
465+
echo '## Outdated Packages' >> $(DOCS_DIR)/docs/test/sbom.md && \
466+
echo '' >> $(DOCS_DIR)/docs/test/sbom.md && \
467+
(python3 -m pdm outdated || echo 'PDM outdated check failed') | tee -a $(DOCS_DIR)/docs/test/sbom.md"
468+
@echo "✅ SBOM generation complete"
469+
@echo "✅ SBOM generation complete"
470+
@echo "📄 Files generated:"
471+
@echo " - $(PROJECT_NAME).sbom.xml (CycloneDX XML format)"
472+
@echo " - $(DOCS_DIR)/docs/test/sbom.md (Markdown report)"
444473

445474
pytype: ## 🧠 Pytype static type analysis
446475
@echo "🧠 Pytype analysis…"

0 commit comments

Comments
 (0)