// DEPLOYMENTS
Deploy Webhooks
How AnySites registers and verifies GitHub/GitLab webhooks, and how to debug a push that didn't deploy.
This is the mechanism behind Automatic Git Deployments — reference it when debugging, or when configuring a webhook manually.
Endpoint
POST https://api.anysites.app/webhook/github/{projectId}
POST https://api.anysites.app/webhook/gitlab/{projectId}Verification
| Provider | Header | Method |
|---|---|---|
| GitHub | x-hub-signature-256 | HMAC-SHA256 over the raw request body, using the project's webhookSecret. |
| GitLab | x-gitlab-token | Constant-time string comparison against the project's webhookSecret. |
What happens after verification
The payload's branch is compared against the project's production branch. A mismatch returns a normal 200 with { skipped: true, reason: "branch mismatch" } and creates nothing — check your Git provider's webhook delivery log (both GitHub and GitLab show recent deliveries and responses) if you need to confirm a request actually arrived.
Debugging checklist
- Open the project page — is there an "auto-deploy not connected" banner? If so, registration failed at creation time; see
Automatic Git Deployments. - Confirm the branch you pushed matches
Production branchexactly. - In your Git provider's webhook settings, check Recent Deliveries — a
200with askippedbody means it arrived but was intentionally ignored (branch mismatch or inactive project); anything else is a real failure worth reporting.