Skip to content

Commit cf28dc0

Browse files
authored
Merge pull request #163 from manavgup/fix/sbom
Fixed SBOM generation and verified license info in markdown
2 parents b32f6e9 + 5f88878 commit cf28dc0

File tree

1 file changed

+32
-4
lines changed

1 file changed

+32
-4
lines changed

Makefile

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -463,10 +463,38 @@ sbom: ## 🛡️ Generate SBOM & security report
463463
@python3 -m venv "$(VENV_DIR).sbom"
464464
@/bin/bash -c "source $(VENV_DIR).sbom/bin/activate && python3 -m pip install --upgrade pip setuptools pdm uv && python3 -m uv pip install .[dev]"
465465
@/bin/bash -c "source $(VENV_DIR)/bin/activate && python3 -m uv pip install cyclonedx-bom sbom2doc"
466-
@/bin/bash -c "source $(VENV_DIR)/bin/activate && python3 -m cyclonedx_py environment --validate '$(VENV_DIR).sbom' --pyproject pyproject.toml --gather-license-texts > $(PROJECT_NAME).sbom.json"
467-
@/bin/bash -c "source $(VENV_DIR)/bin/activate && sbom2doc -i $(PROJECT_NAME).sbom.json -f markdown -o $(DOCS_DIR)/docs/test/sbom.md"
468-
@trivy sbom $(PROJECT_NAME).sbom.json | tee -a $(DOCS_DIR)/docs/test/sbom.md
469-
@/bin/bash -c "source $(VENV_DIR).sbom/bin/activate && python3 -m pdm outdated | tee -a $(DOCS_DIR)/docs/test/sbom.md"
466+
@echo "🔍 Generating SBOM from environment..."
467+
@/bin/bash -c "source $(VENV_DIR)/bin/activate && \
468+
python -m cyclonedx_py environment \
469+
--output-format XML \
470+
--output-file $(PROJECT_NAME).sbom.xml \
471+
--no-validate \
472+
'$(VENV_DIR).sbom/bin/python'"
473+
@echo "📁 Creating docs directory structure..."
474+
@mkdir -p $(DOCS_DIR)/docs/test
475+
@echo "📋 Converting SBOM to markdown..."
476+
@/bin/bash -c "source $(VENV_DIR)/bin/activate && \
477+
sbom2doc -i $(PROJECT_NAME).sbom.xml -f markdown -o $(DOCS_DIR)/docs/test/sbom.md"
478+
@echo "🔒 Running security scans..."
479+
@/bin/bash -c "if command -v trivy >/dev/null 2>&1; then \
480+
echo '## Trivy Vulnerability Scan' >> $(DOCS_DIR)/docs/test/sbom.md; \
481+
echo '' >> $(DOCS_DIR)/docs/test/sbom.md; \
482+
trivy sbom $(PROJECT_NAME).sbom.xml | tee -a $(DOCS_DIR)/docs/test/sbom.md; \
483+
else \
484+
echo '⚠️ trivy not found, skipping vulnerability scan'; \
485+
echo '## Security Scan' >> $(DOCS_DIR)/docs/test/sbom.md; \
486+
echo '' >> $(DOCS_DIR)/docs/test/sbom.md; \
487+
echo 'Trivy not available - install with: brew install trivy' >> $(DOCS_DIR)/docs/test/sbom.md; \
488+
fi"
489+
@echo "📊 Checking for outdated packages..."
490+
@/bin/bash -c "source $(VENV_DIR).sbom/bin/activate && \
491+
echo '## Outdated Packages' >> $(DOCS_DIR)/docs/test/sbom.md && \
492+
echo '' >> $(DOCS_DIR)/docs/test/sbom.md && \
493+
(python3 -m pdm outdated || echo 'PDM outdated check failed') | tee -a $(DOCS_DIR)/docs/test/sbom.md"
494+
@echo "✅ SBOM generation complete"
495+
@echo "📄 Files generated:"
496+
@echo " - $(PROJECT_NAME).sbom.xml (CycloneDX XML format)"
497+
@echo " - $(DOCS_DIR)/docs/test/sbom.md (Markdown report)"
470498

471499
pytype: ## 🧠 Pytype static type analysis
472500
@echo "🧠 Pytype analysis…"

0 commit comments

Comments
 (0)