use crate::baseline::diff::BaselineScanReport;
use crate::baseline::gate::CiGateResult;
use std::fmt::Write;
pub(crate) fn render_baseline_section(
output: &mut String,
report: &BaselineScanReport,
ci_gate: Option<&CiGateResult>,
) {
output.push_str("## Baseline\n\n");
match &report.baseline_path {
Some(path) => writeln!(output, "- **Baseline:** `{}`", path.display()).unwrap(),
None => output.push_str("- **Baseline:** none (all findings treated as new)\n"),
}
writeln!(output, "- **New findings:** {}", report.new_count()).unwrap();
writeln!(
output,
"- **Existing findings:** {}",
report.existing_count()
)
.unwrap();
if let Some(ci_gate) = ci_gate {
let status = if ci_gate.passed() { "passed" } else { "failed" };
writeln!(output, "- **CI gate:** {status} (`{}`)", ci_gate.label()).unwrap();
}
output.push('\n');
}