Add a base class and registry for GitHub App webhook handlers.
Review Request #15334 — Created Sept. 24, 2026 and updated — Latest diff uploaded
A GitHub App has a single, app-wide webhook URL that receives events from
every account the app is installed on. We have theGitHubAppWebhookViewfor
this, which currently only handles app installation events. We should have an
easy way for us and extension authors to handle GitHub webhook events too.This change introduces the
BaseGitHubAppWebhookHandler, which can be
subclassed to list the events the handler supports and the required GitHub App
permissions. Events will be passed to handlers as aGitHubAppWebhookEvent,
containing the event's raw payload, delivery ID, and the account(s) and
repository it may apply to. The actual dispatching to handlers will come in
a later change.This also adds a registry for the handlers. The registry has a helper for
merging all the events and required pemissions of the registered handlers,
so that they can all be shown and requested when creating a GitHub App. The
hook for registering handlers will come in a later change.
- Ran unit tests.
- Used in the Pull Request integration work.