- Java 17+
- Gradle Wrapper (
./gradlew)
hookrouter-core: domain model, registries, and contractshookrouter-spring: Spring runtime pipeline, configuration, resilience, dead-letter, metrics
<dependencies>
<dependency>
<groupId>io.github.limehee</groupId>
<artifactId>hookrouter-core</artifactId>
<version>${hookrouter.version}</version>
</dependency>
<dependency>
<groupId>io.github.limehee</groupId>
<artifactId>hookrouter-spring</artifactId>
<version>${hookrouter.version}</version>
</dependency>
</dependencies>Groovy DSL:
dependencies {
implementation 'io.github.limehee:hookrouter-core:<version>'
implementation 'io.github.limehee:hookrouter-spring:<version>'
}Kotlin DSL:
dependencies {
implementation("io.github.limehee:hookrouter-core:<version>")
implementation("io.github.limehee:hookrouter-spring:<version>")
}hookrouter:
platforms:
slack:
endpoints:
general:
url: "https://hooks.slack.com/services/..."
default-mappings:
- platform: "slack"
webhook: "general"- One platform (
slack) is configured. - One endpoint (
general) is configured for that platform. - If no type/category mapping matches, notifications are routed to
slack/general.
- Add explicit routing rules by type/category: see
configuration-reference.md - See complete Spring setup and per-webhook resilience examples:
spring-boot-guide.md