Webhooks
Receive HTTP notifications when test runs complete or coverage reports are uploaded. Integrate Gaffer with your monitoring, automation, and alerting systems.
Webhooks send HTTP POST requests to your endpoint when events occur in Gaffer. Use them to integrate test results with your monitoring tools, trigger deployments, update dashboards, or build custom notification flows.
Features
- Test run and coverage events — receive notifications for either or both event types
- Branch filtering — only trigger for specific branches using glob patterns
- Configurable triggers — fire on all events, failures only, or after consecutive failures
- HMAC-SHA256 signing — verify that payloads are from Gaffer
- Test delivery — send a test payload from the dashboard to verify your endpoint
Creating a Webhook
- Navigate to Settings > Webhooks in your Gaffer dashboard
- Click "Add Webhook"
- Enter a name and HTTPS endpoint URL
- Configure notification settings (event types, trigger mode, branch filters)
- Click "Create"
Gaffer generates an HMAC signing secret automatically when you create a webhook. The signing secret is displayed once at creation — store it securely, as it cannot be retrieved later. You can regenerate the secret from the webhook settings if needed.
Configuration
Event Types
Choose which events trigger the webhook:
- Test runs — fires when a test run completes
- Coverage reports — fires when a coverage report is uploaded
At least one event type must be enabled.
Notification Triggers
Control when test run webhooks fire:
- All test runs — fire on every completed test run
- Failures only — only fire when tests fail
- Consecutive failures — only fire after N consecutive failures (configurable, 1-10). Useful for filtering out one-off flakes
Coverage events always fire when enabled — trigger settings only apply to test runs.
Branch Filters
Restrict which branches trigger the webhook using glob patterns:
main— exact matchrelease/*— matchesrelease/v1.0,release/2024-01, etc.feature-*— matchesfeature-auth,feature-dashboard, etc.
Leave branch filters empty to receive events for all branches.
Project Scope
Webhooks can be scoped to a specific project or apply to all projects in your organization. Organization-wide webhooks receive events from every project.