Gate a pull request on the coverage of the lines it changed, not your whole backlog. Point Brimyr at any repo and it detects the ecosystem, runs your tests, and gates on patch coverage.
Gate the change. Leave the backlog alone.
Requiring 80% coverage on a whole legacy codebase is a non-starter; ignoring new code lets it rot. Brimyr holds the lines a PR changed to a bar, and leaves the back-catalogue alone.
Patch coverage, not project
The gate is the coverage of the executable lines this PR changed, diffed against the merge-base. A repo at 61% never fails a well-tested change.
It detects the ecosystem
Python, JavaScript/TypeScript, .NET and Java. Brimyr picks the right test command with coverage on, and merges one report per language for polyglot repos.
It runs your tests
No bring-your-own coverage report. One composite action runs the suite, computes patch coverage and gates, all on your runner. No SaaS account.
Small diffs say so
Under the 20-line minimum, the threshold is not applied, and the comment says exactly that, instead of passing quietly like a team would never notice.
Broken run is not 0%
A failed, timed-out or empty test run is a tool error that turns the build red. It is never reported as 0% patch coverage that hard-fails the gate.
SonarQube, optional
Set a URL and token and Brimyr ships coverage and quality to SonarQube for the trend. Non-blocking: a Sonar outage is a warning, never a gate failure.
Brimyr is quality assurance; Chargate is security assurance. Twins, not competitors: Chargate gates the security findings a PR introduces, Brimyr gates the coverage of what it changed. A repo wants both.
One action. That is the whole config.
On PRs it runs your tests with coverage, gates on patch coverage, and posts one comment updated in place. On push to the default branch it runs a non-gating baseline that still feeds the trend.
steps: # Brimyr checks out with fetch-depth: 0 by default; # patch coverage needs the merge-base. - uses: magmamoose/brimyr@v1 with: threshold: '80' # gate on patch coverage # sonar_url: https://sonar.example.com (optional, non-blocking)
Cover the change. Not the debt.
Free and open source, Apache-2.0 licensed. Runs entirely on your runner, with no server to host and no SaaS account.