GitHub sends webhook events for repository activity such as pushes, pull requests, and issue updates. This guide shows you how to route those events through Dead Letter to ensure zero data loss during deployment windows or outages.
Open your repository on GitHub. Click the Settings tab, then select Webhooks in the left sidebar. Click Add webhook in the top right.
Note: For organization-owned repositories, you may need to configure the webhook at the organization level under Settings → Webhooks to manage webhooks across multiple repos.
https://api.deadletterhub.io/ingest/<your-slug>application/jsonx-hub-signature-256) unchanged so your server can still verify payload authenticity.Choose which events trigger the webhook. You have three options:
Forwards all repository events. Best for comprehensive auditing but generates high volume.
Recommended. Select only the events your application processes:
push — Triggered on git push to the repositorypull_request — Opened, closed, reviewed, mergedissues — Created, updated, closedworkflow_run — GitHub Actions workflow eventsrelease — Published or edited releasesYour destination server should process the forwarded webhooks using the original GitHub headers that Dead Letter preserves:
| Header | Description |
|---|---|
| x-github-event | GitHub event type (e.g., push, pull_request) |
| x-hub-signature-256 | HMAC-SHA256 signature for payload verification |
| x-dead-letter-event-id | Unique event ID for deduplication |
| x-dead-letter-retry-count | Current retry attempt number |
After saving, GitHub sends a ping event to verify the webhook works. Check your Dead Letter dashboard Event Logs to confirm ingestion. You can also manually trigger test events (e.g., push to a test branch) to verify end-to-end delivery.
Troubleshooting
x-hub-signature-256 header and the secret configured in GitHub, not the Dead Letter HMAC secret.