Integrations
Buildkite
Overview
This document provides a detailed guide to integrating Buildkite with Callgoose SQIBS for real-time Incident Management, automated tracking of build/job failures, and event-driven automation. The integration uses Buildkite webhooks to send event payloads (build/job/pipeline events) directly to Callgoose, where API Filters convert them into incidents that are automatically created and resolved.
Prerequisites
Before beginning, ensure you have the following:
- A Callgoose SQIBS account with permissions to create API Filters and access the integration endpoint.
- A Buildkite organization or pipeline admin role.
- A valid Callgoose API token and webhook endpoint URL.
- A test Buildkite pipeline (recommended) for validating webhook delivery and payloads.
1. Prepare Callgoose: Obtain Endpoint and Token
1.1 Retrieve Callgoose API Endpoint
Generate or locate your Callgoose process endpoint:
https://****.callgoose.com/v1/process?from=Buildkite&token=xxxx
Store the API token securely and never commit it to source control.
2. Configure Buildkite Webhook
2.1 Choose the Webhook Scope
You can configure the webhook at:
- Organization level:
- Organization Settings → Integrations → Notification Services → Add (Webhook)
- Pipeline level:
- Pipeline Settings → Notifications → Add Webhook
Buildkite allows sending events for builds, jobs, pipelines, and test engine events.
2.2 Configure Webhook Fields
Set the following options:
- Webhook URL: Callgoose endpoint from Step 1
- Secret / Token: Use the Callgoose token (Buildkite adds it as X-Buildkite-Token)
- Events: Common options include:
- build.finished
- job.finished
- build.started
- pipeline.triggered
- Save and enable the webhook.
2.3 Verification Headers
Buildkite sends additional security headers:
- X-Buildkite-Token — The configured webhook token
- X-Buildkite-Signature — HMAC-SHA256 signature of the raw payload
If you use a middleware receiver, you can validate these signatures before forwarding to Callgoose.
3. Example Buildkite Payloads
A simplified example Buildkite event body:
{
"event": "build.finished",
"build": {
"id": "build-uuid",
"number": 42,
"state": "failed",
"started_at": "2025-10-01T12:01:00Z",
"finished_at": "2025-10-01T12:05:00Z"
},
"pipeline": {
"id": "pipeline-uuid",
"slug": "org/app-backend"
},
"sender": {
"id": "user-uuid",
"name": "CI Bot"
}
}
Inspect your actual payloads inside Callgoose Api log and use those fields in your API Filter mappings.
4. Create API Filters in Callgoose SQIBS
Callgoose API Filters convert incoming Buildkite webhooks into incidents.
Use two filters: Trigger Filter (create incident) and Resolve Filter (auto-resolve).
4.1 Trigger Filter — Create Incident
Use these settings:
- Payload JSON Key: event
- Key Value Contains: build.finished
- Additional Condition: build.state contains [failed, canceled]
- Map Incident With: build.id
- Incident Title From: pipeline.slug
- Incident Description From: Optional build.url or the full JSON payload
5. Verify & Test the Integration
5.1 Test Initial Delivery
- Create a broad test filter in Callgoose
- Trigger a Buildkite test event
- Confirm Callgoose receives the payload in API Logs
5.2 View Exact Payload
- Use Callgoose’s API request logs to see the real JSON payload.
- Copy field names directly from these logs for accurate filter configuration.
5.3 Final Verification
- Trigger a failing build → incident should be created
- Re-run a passing build → incident should be auto-resolved
- Confirm mapping consistency using build.id
6. Troubleshooting
Incoming Payload Not Received
- Check Buildkite Webhook Logs
- Verify the endpoint URL and token
- Ensure Callgoose was not blocking due to filter mismatch
Incidents Not Auto-Resolving
- Confirm build.state exact value (e.g., passed, not success)
- Ensure the same build.id is used in both Trigger and Resolve filters
Wrong or Missing Payload Fields
- Inspect live payloads in Buildkite → Webhook Logs
- Update API Filters to match the exact field structure
- Re-test using a failing and then passing build
7. Conclusion
Integrating Buildkite with Callgoose SQIBS enables fully automated incident creation and resolution based on CI/CD pipeline behavior. By configuring Buildkite webhooks and mapping them through Callgoose API Filters, teams gain real-time visibility into build failures, deployment problems, and workflow issues. With clean Trigger and Resolve filters, this integration ensures that any pipeline failure instantly becomes an actionable incident, and successful reruns automatically close the loop—streamlining DevOps and improving reliability.
For further customization or advanced use cases, refer to the official documentation for both Buildkite and Callgoose SQIBS:
