All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres (loosely) to Semantic Versioning.
- TBD
-
HTML Report Generation 📊:
- Beautiful, self-contained HTML reports with embedded CSS
- Interactive charts using Chart.js (severity distribution, findings by tool)
- Summary dashboard with statistics per tool
- Detailed findings organized by severity and tool
- Export findings as JSON from the report
- Responsive design (mobile/tablet/desktop friendly)
- Print-friendly styling (exportable to PDF)
- Cross-platform browser opening (macOS, Linux, Windows)
-
Progress Bars & Real-time UI ⏳:
- Visual progress bars for each scanner
[████████░░] - Status icons (✅ completed, ❌ error, ⏳ running)
- Execution time tracking per scanner
- Thread-safe progress updates
- Clear screen display with real-time feedback
- Visual progress bars for each scanner
-
New CLI Flags:
--format=html: Generate HTML report (default: terminal)--open: Auto-open HTML report in default browser- Enhanced
--formatflag with three output options: terminal, json, html
- README.md updated for v0.4.1:
- Updated key features to show HTML and progress bar capabilities
- Added HTML report examples and command usage
- Updated roadmap with v0.4.1 released status
-
devsecops scancommand 🔍:- Run Semgrep, Gitleaks, and Trivy scans locally
- Parallel execution of all three scanners
- Respects
security-config.ymlconfiguration - Automatic Docker image scanning when Dockerfile detected
- JSON output format for CI/CD integrations
- Exit code 1 when thresholds exceeded (with
--fail-on-threshold)
-
Rich terminal UI 🎨:
- Color-coded output (red for CRITICAL, yellow for HIGH, etc.)
- Emoji indicators for visual feedback (✅, ❌, 🔍,
⚠️ ) - ASCII borders and professional formatting
- Tool summaries with finding counts
- Detailed findings with file, line, severity, and rule information
-
YAML config file parsing 📝:
- Load and parse
security-config.ymlin Go code - Support for all configuration options (fail_on, exclude_paths, tools)
- Default values when config file missing
- Full validation of config structure
- Load and parse
-
Git hooks integration 🪝:
- New
devsecops init-hookscommand - Pre-commit hook: Blocks commits if security issues exceed thresholds
- Pre-push hook: Warns about issues but allows push to proceed
--uninstallflag to remove hooks- Hooks read from
.git/hooks/directory
- New
- README.md updated for v0.4.0:
- Added documentation for
devsecops scancommand - Added git hooks usage examples
- Updated key features section with local scanning capabilities
- Updated roadmap with v0.4.0 released status
- Added documentation for
-
Config-driven fail gates 🎯:
- New
fail_onconfiguration insecurity-config.yml - Define per-tool thresholds that fail CI builds:
gitleaks: Fail on secret count threshold (default: 0)semgrep: Fail on finding count threshold (default: 10)trivy_critical,trivy_high,trivy_medium,trivy_low: Fail on vulnerability counts
- Set threshold to
-1to disable specific gate - Workflow now exits with error code 1 when thresholds exceeded
- Summary status shows
PASSorFAILbased on thresholds
- New
-
Exclude paths support 🚫:
- New
exclude_pathsconfiguration to reduce scanning noise - Applies to all enabled scanners:
- Semgrep: Uses
--excludeflags - Gitleaks: Generates
.gitleaks.tomlwith path allowlist - Trivy: Uses
skip-dirsparameter
- Semgrep: Uses
- Common exclusions:
vendor/,node_modules/,test/, etc.
- New
-
Dockerfile detection 🐳:
- Automatic detection of Dockerfile and docker-compose.yml
- Added
HasDockerandDockerImagesfields toProjectInfo devsecops detectnow shows Docker status- Parses Dockerfile to extract base images
-
Trivy image scanning 📦:
- Automatic Docker image scanning when Dockerfile detected
- Builds temporary image (
devsecops-scan-temp:latest) for scanning - Generates
trivy-image.jsonartifact - Image vulnerabilities included in summary and PR comments
- Same fail gates apply to both FS and image scans
-
Inline "Fix-it" PR comments 💬:
- Detailed, file/line-specific security comments on PRs
- Semgrep findings:
- Shows severity, rule ID, and message
- Includes fix suggestions when available
- Links to security references
- Gitleaks findings:
- Highlights secret location
- Provides remediation steps
- Warns about credential rotation
- Only comments on changed files in the PR
- Limited to 10 Semgrep + 5 Gitleaks comments per run (prevents spam)
-
Enhanced PR summary comments:
- Now shows clear PASS/FAIL status based on fail gates
- Displays blocking issue count
- Separate sections for Trivy FS and Trivy Image results
- Idempotent updates (no duplicate comments)
-
Structured summary.json v0.3.0:
- New fields:
status: "PASS" or "FAIL"blocking_count: Number of issues exceeding thresholdstrivy_image: Image scan results (when Dockerfile present)
- Ready for dashboard integrations and trend analysis
- New fields:
-
Updated
security-config.ymlschema to v0.3.0:- Added comprehensive
fail_onconfiguration with defaults - Added
exclude_pathswith commented examples - Updated version to
"0.3.0"
- Added comprehensive
-
Workflow templates enhanced:
- Added Python step to extract config (requires PyYAML)
- Config extraction happens early in workflow
- Fail gate check runs at end (after artifacts upload)
- Both Go and Node.js templates updated identically
-
README updated:
- Highlighted v0.3.0 features with 🆕 badges
- Added fail gates and exclude paths examples
- Updated configuration section with full v0.3.0 schema
- Added customization instructions
- Updated roadmap with release status
- PyYAML installation added to config extraction step (fixes
ModuleNotFoundError) - Dockerfile image extraction now uses proper string parsing (not filepath.SplitList)
- Build stage detection in Dockerfiles (skips
FROM ... AS stagelines) - Gitleaks JSON report generation switched from
gitleaks-actionto direct CLI execution (enables fix-it comments to read findings)
devsecops diagnosecommand to verify environment readiness:- Checks installed scanners (Semgrep, Gitleaks, Trivy)
- Verifies Docker availability (for Trivy)
- Confirms project type detection
- Interactive wizard for initialization:
devsecops init --wizard- Guides users through selecting tools, severity thresholds, and configuration choices.
- Automated PR security summary comment:
- GitHub Actions workflow posts (and updates) a comment on pull requests.
- Comment includes Gitleaks leak counts, Trivy vulnerability counts, and a pass/fail recommendation.
- JSON summary output:
- New
artifacts/security/summary.jsonfile generated on each run. - Includes:
- Total number of leaks from Gitleaks (when available)
- Aggregated Trivy vulnerabilities per severity (CRITICAL/HIGH/MEDIUM/LOW)
- New
- Security artifacts upload:
- Workflow now uploads a
security-reportsartifact containing:summary.jsontrivy-fs.json(when Trivy is enabled)gitleaks-report.json(reserved for future enhancements)
- Workflow now uploads a
- Expanded
security-config.ymlschema:- New fields added:
version: configuration schema version (starting at"0.2.0")exclude_paths: reserved list for future path exclusionsfail_on: reserved map for future per-tool fail gatesnotifications:pr_comment: enabled by defaultslack,email: placeholders for future integrations
- New fields added:
- GitHub Actions workflows hardened:
- Explicit
permissionsblock:contents: readissues: writepull-requests: write
- Added job-level
timeout-minutesto avoid hanging runs. - Ensured artifacts folder (
artifacts/security/) is created early in the job.
- Explicit
- Workflow templates updated to:
- Always generate
summary.jsoneven if some tools are disabled. - Use
actions/github-script@v7to manage PR comments with an idempotent marker.
- Always generate
- README refreshed to reflect v0.2.0 features:
- Added sections for wizard, diagnose, JSON summary, PR comments, and updated config format.
- Clarified installation and quick-start flows.
- Resolved issues with:
- Gitleaks GitHub token requirements on pull requests by setting
GITHUB_TOKENenv in the workflow. - Incompatible
with:inputs for the Gitleaks action (removed unsupported inputs). github-scriptstep script errors related to re-declaringcoreand insufficientGITHUB_TOKENpermissions.
- Gitleaks GitHub token requirements on pull requests by setting
- Initial release of DevSecOps Kit CLI:
devsecopsbinary.
- Project type detection:
- Node.js via
package.json - Go via
go.mod
- Node.js via
- GitHub Actions workflow generation:
- Node.js and Go workflows with:
- Semgrep (SAST)
- Gitleaks (secrets scanning)
- Trivy (filesystem/dependency scanning)
- Node.js and Go workflows with:
security-config.ymlgeneration:- Base fields:
languageframeworkseverity_thresholdtools(Semgrep, Gitleaks, Trivy flags)
- Base fields:
- CLI flags for configuration:
--severityto set severity threshold.--no-semgrep,--no-gitleaks,--no-trivyto toggle tools.
- Version subcommand:
devsecops versionprints the current CLI version.