// changelog
v1.21.0
guard and leaks can now write SARIF logs for Code Scanning, remote pr honours inline suppression markers, and the go-git diff backend is gone.
Released October 21, 2026
Added
commitbrief guard --sarifwrites the policy’s offending findings as a SARIF 2.1.0 log (categorycommitbrief/guard/), so a Code Scanning upload shows exactly what blocked the gate. Waived findings are not written; a passing policy writesresults: []. The verdict goes to stderr and the exit code is unchanged. It fails closed: a review that degraded (a response that never parsed into structured findings, fresh or replayed from cache, or a--from-jsondocument marked as degraded) produces an error and no file, because an emptyresults[]would tell Code Scanning every open alert is fixed. See SARIF export.commitbrief leaks --sarifwrites credential hits as a SARIF 2.1.0 log (categorycommitbrief/leaks/, rulesec.hardcoded-secret; pattern names in the message and inproperties["commitbrief/patterns"], the commit inproperties["commitbrief/commit"]for history hits). The matched text, snippets and author e-mail are never written. It is exclusive with--patternsand with the other output modes (--json,--markdown,--suggest-commit,--cli,--show-prompt), and it fails closed on anything that would make the log incomplete: a narrowing flag (--no-history,--no-worktree,--file,--dir,--exclude-file,--exclude-dir, the commit filters or a git range) is a usage error, and a history scan cut short by--max-commitsor by the 10000-commit walk ceiling writes no file and exits 1. See Leaks.leaksreports when the commit walk hit the 10000-commit ceiling, andleaks --jsoncarries it asmeta.walk_truncated.- A cached review that degraded now reports
meta.degrade_reasonon a cache hit too (additive; the cache key andschemaare unchanged).
Changed
remote prhonours inline suppression markers.commitbrief-ignore: reasonandcommitbrief-ignore[<rule_id>|<severity>]: reasonsilence findings in the posted review exactly as they do in the local run, including--no-postpreviews, which also print the suppressed count. The baseline is not applied toremote pr. When a finding becomes suppressed, its previously posted thread is resolved by the usual sync. Suppressed findings no longer count toward--fail-onor the request-changes verdict. See Signal control.leakstruncation notices (--max-commitsand the walk ceiling) are now printed under--quietas well; they used to stay silent.- The “git is not installed” and “not inside a git repository” errors are
localized (EN
Not inside a git repository., replacinggit: not inside a git repository), including on the progress[fail]line.
Fixed
- Commands that read a diff no longer panic with a nil-pointer dereference
when
gitis not onPATH; they exit with the localized “git not found” error. This also affects already released versions. - A history of exactly 10000 commits was treated as truncated by the commit
walk (off-by-one at the walk limit), which made the
leakstruncation check report a false positive.
Removed
- The go-git diff backend:
gitonPATHis now the only diff backend. go-git stays in use for ignore-pattern matching only.