Create a Webhooktrap inbox
Create a new inbox from the Webhooktrap dashboard, or use the API:Copy the full ingest URL from the response:Your ingest URL is
https://webhooktrap.dev/i/xK9m2pQ7nR4a.Add the ingest URL as a GitHub webhook
- Open your GitHub repository and go to Settings → Webhooks → Add webhook.
- For a GitHub App, navigate to your app’s settings page and open the Webhook section instead.
- Paste your Webhooktrap ingest URL into the Payload URL field.
- Set Content type to
application/json. - Leave the Secret field empty for now, or add one if you want to test HMAC signature verification.
- Click Add webhook to save.
Choose the events to subscribe to
GitHub lets you subscribe to individual events or receive everything:
- Just the push event — fires on every
git push - Send me everything — delivers all event types to your inbox
- Let me select individual events — choose from pull requests, issues, workflow runs, releases, and more
Trigger an event
Push a commit, open a pull request, or create an issue in the repository. GitHub immediately delivers the event payload to your Webhooktrap ingest URL. You can also click Redeliver on any past delivery from the GitHub webhook settings page.
Inspect the payload in Webhooktrap
Open your Webhooktrap dashboard and click the event that arrived. Pay attention to these GitHub-specific headers:
X-GitHub-Event— the event type, e.g.push,pull_request,issuesX-GitHub-Delivery— a unique UUID for this deliveryX-Hub-Signature-256— the HMAC-SHA256 signature of the payload, signed with your webhook secret
X-Hub-Signature-256 header is preserved
Webhooktrap stores theX-Hub-Signature-256 header exactly as GitHub sent it. When you replay the event, your handler receives the same signature it would have received in production, so you can test your HMAC verification logic — using crypto.timingSafeEqual or a library like @octokit/webhooks — without needing a live connection from GitHub.
GitHub requires your webhook endpoint to return a
2xx status code within a few seconds, or it marks the delivery as failed and may retry. Webhooktrap always responds with 200 OK instantly, so you’ll never see a delivery failure in your GitHub webhook logs just because your local server is slow or offline.