Points de terminaison d’API REST pour les webhooks du référentiel
Les webhooks du référentiel permettent à votre serveur de recevoir des charges utiles HTTP POST
chaque fois que certains événements se produisent dans un référentiel. Pour plus d’informations, consultez « Documentation sur les webhooks ».
Lists webhooks for a repository. last response
may return null if there have not been any deliveries within 30 days.
Jetons d’accès affinés pour « List repository webhooks »
Ce point de terminaison fonctionne avec les types de jetons précis suivants:
- Jetons d’accès utilisateur d’application
- Jetons d’accès d’installation d’application
- Jetons d’accès personnel affiné
Le jeton précis doit avoir l’ensemble d’autorisations suivant:
- "Webhooks" repository permissions (read)
Paramètres pour « List repository webhooks »
Nom, Type, Description |
---|
accept stringSetting to |
Nom, Type, Description |
---|
owner string ObligatoireThe account owner of the repository. The name is not case sensitive. |
repo string ObligatoireThe name of the repository without the |
Nom, Type, Description |
---|
per_page integerThe number of results per page (max 100). For more information, see "Using pagination in the REST API." Default: |
page integerThe page number of the results to fetch. For more information, see "Using pagination in the REST API." Default: |
Codes d’état de la réponse HTTP pour « List repository webhooks »
Code d’état | Description |
---|---|
200 | OK |
404 | Resource not found |
Exemples de code pour « List repository webhooks »
Exemple de requête
curl -L \ -H "Accept: application/vnd.+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X--Api-Version: 2022-11-28" \ http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/hooks
Response
Status: 200
[ { "type": "Repository", "id": 12345678, "name": "web", "active": true, "events": [ "push", "pull_request" ], "config": { "content_type": "json", "insecure_ssl": "0", "url": "https://example.com/webhook" }, "updated_at": "2019-06-03T00:57:16Z", "created_at": "2019-06-03T00:57:16Z", "url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678", "test_url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678/test", "ping_url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678/pings", "deliveries_url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678/deliveries", "last_response": { "code": null, "status": "unused", "message": null } } ]
Repositories can have multiple webhooks installed. Each webhook should have a unique config
. Multiple webhooks can share the same config
as long as those webhooks do not have any events
that overlap.
Jetons d’accès affinés pour « Create a repository webhook »
Ce point de terminaison fonctionne avec les types de jetons précis suivants:
- Jetons d’accès utilisateur d’application
- Jetons d’accès d’installation d’application
- Jetons d’accès personnel affiné
Le jeton précis doit avoir l’ensemble d’autorisations suivant:
- "Webhooks" repository permissions (write)
Paramètres pour « Create a repository webhook »
Nom, Type, Description |
---|
accept stringSetting to |
Nom, Type, Description |
---|
owner string ObligatoireThe account owner of the repository. The name is not case sensitive. |
repo string ObligatoireThe name of the repository without the |
Nom, Type, Description | |||||
---|---|---|---|---|---|
name stringUse | |||||
config objectKey/value pairs to provide settings for this webhook. | |||||
Properties of |
Nom, Type, Description |
---|
url stringThe URL to which the payloads will be delivered. |
content_type stringThe media type used to serialize the payloads. Supported values include |
secret stringIf provided, the |
insecure_ssl string or numberDetermines whether the SSL certificate of the host for |
events
array of stringsDetermines what events the hook is triggered for.
Default: ["push"]
active
booleanDetermines if notifications are sent when the webhook is triggered. Set to true
to send notifications.
Default: true
Codes d’état de la réponse HTTP pour « Create a repository webhook »
Code d’état | Description |
---|---|
201 | Created |
403 | Forbidden |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
Exemples de code pour « Create a repository webhook »
Exemple de requête
curl -L \ -X POST \ -H "Accept: application/vnd.+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X--Api-Version: 2022-11-28" \ http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/hooks \ -d '{"name":"web","active":true,"events":["push","pull_request"],"config":{"url":"https://example.com/webhook","content_type":"json","insecure_ssl":"0"}}'
Response
Status: 201
{ "type": "Repository", "id": 12345678, "name": "web", "active": true, "events": [ "push", "pull_request" ], "config": { "content_type": "json", "insecure_ssl": "0", "url": "https://example.com/webhook" }, "updated_at": "2019-06-03T00:57:16Z", "created_at": "2019-06-03T00:57:16Z", "url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678", "test_url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678/test", "ping_url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678/pings", "deliveries_url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678/deliveries", "last_response": { "code": null, "status": "unused", "message": null } }
Returns a webhook configured in a repository. To get only the webhook config
properties, see "Get a webhook configuration for a repository."
Jetons d’accès affinés pour « Get a repository webhook »
Ce point de terminaison fonctionne avec les types de jetons précis suivants:
- Jetons d’accès utilisateur d’application
- Jetons d’accès d’installation d’application
- Jetons d’accès personnel affiné
Le jeton précis doit avoir l’ensemble d’autorisations suivant:
- "Webhooks" repository permissions (read)
Paramètres pour « Get a repository webhook »
Nom, Type, Description |
---|
accept stringSetting to |
Nom, Type, Description |
---|
owner string ObligatoireThe account owner of the repository. The name is not case sensitive. |
repo string ObligatoireThe name of the repository without the |
hook_id integer ObligatoireThe unique identifier of the hook. You can find this value in the |
Codes d’état de la réponse HTTP pour « Get a repository webhook »
Code d’état | Description |
---|---|
200 | OK |
404 | Resource not found |
Exemples de code pour « Get a repository webhook »
Exemple de requête
curl -L \ -H "Accept: application/vnd.+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X--Api-Version: 2022-11-28" \ http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/hooks/HOOK_ID
Response
Status: 200
{ "type": "Repository", "id": 12345678, "name": "web", "active": true, "events": [ "push", "pull_request" ], "config": { "content_type": "json", "insecure_ssl": "0", "url": "https://example.com/webhook" }, "updated_at": "2019-06-03T00:57:16Z", "created_at": "2019-06-03T00:57:16Z", "url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678", "test_url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678/test", "ping_url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678/pings", "deliveries_url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678/deliveries", "last_response": { "code": null, "status": "unused", "message": null } }
Updates a webhook configured in a repository. If you previously had a secret
set, you must provide the same secret
or set a new secret
or the secret will be removed. If you are only updating individual webhook config
properties, use "Update a webhook configuration for a repository."
Jetons d’accès affinés pour « Update a repository webhook »
Ce point de terminaison fonctionne avec les types de jetons précis suivants:
- Jetons d’accès utilisateur d’application
- Jetons d’accès d’installation d’application
- Jetons d’accès personnel affiné
Le jeton précis doit avoir l’ensemble d’autorisations suivant:
- "Webhooks" repository permissions (write)
Paramètres pour « Update a repository webhook »
Nom, Type, Description |
---|
accept stringSetting to |
Nom, Type, Description |
---|
owner string ObligatoireThe account owner of the repository. The name is not case sensitive. |
repo string ObligatoireThe name of the repository without the |
hook_id integer ObligatoireThe unique identifier of the hook. You can find this value in the |
Nom, Type, Description | |||||
---|---|---|---|---|---|
config objectConfiguration object of the webhook | |||||
Properties of |
Nom, Type, Description |
---|
url stringThe URL to which the payloads will be delivered. |
content_type stringThe media type used to serialize the payloads. Supported values include |
secret stringIf provided, the |
insecure_ssl string or numberDetermines whether the SSL certificate of the host for |
events
array of stringsDetermines what events the hook is triggered for. This replaces the entire array of events.
Default: ["push"]
add_events
array of stringsDetermines a list of events to be added to the list of events that the Hook triggers for.
remove_events
array of stringsDetermines a list of events to be removed from the list of events that the Hook triggers for.
active
booleanDetermines if notifications are sent when the webhook is triggered. Set to true
to send notifications.
Default: true
Codes d’état de la réponse HTTP pour « Update a repository webhook »
Code d’état | Description |
---|---|
200 | OK |
404 | Resource not found |
422 | Validation failed, or the endpoint has been spammed. |
Exemples de code pour « Update a repository webhook »
Exemple de requête
curl -L \ -X \ -H "Accept: application/vnd.+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X--Api-Version: 2022-11-28" \ http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/hooks/HOOK_ID \ -d '{"active":true,"add_events":["pull_request"]}'
Response
Status: 200
{ "type": "Repository", "id": 12345678, "name": "web", "active": true, "events": [ "push", "pull_request" ], "config": { "content_type": "json", "insecure_ssl": "0", "url": "https://example.com/webhook" }, "updated_at": "2019-06-03T00:57:16Z", "created_at": "2019-06-03T00:57:16Z", "url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678", "test_url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678/test", "ping_url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678/pings", "deliveries_url": "https://HOSTNAME/repos/octocat/Hello-World/hooks/12345678/deliveries", "last_response": { "code": null, "status": "unused", "message": null } }
Delete a webhook for an organization.
The authenticated user must be a repository owner, or have admin access in the repository, to delete the webhook.
Jetons d’accès affinés pour « Delete a repository webhook »
Ce point de terminaison fonctionne avec les types de jetons précis suivants:
- Jetons d’accès utilisateur d’application
- Jetons d’accès d’installation d’application
- Jetons d’accès personnel affiné
Le jeton précis doit avoir l’ensemble d’autorisations suivant:
- "Webhooks" repository permissions (write)
Paramètres pour « Delete a repository webhook »
Nom, Type, Description |
---|
accept stringSetting to |
Nom, Type, Description |
---|
owner string ObligatoireThe account owner of the repository. The name is not case sensitive. |
repo string ObligatoireThe name of the repository without the |
hook_id integer ObligatoireThe unique identifier of the hook. You can find this value in the |
Codes d’état de la réponse HTTP pour « Delete a repository webhook »
Code d’état | Description |
---|---|
204 | No Content |
404 | Resource not found |
Exemples de code pour « Delete a repository webhook »
Exemple de requête
curl -L \ -X DELETE \ -H "Accept: application/vnd.+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X--Api-Version: 2022-11-28" \ http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/hooks/HOOK_ID
Response
Status: 204
Returns the webhook configuration for a repository. To get more information about the webhook, including the active
state and events
, use "Get a repository webhook."
OAuth app tokens and personal access tokens (classic) need the read:repo_hook
or repo
scope to use this endpoint.
Jetons d’accès affinés pour « Get a webhook configuration for a repository »
Ce point de terminaison fonctionne avec les types de jetons précis suivants:
- Jetons d’accès utilisateur d’application
- Jetons d’accès d’installation d’application
- Jetons d’accès personnel affiné
Le jeton précis doit avoir l’ensemble d’autorisations suivant:
- "Webhooks" repository permissions (read)
Paramètres pour « Get a webhook configuration for a repository »
Nom, Type, Description |
---|
accept stringSetting to |
Nom, Type, Description |
---|
owner string ObligatoireThe account owner of the repository. The name is not case sensitive. |
repo string ObligatoireThe name of the repository without the |
hook_id integer ObligatoireThe unique identifier of the hook. You can find this value in the |
Codes d’état de la réponse HTTP pour « Get a webhook configuration for a repository »
Code d’état | Description |
---|---|
200 | OK |
Exemples de code pour « Get a webhook configuration for a repository »
Exemple de requête
curl -L \ -H "Accept: application/vnd.+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X--Api-Version: 2022-11-28" \ http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/hooks/HOOK_ID/config
Response
Status: 200
{ "content_type": "json", "insecure_ssl": "0", "secret": "********", "url": "https://example.com/webhook" }
Updates the webhook configuration for a repository. To update more information about the webhook, including the active
state and events
, use "Update a repository webhook."
OAuth app tokens and personal access tokens (classic) need the write:repo_hook
or repo
scope to use this endpoint.
Jetons d’accès affinés pour « Update a webhook configuration for a repository »
Ce point de terminaison fonctionne avec les types de jetons précis suivants:
- Jetons d’accès utilisateur d’application
- Jetons d’accès d’installation d’application
- Jetons d’accès personnel affiné
Le jeton précis doit avoir l’ensemble d’autorisations suivant:
- "Webhooks" repository permissions (write)
Paramètres pour « Update a webhook configuration for a repository »
Nom, Type, Description |
---|
accept stringSetting to |
Nom, Type, Description |
---|
owner string ObligatoireThe account owner of the repository. The name is not case sensitive. |
repo string ObligatoireThe name of the repository without the |
hook_id integer ObligatoireThe unique identifier of the hook. You can find this value in the |
Nom, Type, Description |
---|
url stringThe URL to which the payloads will be delivered. |
content_type stringThe media type used to serialize the payloads. Supported values include |
secret stringIf provided, the |
insecure_ssl string or numberDetermines whether the SSL certificate of the host for |
Codes d’état de la réponse HTTP pour « Update a webhook configuration for a repository »
Code d’état | Description |
---|---|
200 | OK |
Exemples de code pour « Update a webhook configuration for a repository »
Exemple de requête
curl -L \ -X \ -H "Accept: application/vnd.+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X--Api-Version: 2022-11-28" \ http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/hooks/HOOK_ID/config \ -d '{"content_type":"json","url":"https://example.com/webhook"}'
Response
Status: 200
{ "content_type": "json", "insecure_ssl": "0", "secret": "********", "url": "https://example.com/webhook" }
Returns a list of webhook deliveries for a webhook configured in a repository.
Jetons d’accès affinés pour « List deliveries for a repository webhook »
Ce point de terminaison fonctionne avec les types de jetons précis suivants:
- Jetons d’accès utilisateur d’application
- Jetons d’accès d’installation d’application
- Jetons d’accès personnel affiné
Le jeton précis doit avoir l’ensemble d’autorisations suivant:
- "Webhooks" repository permissions (read)
Paramètres pour « List deliveries for a repository webhook »
Nom, Type, Description |
---|
accept stringSetting to |
Nom, Type, Description |
---|
owner string ObligatoireThe account owner of the repository. The name is not case sensitive. |
repo string ObligatoireThe name of the repository without the |
hook_id integer ObligatoireThe unique identifier of the hook. You can find this value in the |
Nom, Type, Description |
---|
per_page integerThe number of results per page (max 100). For more information, see "Using pagination in the REST API." Default: |
cursor stringUsed for pagination: the starting delivery from which the page of deliveries is fetched. Refer to the |
Codes d’état de la réponse HTTP pour « List deliveries for a repository webhook »
Code d’état | Description |
---|---|
200 | OK |
400 | Bad Request |
422 | Validation failed, or the endpoint has been spammed. |
Exemples de code pour « List deliveries for a repository webhook »
Exemple de requête
curl -L \ -H "Accept: application/vnd.+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X--Api-Version: 2022-11-28" \ http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/hooks/HOOK_ID/deliveries
Response
Status: 200
[ { "id": 12345678, "guid": "0b989ba4-242f-11e5-81e1-c7b6966d2516", "delivered_at": "2019-06-03T00:57:16Z", "redelivery": false, "duration": 0.27, "status": "OK", "status_code": 200, "event": "issues", "action": "opened", "installation_id": 123, "repository_id": 456, "throttled_at": "2019-06-03T00:57:16Z" }, { "id": 123456789, "guid": "0b989ba4-242f-11e5-81e1-c7b6966d2516", "delivered_at": "2019-06-04T00:57:16Z", "redelivery": true, "duration": 0.28, "status": "OK", "status_code": 200, "event": "issues", "action": "opened", "installation_id": 123, "repository_id": 456, "throttled_at": null } ]
Returns a delivery for a webhook configured in a repository.
Jetons d’accès affinés pour « Get a delivery for a repository webhook »
Ce point de terminaison fonctionne avec les types de jetons précis suivants:
- Jetons d’accès utilisateur d’application
- Jetons d’accès d’installation d’application
- Jetons d’accès personnel affiné
Le jeton précis doit avoir l’ensemble d’autorisations suivant:
- "Webhooks" repository permissions (read)
Paramètres pour « Get a delivery for a repository webhook »
Nom, Type, Description |
---|
accept stringSetting to |
Nom, Type, Description |
---|
owner string ObligatoireThe account owner of the repository. The name is not case sensitive. |
repo string ObligatoireThe name of the repository without the |
hook_id integer ObligatoireThe unique identifier of the hook. You can find this value in the |
delivery_id integer Obligatoire |
Codes d’état de la réponse HTTP pour « Get a delivery for a repository webhook »
Code d’état | Description |
---|---|
200 | OK |
400 | Bad Request |
422 | Validation failed, or the endpoint has been spammed. |
Exemples de code pour « Get a delivery for a repository webhook »
Exemple de requête
curl -L \ -H "Accept: application/vnd.+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X--Api-Version: 2022-11-28" \ http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/hooks/HOOK_ID/deliveries/DELIVERY_ID
Response
Status: 200
{ "id": 12345678, "guid": "0b989ba4-242f-11e5-81e1-c7b6966d2516", "delivered_at": "2019-06-03T00:57:16Z", "redelivery": false, "duration": 0.27, "status": "OK", "status_code": 200, "event": "issues", "action": "opened", "installation_id": 123, "repository_id": 456, "url": "https://www.example.com", "throttled_at": "2019-06-03T00:57:16Z", "request": { "headers": { "X--Delivery": "0b989ba4-242f-11e5-81e1-c7b6966d2516", "X-Hub-Signature-256": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", "Accept": "*/*", "X--Hook-ID": "42", "User-Agent": "-Hookshot/b8c71d8", "X--Event": "issues", "X--Hook-Installation-Target-ID": "123", "X--Hook-Installation-Target-Type": "repository", "content-type": "application/json", "X-Hub-Signature": "sha1=a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d" }, "payload": { "action": "opened", "issue": { "body": "foo" }, "repository": { "id": 123 } } }, "response": { "headers": { "Content-Type": "text/html;charset=utf-8" }, "payload": "ok" } }
Redeliver a webhook delivery for a webhook configured in a repository.
Jetons d’accès affinés pour « Redeliver a delivery for a repository webhook »
Ce point de terminaison fonctionne avec les types de jetons précis suivants:
- Jetons d’accès utilisateur d’application
- Jetons d’accès d’installation d’application
- Jetons d’accès personnel affiné
Le jeton précis doit avoir l’ensemble d’autorisations suivant:
- "Webhooks" repository permissions (write)
Paramètres pour « Redeliver a delivery for a repository webhook »
Nom, Type, Description |
---|
accept stringSetting to |
Nom, Type, Description |
---|
owner string ObligatoireThe account owner of the repository. The name is not case sensitive. |
repo string ObligatoireThe name of the repository without the |
hook_id integer ObligatoireThe unique identifier of the hook. You can find this value in the |
delivery_id integer Obligatoire |
Codes d’état de la réponse HTTP pour « Redeliver a delivery for a repository webhook »
Code d’état | Description |
---|---|
202 | Accepted |
400 | Bad Request |
422 | Validation failed, or the endpoint has been spammed. |
Exemples de code pour « Redeliver a delivery for a repository webhook »
Exemple de requête
curl -L \ -X POST \ -H "Accept: application/vnd.+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X--Api-Version: 2022-11-28" \ http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/hooks/HOOK_ID/deliveries/DELIVERY_ID/attempts
Accepted
Status: 202
This will trigger a ping event to be sent to the hook.
Jetons d’accès affinés pour « Ping a repository webhook »
Ce point de terminaison fonctionne avec les types de jetons précis suivants:
- Jetons d’accès utilisateur d’application
- Jetons d’accès d’installation d’application
- Jetons d’accès personnel affiné
Le jeton précis doit avoir l’ensemble d’autorisations suivant:
- "Webhooks" repository permissions (read)
Paramètres pour « Ping a repository webhook »
Nom, Type, Description |
---|
accept stringSetting to |
Nom, Type, Description |
---|
owner string ObligatoireThe account owner of the repository. The name is not case sensitive. |
repo string ObligatoireThe name of the repository without the |
hook_id integer ObligatoireThe unique identifier of the hook. You can find this value in the |
Codes d’état de la réponse HTTP pour « Ping a repository webhook »
Code d’état | Description |
---|---|
204 | No Content |
404 | Resource not found |
Exemples de code pour « Ping a repository webhook »
Exemple de requête
curl -L \ -X POST \ -H "Accept: application/vnd.+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X--Api-Version: 2022-11-28" \ http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/hooks/HOOK_ID/pings
Response
Status: 204
This will trigger the hook with the latest push to the current repository if the hook is subscribed to push
events. If the hook is not subscribed to push
events, the server will respond with 204 but no test POST will be generated.
Note
Previously /repos/:owner/:repo/hooks/:hook_id/test
Jetons d’accès affinés pour « Test the push repository webhook »
Ce point de terminaison fonctionne avec les types de jetons précis suivants:
- Jetons d’accès utilisateur d’application
- Jetons d’accès d’installation d’application
- Jetons d’accès personnel affiné
Le jeton précis doit avoir l’ensemble d’autorisations suivant:
- "Webhooks" repository permissions (read)
Paramètres pour « Test the push repository webhook »
Nom, Type, Description |
---|
accept stringSetting to |
Nom, Type, Description |
---|
owner string ObligatoireThe account owner of the repository. The name is not case sensitive. |
repo string ObligatoireThe name of the repository without the |
hook_id integer ObligatoireThe unique identifier of the hook. You can find this value in the |
Codes d’état de la réponse HTTP pour « Test the push repository webhook »
Code d’état | Description |
---|---|
204 | No Content |
404 | Resource not found |
Exemples de code pour « Test the push repository webhook »
Exemple de requête
curl -L \ -X POST \ -H "Accept: application/vnd.+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X--Api-Version: 2022-11-28" \ http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/hooks/HOOK_ID/tests
Response
Status: 204