feat(df): add CI verdict log and summary renderer

Description

Second MR in the glab df (Dependency Firewall) stack. Builds on the engine foundations (verdict).

Adds the two verdict-consuming engine packages:

  • cilog — append and read firewall verdicts in .gitlab/df/ci-log.json (New, Load, Save, Path). This is the record that survives a glab df npm run and feeds glab df ci-summary.
  • summary — render a titled Unicode box summarizing blocked or flagged packages: colored Blocked (red) / Warning (yellow) status, an adaptive count line, a PACKAGE / VERSION / STATUS / REASON table, width capped at 80 columns, and reason truncation with .

Still no user-facing command here — both packages are wired up by the later "df commands" MR.

Depends on the engine-foundations MR (its target branch).

How has this been tested?

Pure library code; no GitLab instance required.

go test ./internal/dependencyfirewall/cilog/... \
        ./internal/dependencyfirewall/summary/...

The summary tests assert the rendered box is rectangular, starts with a blank line, colors the status column, caps width, and truncates long reasons. The rendered output is exercised end-to-end through glab df ci-summary in the "df commands" MR. make lint is clean.

Edited by Michael Eddington

Merge request reports

Loading