This version of GitHub Enterprise was discontinued on 2021-09-23. No patch releases will be made, even for critical security issues. For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise. For help with the upgrade, contact GitHub Enterprise support.

Webhook events and payloads

For each webhook event, you can review when the event occurs, an example payload, and descriptions about the payload object parameters.

Enterprise accounts are available with GitHub Enterprise Cloud and GitHub Enterprise Server. For more information, see "About enterprise accounts."

Webhooks configured on enterprise accounts or organizations that are part of an enterprise account will include an enterprise account object.

When configuring a webhook, you can use the UI or API to choose which events will send you payloads. Only subscribing to the specific events you plan on handling limits the number of HTTP requests to your server. You can also subscribe to all current and future events. By default, webhooks are only subscribed to the push event. You can change the list of subscribed events anytime.

You can create webhooks that subscribe to the events listed on this page. Each webhook event includes a description of the webhook properties and an example payload. For more information, see "Creating webhooks."

Webhook payload object common properties

Each webhook event payload also contains properties unique to the event. You can find the unique properties in the individual event type sections.

KeyTypeDescription
actionstringMost webhook payloads contain an action property that contains the specific activity that triggered the event.
senderobjectThe user that triggered the event. This property is included in every webhook payload.
repositoryobjectThe repository where the event occurred. Webhook payloads contain the repository property when the event occurs from activity in a repository.
organizationobjectWebhook payloads contain the organization object when the webhook is configured for an organization or the event occurs from activity in a repository owned by an organization.
installationobjectThe GitHub App installation. Webhook payloads contain the installation property when the event is configured for and sent to a GitHub App. For more information, see "Building GitHub App."

The unique properties for a webhook event are the same properties you'll find in the payload property when using the Events API. One exception is the push event. The unique properties of the push event webhook payload and the payload property in the Events API differ. The webhook payload contains more detailed information.

Note: Payloads are capped at 25 MB. If your event generates a larger payload, a webhook will not be fired. This may happen, for example, on a create event if many branches or tags are pushed at once. We suggest monitoring your payload size to ensure delivery.

Delivery headers

HTTP POST payloads that are delivered to your webhook's configured URL endpoint will contain several special headers:

HeaderDescription
X-GitHub-EventName of the event that triggered the delivery.
X-GitHub-DeliveryA GUID to identify the delivery.
X-GitHub-Enterprise-VersionThe version of the GitHub Enterprise Server instance that sent the HTTP POST payload.
X-GitHub-Enterprise-HostThe hostname of the GitHub Enterprise Server instance that sent the HTTP POST payload.
X-Hub-SignatureThis header is sent if the webhook is configured with a secret. This is the HMAC hex digest of the request body, and is generated using the SHA-1 hash function and the secret as the HMAC key.

Also, the User-Agent for the requests will have the prefix GitHub-Hookshot/.

Example delivery

> POST /payload HTTP/2

> Host: localhost:4567
> X-GitHub-Delivery: 72d3162e-cc78-11e3-81ab-4c9367dc0958
> X-GitHub-Enterprise-Version: 2.15.0
> X-GitHub-Enterprise-Host: example.com
> X-Hub-Signature: sha1=7d38cdd689735b008b3c702edd92eea23791c5f6
> User-Agent: GitHub-Hookshot/044aadd
> Content-Type: application/json
> Content-Length: 6615
> X-GitHub-Event: issues

> {
>   "action": "opened",
>   "issue": {
>     "url": "http(s)://[hostname]/api/v3/repos/octocat/Hello-World/issues/1347",
>     "number": 1347,
>     ...
>   },
>   "repository" : {
>     "id": 1296269,
>     "full_name": "octocat/Hello-World",
>     "owner": {
>       "login": "octocat",
>       "id": 1,
>       ...
>     },
>     ...
>   },
>   "sender": {
>     "login": "octocat",
>     "id": 1,
>     ...
>   }
> }

check_run

Check run activity has occurred. The type of activity is specified in the action property of the payload object. For more information, see the "check runs" REST API.

Note: The Checks API only looks for pushes in the repository where the check suite or check run were created. Pushes to a branch in a forked repository are not detected and return an empty pull_requests array and a null value for head_branch.