Initial prototype of BC lifecycle hooks
Created by: LawnGnome
These are outgoing webhooks that are dispatched when interesting events occur in Batch Changes. In this initial commit, this is only changeset publication, but this would be trivial to extend to other event types, particularly those originating in the reconciler.
Features that are supported that we'll eventually need are basic HMAC signatures (inspired by GitHub's use of HMAC) and hook expiry.
Enough GraphQL has been built for a minimal site admin UI, but I haven't actually built it just yet.
Obvious things that are missing, besides the site admin UI, are allowing hooks to be registered only on specific organisations and repositories, along with the ability to filter which event types are sent to individual hooks.