Contributing
Table of Contents
Contributions are welcome — bug fixes, new channels, docs, and tests. See the CONTRIBUTING guide in the repository for the full workflow. The essentials:
1. Build & test
./mvnw verify # build + test + all quality gates
./mvnw verify -Pdefault # also builds/tests the sample (what CI runs)
./mvnw spring-javaformat:apply # auto-fix formatting before committing
2. Quality gates
Every verify enforces (all fail the build):
-
spring-javaformat — strict format check; run
spring-javaformat:applyto fix. -
Checkstyle and PMD — config at the repo root (
checkstyle.xml,pmd-ruleset.xml). -
JaCoCo — line coverage must stay above the configured floor; new code generally needs tests.
3. Adding a channel
-
Add a notifier class in
notify4j-core(extendAbstractHttpNotifierfor webhook-style channels and implementpayload/headers). -
Register its scheme in
NotifierUrlParser. -
Add a payload-shape test (see
ChannelPayloadTest) pinning the exact wire format. -
Document the scheme in Configuration.