GitHub fixture
push
Fires on any push to the repository — branches, tags, force pushes. Includes the list of commits in the push, the head/before SHAs, and the pusher.
When does it fire?
A `git push` to any ref. For deletes, `deleted: true`. For force pushes, `forced: true` and `before` will be unreachable from `after`.
Request headers
Content-Type: application/json
X-GitHub-Event: push
X-GitHub-Delivery: 33b1d5e8-cd99-12e4-92cd-5d3678ec1f8e
X-Hub-Signature-256: sha256=391e2df4569fdb4d2e6e7e9bd1f63cf7b6d8e2a6d8e1c0b2a3d4f5e6c7b8a9d1Payload
{
"ref": "refs/heads/main",
"before": "f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f2e1",
"after": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0",
"forced": false,
"deleted": false,
"commits": [
{
"id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0",
"message": "feat: add webhook fixture library",
"author": {
"name": "Octocat",
"email": "[email protected]",
"username": "octocat"
},
"added": [
"web/src/pages/Fixtures.tsx"
],
"modified": [
"web/src/main.tsx"
],
"removed": [],
"timestamp": "2026-05-13T12:00:00Z"
}
],
"pusher": {
"name": "octocat",
"email": "[email protected]"
},
"repository": {
"id": 99999,
"full_name": "ozers/hooksense",
"default_branch": "main"
}
}Key fields
refFull ref name (refs/heads/main, refs/tags/v1.2.3). Filter by prefix to handle branches vs tags.
forcedtrue if force-push — your CI may want to reject these on protected branches.
commitsArray of commits in the push. Up to 20 — use head_commit + Git API for larger pushes.
Test it with cURL
Replace your-endpoint with your HookSense endpoint slug — or any URL you want to test against.
curl -X POST https://hooksense.com/w/your-endpoint \
-H "Content-Type: application/json" \
-H "X-GitHub-Event: push" \
-H "X-GitHub-Delivery: 33b1d5e8-cd99-12e4-92cd-5d3678ec1f8e" \
-H "X-Hub-Signature-256: sha256=391e2df4569fdb4d2e6e7e9bd1f63cf7b6d8e2a6d8e1c0b2a3d4f5e6c7b8a9d1" \
-d '{
"ref": "refs/heads/main",
"before": "f0e9d8c7b6a5f4e3d2c1b0a9f8e7d6c5b4a3f2e1",
"after": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0",
"forced": false,
"deleted": false,
"commits": [
{
"id": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0",
"message": "feat: add webhook fixture library",
"author": {
"name": "Octocat",
"email": "[email protected]",
"username": "octocat"
},
"added": [
"web/src/pages/Fixtures.tsx"
],
"modified": [
"web/src/main.tsx"
],
"removed": [],
"timestamp": "2026-05-13T12:00:00Z"
}
],
"pusher": {
"name": "octocat",
"email": "[email protected]"
},
"repository": {
"id": 99999,
"full_name": "ozers/hooksense",
"default_branch": "main"
}
}'Capture this in HookSense
Fire the cURL above at your HookSense endpoint and inspect the request in real time — with headers, body, signature verification, and replay.
Get a free endpoint