3.9 KiB
title, intro, redirect_from, versions, topics, shortTitle, autogenerated
| title | intro | redirect_from | versions | topics | shortTitle | autogenerated | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Webhook events and payloads | Learn about when each webhook event occurs and what the payload contains. |
|
|
|
Webhook events & payloads | webhooks |
About webhook events and payloads
You can create webhooks that subscribe to the events listed on this page. Each webhook event on this page includes a description of the webhook properties for that event. If the event has multiple actions, the properties corresponding to each action are included. For more information, see "AUTOTITLE."
{% note %}
Note: {% data reusables.webhooks.payload_cap %}
{% endnote %}
Delivery headers
HTTP POST payloads that are delivered to your webhook's configured URL endpoint will contain several special headers:
X-GitHub-Event: Name of the event that triggered the delivery.X-GitHub-Delivery: A GUID to identify the delivery.{% ifversion ghes or ghae %}X-GitHub-Enterprise-Version: The version of the {% data variables.product.prodname_ghe_server %} instance that sent the HTTP POST payload.X-GitHub-Enterprise-Host: The hostname of the {% data variables.product.prodname_ghe_server %} instance that sent the HTTP POST payload.{% endif %}{% ifversion not ghae %}X-Hub-Signature: This header is sent if the webhook is configured with asecret. This is the HMAC hex digest of the request body, and is generated using the SHA-1 hash function and thesecretas the HMACkey.{% ifversion fpt or ghes or ghec %}X-Hub-Signatureis provided for compatibility with existing integrations, and we recommend that you use the more secureX-Hub-Signature-256instead.{% endif %}{% endif %}X-Hub-Signature-256: This header is sent if the webhook is configured with asecret. This is the HMAC hex digest of the request body, and is generated using the SHA-256 hash function and thesecretas the HMACkey.User-Agent: This header will always have the prefixGitHub-Hookshot/.
To see what each header might look like in a webhook payload, see "Example webhook delivery."
Example webhook delivery
You can choose to have payloads delivered in JSON format (application/json) or as URL-encoded data (x-www-form-urlencoded). Following is an example of a webhook POST request that uses the JSON format.
> POST /payload HTTP/2
> Host: localhost:4567
> X-GitHub-Delivery: 72d3162e-cc78-11e3-81ab-4c9367dc0958{% ifversion ghes or ghae %}
> X-GitHub-Enterprise-Version: 2.15.0
> X-GitHub-Enterprise-Host: example.com{% endif %}{% ifversion not ghae %}
> X-Hub-Signature: sha1=7d38cdd689735b008b3c702edd92eea23791c5f6{% endif %}
> X-Hub-Signature-256: sha256=d57c68ca6f92289e6987922ff26938930f6e66a2d161ef06abdf1859230aa23c
> User-Agent: GitHub-Hookshot/044aadd
> Content-Type: application/json
> Content-Length: 6615
> X-GitHub-Event: issues
> {
> "action": "opened",
> "issue": {
> "url": "{% data variables.product.api_url_pre %}/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,
> ...
> }
> }