Patchbay routes git hosting webhooks and upstream feed signals to notifications and fork-maintenance jobs
Find a file
matamune 65e6ca8bac
All checks were successful
check / check (push) Successful in 35s
Dispatch feed releases as flow events
2026-05-13 02:42:02 +00:00
.forgejo/workflows Install Docker CLI in CI container build 2026-05-12 21:10:00 +00:00
src Dispatch feed releases as flow events 2026-05-13 02:42:02 +00:00
test Dispatch feed releases as flow events 2026-05-13 02:42:02 +00:00
.gitignore Initial git webhooks service 2026-05-12 21:06:22 +00:00
bun.lock Rename service to Patchbay 2026-05-12 23:18:13 +00:00
Dockerfile Add upstream feed watcher 2026-05-12 22:37:26 +00:00
feed-sources.json Dispatch feed releases as flow events 2026-05-13 02:42:02 +00:00
forgejo-forking-problem-space.md Track Forgejo fork problem space notes 2026-05-12 23:20:42 +00:00
package.json Rename service to Patchbay 2026-05-12 23:18:13 +00:00
README.md Dispatch feed releases as flow events 2026-05-13 02:42:02 +00:00
tsconfig.json Initial git webhooks service 2026-05-12 21:06:22 +00:00

patchbay

Containerized Bun service for GitHub and jojo.build webhooks.

Endpoints

GET  /healthz
POST /jojo
POST /github

Environment

HOST=0.0.0.0
PORT=3000
DATA_DIR=/app/data
JOJO_WEBHOOK_SECRET=...
GITHUB_WEBHOOK_SECRET=...
DISCORD_WEBHOOK_URL=
DISCORD_NOTIFY_EVENTS=push,pull_request,release
FEED_SOURCES_PATH=./feed-sources.json
PATCHBAY_FLOW_DISPATCH_URL=
PATCHBAY_FLOW_DISPATCH_SECRET=

Discord notifications are optional. When DISCORD_WEBHOOK_URL is unset, the service skips Discord output. DISCORD_NOTIFY_EVENTS is a comma-separated allow list and defaults to push,pull_request,release.

Development

bun install
bun run check
bun run dev

Accepted webhook events are appended to DATA_DIR/events.jsonl; queued work items are appended to DATA_DIR/jobs.jsonl.

Feed watcher events are configured in feed-sources.json. The first poll primes DATA_DIR/feed-state.json; later polls append upstream activity to DATA_DIR/feed-events.jsonl. Targets using mode: "fork_sync" append legacy work to DATA_DIR/feed-jobs.jsonl. Targets using mode: "flow_dispatch" append generic flow events to DATA_DIR/flow-events.jsonl, POST them to the configured dispatch URL, and record dispatch outcomes in DATA_DIR/flow-dispatches.jsonl.