Skip to content

Releases: officefloor/ImpactGate

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 13 Sep 07:45

Full Changelog: v0.2.0...v0.3.0

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 13 Sep 06:41

Full Changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 13 Sep 05:37

What it does

impact-gate scores a change against its base with the change-impact measure:

  impact = files_changed × Σ max(WMC_other, 1) × CC × Δlines   (over changed functions)

WMC_other is the complexity already in the container you're editing, measured on the pre-change state. Importing a brand-new file or class is cheap; piling onto an already-heavy class is expensive. That's the decay signal. When impact is too high, the gate warns or blocks and lists the files where the decay is concentrating.

For the reasoning behind the formula, see Measuring the Blast Radius of Change on the OfficeFloor blog.

Highlights

  • GitHub Action — scores every PR, writes the result to the job summary and a sticky PR comment, and fails the build in block mode. Make the check required in branch protection to gate merges.
  • Grading curve — grade a change by its percentile against a clean seed corpus blended with the project's own history (impact-gate baseline, then score --curve).
  • Standalone — the measure is vendored; lizard is the only runtime dependency. Also available on PyPI (pip install impact-gate) and GHCR (ghcr.io/officefloor/impact-gate).

Use in a workflow

- uses: officefloor/ImpactGate@v0
  with:
    enforcement: warn   # report only; switch to block when ready

Needs pull-requests: write to post the comment, and fetch-depth: 0 on checkout so the base/merge-base are present. See the README for configuration, thresholds, and the CLI.