DORA Deploy Tracking Setup

Wire up real production deploy data in under 5 minutes. SiftPulse receives Render deploy webhooks, matches deploys to merged PRs, and computes lead time, change failure rate, and MTTR for your DORA panel.

Your webhook URL

https://siftpulse.polsia.app/webhooks/render

Setup: Render (recommended)

1
Open your Render service settings
Go to render.com → your service → Settings → Webhooks.
2
Add the SiftPulse webhook URL
Paste the URL above. Render will POST JSON to this endpoint for every deploy.started deploy.succeeded deploy.failed event.
3
(Optional) Set a shared secret
If Render supports a webhook signing secret, add it to your SiftPulse env var as RENDER_WEBHOOK_SECRET. SiftPulse will verify the HMAC signature on every event.
4
Trigger a deploy — data appears within minutes
SiftPulse processes the first event immediately. DORA metrics populate on your dashboard after the first deploy.succeeded event is received and matched to a merged PR.
Smoke test: visit https://siftpulse.polsia.app/webhooks/render/ping — it returns {"ok":true} when the endpoint is live.

Generic CI/CD (GitHub Actions, CircleCI, etc.)

Any system that can make an HTTP POST request can feed SiftPulse deploy data. Send JSON to the webhook URL with the following fields:

{ "type": "deploy", "action": "succeeded", // "succeeded" | "failed" | "started" "commit": { "id": "abc1234" }, // git commit SHA "repo": { "fullName": "org/repo" }, // optional: repo slug for multi-repo setups "environment": "production", // optional, defaults to "production" "deploy": { "createdAt": "2026-06-27T18:00:00Z", // optional: deploy start time "finishedAt": "2026-06-27T18:04:30Z" // optional: deploy finish time } }

GitHub Actions example

- name: Notify SiftPulse deploy if: success() run: | curl -s -X POST https://siftpulse.polsia.app/webhooks/render \ -H "Content-Type: application/json" \ -d '{ "type": "deploy", "action": "succeeded", "commit": { "id": "${{ github.sha }}" }, "repo": { "fullName": "${{ github.repository }}" } }'

How each metric is computed

Metric How SiftPulse computes it
Deploy frequency Count of deploy.succeeded events in 7d / 30d rolling windows.
Lead time (merge→deploy) Median seconds from PR merge (captured from GitHub pull_request.closed webhook) to deploy.succeeded finished_at. Matched via commit SHA.
Change failure rate (Failed deploys / Total deploys) × 100 over 30d. A deploy is flagged as a failure when: (a) Render fires deploy.failed, or (b) a PR with branch prefix hotfix/ or label hotfix is merged within 24h of a successful deploy.
MTTR Median seconds from a failure-flagged deploy to the next deploy.succeeded on the same environment. Only computable once a failure + recovery pair exists.

Hotfix detection (CFR)

SiftPulse automatically flags a deploy as a change failure when a hotfix PR ships within 24 hours of a successful deploy. A PR is classified as a hotfix if:

No configuration needed — it's detected automatically from the GitHub PR webhook payload.