Track: github-app-webhook-20260530 (type: feature)
Add a real-time, webhook-based inbound transport to the GitHub channel plugin (plugins/github/server.ts) as an opt-in alternative to the existing PAT + REST polling.
Scope
- GitHub App auth (app id / private key / installation id) for webhook mode; PAT + polling stays the default.
- Local webhook receiver with
X-Hub-Signature-256 verification, handling issue_comment events (parity with current polling).
- Cloudflare tunnel — quick (TryCloudflare, default) and named (configurable) modes; channel spawns
cloudflared, obtains the public URL, and auto-registers it as the App webhook target.
- Reuses the existing mention-match → sender-gating → dedup → emit pipeline and outbound tools.
Transport selection
CLAUDE_GITHUB_TRANSPORT=poll|webhook (defaults to poll — non-breaking).
Out of scope
- Cloudflare deployment (hosted Worker/service) — future follow-up track.
- Assisted App Manifest creation; PR review (diff-line) comments; issue/PR "opened" body mentions.
Spec & plan: .please/docs/tracks/active/github-app-webhook-20260530/
Track:
github-app-webhook-20260530(type: feature)Add a real-time, webhook-based inbound transport to the GitHub channel plugin (
plugins/github/server.ts) as an opt-in alternative to the existing PAT + REST polling.Scope
X-Hub-Signature-256verification, handlingissue_commentevents (parity with current polling).cloudflared, obtains the public URL, and auto-registers it as the App webhook target.Transport selection
CLAUDE_GITHUB_TRANSPORT=poll|webhook(defaults topoll— non-breaking).Out of scope
Spec & plan:
.please/docs/tracks/active/github-app-webhook-20260530/