Thanks for your interest in contributing to pollhook!
git clone https://github.com/continuedev/pollhook.git
cd pollhook
make build # Build the binary
make test # Run testsRequires Go 1.22+.
main.go # CLI entry: serve, test, version commands
config.go # YAML config types, loader, validation
dotpath.go # JSON dot-path extraction (items array + ID field)
state.go # Seen-ID tracking with 10K cap, atomic file persistence
webhook.go # HTTP POST delivery with retry
poller.go # Core poll loop: exec → extract → dedup → deliver
pollhook_test.go # Unit tests
testdata/ # Example configs
All files are in package main. No internal/ — the codebase is intentionally flat.
- Fork the repo and create a branch from
main - Make your changes
- Add or update tests as needed
- Run
make testto verify - Commit using Conventional Commits (
feat:,fix:,docs:, etc.) - Open a PR
We use Conventional Commits for changelog generation:
feat: add PagerDuty example config— new featurefix: handle empty JSON arrays— bug fixdocs: update config reference— documentation onlyrefactor: simplify state persistence— code change that neither fixes a bug nor adds a featuretest: add webhook retry tests— adding or updating tests
Use the bug report template to file issues. Include:
- Your pollhook version (
pollhook version) - Your Go version (
go version) - Config file (redact secrets)
- Command output / error messages