https://github.com/pavelkorolevxyz/diff-coverage-report
Всего 4 дня пинг понга с Gradle Plugin Portal, чтобы они апрувнули мой паблиш, плюс несколько свободных часов с клодкодом, чтобы это всё дело причесать и не так стыдно было выкладывать.
Это просто Gradle-плагин, который тащит одну таску, запускать так:
./gradlew reportDiffCoverage --branch=main --report=build/reports/kover/report.xml
или так:
./gradlew reportDiffCoverage --diffSha=abc123 --report=build/reports/jacoco/test/jacocoTestReport.xml
Результат сразу видно в консоли
> Task :reportDiffCoverage
17/20 - src/main/kotlin/Feature.kt
10/15 - src/main/kotlin/Service.kt
Total: 27/35 (77.14%)
Report saved to: /path/to/build/reports/coverage/report.txt
И в файле, чтобы попарсить для своих проверок
analyzedLines: 35
coveredLines: 27
uncoveredLines: 8
coveragePercentage: 77.14
Предусловий не должно быть никаких. Ест XML файл отчёта и ссылку на ветку/коммит с которым сравнивать, всё.
PS. Пока сути в том, что это Gradle-плагин нет никакой, могло бы быть просто скриптом (может даже и будет скриптом в альтернативном варианте). Но, думаю, неплохая идея туда конфигурацию вынести.