Webhooks and CI/CD
Trigger deployments from pipelines and external tools.
Every service has a redeploy webhook with its own token — the closest
thing to git push to deploy outside of GitHub. Because the token is
service-scoped, a webhook can only redeploy that service, which keeps CI
credentials least-privilege.
Trigger a redeploy#
The webhook URL and token live under the service's Webhook settings. Call it from any pipeline — no headers required:
curl -X POST https://paas.example.com/api/hooks/redeploy \
-H "Authorization: Bearer <service-webhook-token>" \
-H "Content-Type: application/json" \
-d '{"serviceId": "<service-id>"}'Regenerate the token from the dashboard or CLI when it leaks — old tokens stop working immediately:
zensailor service webhook get <service-id>
zensailor service webhook regenerate <service-id>GitHub push events#
With the GitHub App connected, pushes to a service's configured branch deploy automatically; only that branch triggers the build. Deploy windows apply to webhook-triggered deployments like every other trigger — queued, not rejected, when the window is closed.
In CI/CD: if you deploy from GitHub Actions, GitLab CI or a scheduler, the webhook token is all you need — it stays out of every pipeline's credential store except your own.