Conversation
There was a problem hiding this comment.
PR Overview
This PR introduces a webhook dispatcher package in Go with support for reliable webhook delivery, automatic retries, concurrency, and payload compression. Key changes include the implementation of a main example for launching the dispatcher, comprehensive tests for retry logic in events, and full dispatcher/event logic with accompanying documentation updates.
Reviewed Changes
| File | Description |
|---|---|
| examples/main.go | Launches the dispatcher and provides an HTTP handler for generating events |
| event_test.go | Adds tests to verify retry logic in event processing |
| dispatcher.go | Implements core dispatcher logic including worker management and retry scheduling |
| event.go | Defines the event model along with helper functions for event handling and retry logic |
| README.md | Provides detailed documentation and usage instructions for the package |
Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.
There was a problem hiding this comment.
Pull Request Overview
This pull request introduces a webhook dispatcher package for reliable webhook delivery, including CI workflow integration, documentation updates, usage examples, tests, and core dispatcher functionality.
- Added a GitHub Actions CI workflow to run tests and linting.
- Provided comprehensive README documentation and examples for both basic and advanced usage.
- Implemented and tested core dispatcher components such as event queuing, retry logic, and graceful shutdown.
Reviewed Changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/on_commit.yml | Added CI workflow for building, linting, and testing. |
| README.md | New documentation outlining package features and usage. |
| examples/main.go | Example demonstrating basic server usage. |
| event_test.go | New tests for retry time calculation. |
| event.go | Added event and retry management functionality. |
| dispatcher.go | Core dispatcher implementation with event handling. |
| .golangci.yaml | New golangci-lint configuration. |
This is the package I mentioned during the standup to deliver webhooks. Note, this a public repository