---
title: "GitHub App webhook ingress."
method: POST
path: "/webhooks/github"
tags: ["Webhooks"]
---

# GitHub App webhook ingress.

`POST /webhooks/github`

## Request

- Base URL: `https://platform.buildpulse.io`
- URL: `https://platform.buildpulse.io/webhooks/github`
- Auth: none required

Receives GitHub App webhook deliveries. Authenticated by HMAC
signature (`X-Hub-Signature-256`) against the App's webhook secret,
not by API token. Verified deliveries are published to the internal
github-events fan-out topic with `{event, action}` attributes;
downstream consumers (runner capacity scaling, and future issue /
installation processors) subscribe with filter policies.

Not a customer-facing endpoint — it exists for GitHub's webhook
delivery system only.

## Request body

- object: Raw GitHub webhook payload (shape varies by event type).

## Response `200`

Delivery verified and published (or ping acknowledged).

- object

## Other responses

- `400`: Missing event header or unreadable body.
- `401`: Signature verification failed.
- `500`: Publish failed; GitHub will redeliver.
- `503`: Ingress not configured in this environment.

---

[API](https://skmtc.dev/buildpulse/apis/buildpulse-platform-api.md) · [All operations](https://skmtc.dev/buildpulse/apis/buildpulse-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/buildpulse/apis/buildpulse-platform-api/revisions/2e68b4b2df6a?raw)
