Conversation
- Add --color auto|always|never global CLI flag - Replace ColoredOutput with OutputStyles stylesheet pattern - Support NO_COLOR, FORCE_COLOR, isatty, CI, TERM=dumb via supports-color - Add Display impl for Severity (uppercase) and as_str_lowercase() for machine-readable formats (JSON/SARIF now emit lowercase severity) - Switch fix suggestions to BTreeMap for deterministic ordering - Enable Windows ANSI support via enable-ansi-support crate
--severity - Move fail-condition evaluation from AuditReport::should_fail_on_severity to new evaluate_fail_and_filter function in cli.rs - Use min(severity, fail_on) as effective matcher threshold so vulnerabilities needed by fail_on are never discarded by severity - Apply severity as a post-hoc display filter only when severity > fail_on - Deprecate --severity flag in help text, config templates, and docs (will be removed in v0.5) - Add skip_serializing to severity config field so config init excludes it - Add comprehensive tests for evaluate_fail_and_filter edge cases
Move AuditReport and DetailLevel into output::model and replace the monolithic report.rs with dedicated human, json, markdown and sarif modules. Add output::generate_report as a single entrypoint, update exports and adjust tests accordingly.
- Derive Serialize on VulnerabilityMatch, FixSuggestion, FixAnalysis; eliminate JSON DTO layer - Replace DTO mapping with zero-copy JsonReportView borrowing from AuditReport - Add #[serde(rename_all = "lowercase")] to Severity; Display impl keeps UPPERCASE for human-readable output - Expose is_direct as [direct]/[transitive] tag in human and markdown formats - Show CVSS version tag (v3) in detailed human and markdown output - Add cvss_version, source and aliases to SARIF rule and result properties - Add test coverage for serialization paths and data exposure changes
Add a --display CLI flag (text|table) and a config default of "table". Compact human output can now render structured tables using the tabled crate and respects terminal width via terminal_size. Markdown fix suggestions are consolidated into package-level tables. Update Cargo.toml/Cargo.lock to include tabled and terminal_size and export DisplayMode through the output API.
resolves #146 show_progress is now false by default maintenance_forbid_quarantined is now true by default
|
@claude review |
Code Review: v0.4.3Scope: Major — 4110 additions / 1889 deletions across 21 files SummaryThis PR delivers a significant improvement to pysentry's output layer: the monolithic Strengths
Issues1. Breaking change to JSON output format — Medium
Any script or CI pipeline parsing pysentry's 2. Silent default change:
|
No description provided.