Example: GitHub Webhook
Overview
GitHub signs payloads with X-Hub-Signature-256. Syllecta validates the signature, dedupes events, and forwards normalized payloads so you can react to issue or pull-request activity.
Configure
- In Backoffice, add the GitHub provider and store the webhook secret you generate in GitHub settings.
- In your GitHub repository → Settings → Webhooks, set the payload URL to https://cloud.syllecta.example/v1/webhooks/github and choose
application/json. - Select the events you want (e.g., issues, pull_request).
Example Delivery
POST /v1/webhooks/github
X-Hub-Signature-256: sha256=ab12cd...
X-GitHub-Event: issues
Content-Type: application/json
{
"action": "opened",
"issue": {
"number": 42,
"title": "Bug report"
},
"repository": {
"full_name": "acme/api"
}
}
Syllecta responds with:
json
{ "ok": true }
and forwards a normalized payload containing provider, type (e.g., issue.opened), timestamps, and the original data.
Callback Handler
ts
app.post("/webhooks/syllecta", express.json(), async (req, res) => { const event = req.body; if (event.provider === "github" && event.type === "issue.opened") { await tracker.createTicket({ repo: event.data.repository.full_name, number: event.data.issue.number, title: event.data.issue.title }); } res.json({ ok: true }); });
Add branches for any GitHub events you subscribe to and rely on Syllecta to keep signatures, retries, and dedupe consistent.