GitHub delivers webhooks to a public URL. Expose gives your local server one, labels each delivery with its event name, and lets you replay a delivery while you fix your handler.
expose share http://localhost:3000
Expose prints a public URL such as https://abc123.eu-1.sharedwithexpose.com. With Expose Pro, add --subdomain=my-app to keep the same URL between sessions.
For a repository:
https://my-app.eu-1.sharedwithexpose.com/github/webhook.application/json.For a GitHub App, set the same URL and secret as the Webhook URL and Webhook secret in the app's settings.
GitHub sends a ping event right away. It shows up in the Expose dashboard at http://127.0.0.1:4040.
GitHub signs each delivery with your secret and sends the result in the X-Hub-Signature-256 header, as sha256= followed by an HMAC of the raw request body. Compute the same HMAC in your handler and compare the two with a constant-time comparison.
The event name is in the X-GitHub-Event header. Expose forwards both headers and the body unchanged.
Push a commit or open a pull request. In the Expose dashboard you see each delivery with its headers, payload and your response. The built-in GitHub request plugin labels deliveries with their event, such as push or pull_request.
Click Replay to send a delivery to your local server again after you change your code. GitHub can also redeliver from the webhook's Recent Deliveries tab.
application/json.expose catch-all and use its URL as the Payload URL. See Catch-All.