Esta versión de GitHub Enterprise se discontinuó el 2022-06-03. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener un mejor desempeño, más seguridad y nuevas características, actualiza a la última versión de GitHub Enterprise. Para obtener ayuda con la actualización, contacta al soporte de GitHub Enterprise.
Webhooks de organización
About the Organization webhooks API
Los webhooks de las organizaciones te permiten recibir cargas útiles de POST por HTTP cuando ciertos eventos suceden en una organización. Las API de REST de los webhooks te permiten administrar webhooks de repositorio, organización y aplicación.. También puedes utilizar la API de REST para cambiar la configuración del webhook. Por ejemplo, puedes modificar la URL de la carga útil, el tipo de contenido, la verificación de SSL, y el secreto. Para obtener más información, consulta:
- API de REST para los webhooks de los repositorios
- API de REST de webhooks de organización
- GitHub App API de REST de Webhooks
Para obtener más información sobre las acciones a las cuales te puedes suscribir, consulta los "tipos de eventos de GitHub".
Scopes and restrictions
Todas las acciones en contra de los webhooks de una organización requieren que el usuario autenticado sea un administrador de la organización que se está administrando. Adicionalmente, los tokens de OAuth requieren el alcance admin:org_hook. Par aobtener más información, consulta la sección "Alcances para las Apps de OAuth".
Para porteger los datos sensibles que pueden encontrarse en las configuraciones de los webhooks, también imponemos las siguientes reglas de control de accesos:
- Las aplicaciones de OAuth no pueden listar, ver o editar los webhooks que no crearon ellas mismas.
- Los usuarios no pueden listar, ver o editar los webhooks que crearon las aplicaciones de OAuth.
Recibir Webhooks
Para que GitHub Enterprise Server envíe cargas útiles de webhooks, se necesita que se pueda acceder a tu servidor desde la internet. También sugerimos ampliamente utilizar SSL para que podamos enviar cargas útiles cifradas a través de HTTPS.
Para encontrar más de las mejores prácticas, consulta nuestra guía.
Encabezados de Webhook
GitHub Enterprise Server enviará varios encabezados de HTTP para diferenciar los tipos de eventos y los identificadores de las cargas útiles. Consulta la sección de encabezados de webhook para encontrar más detalles.
List organization webhooks
Parámetros
| Encabezados | 
|---|
| Nombre, Tipo, Descripción | 
| acceptstringSetting to  | 
| Parámetros de ruta | 
| Nombre, Tipo, Descripción | 
| orgstringRequeridoThe organization name. The name is not case sensitive. | 
| Parámetros de consulta | 
| Nombre, Tipo, Descripción | 
| per_pageintegerThe number of results per page (max 100). Predeterminado:  | 
| pageintegerPage number of the results to fetch. Predeterminado:  | 
Códigos de estado de respuesta HTTP
| Código de estado | Descripción | 
|---|---|
| 200 | OK | 
| 404 | Resource not found | 
Ejemplos de código
curl \
  -H "Accept: application/vnd.github.v3+json" \ 
  -H "Authorization: token <TOKEN>" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/hooksResponse
Status: 200[
  {
    "id": 1,
    "url": "https://api.github.com/orgs/octocat/hooks/1",
    "ping_url": "https://api.github.com/orgs/octocat/hooks/1/pings",
    "name": "web",
    "events": [
      "push",
      "pull_request"
    ],
    "active": true,
    "config": {
      "url": "http://example.com",
      "content_type": "json"
    },
    "updated_at": "2011-09-06T20:39:23Z",
    "created_at": "2011-09-06T17:26:27Z",
    "type": "Organization"
  }
]Create an organization webhook
Here's how you can create a hook that posts payloads in JSON format:
Parámetros
| Encabezados | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Nombre, Tipo, Descripción | ||||||||||
| acceptstringSetting to  | ||||||||||
| Parámetros de ruta | ||||||||||
| Nombre, Tipo, Descripción | ||||||||||
| orgstringRequeridoThe organization name. The name is not case sensitive. | ||||||||||
| Parámetros de cuerpo | ||||||||||
| Nombre, Tipo, Descripción | ||||||||||
| namestringRequeridoMust be passed as "web". | ||||||||||
| configobjectRequeridoKey/value pairs to provide settings for this webhook. These are defined below. | ||||||||||
| Properties of the | ||||||||||
| Nombre, Tipo, Descripción | 
|---|
| urlstringRequeridoThe URL to which the payloads will be delivered. | 
| content_typestringThe media type used to serialize the payloads. Supported values include  | 
| secretstringIf provided, the  | 
| insecure_sslstring or number orDetermines whether the SSL certificate of the host for  | 
| usernamestring | 
| passwordstring | 
eventsarray of stringsDetermines what events the hook is triggered for.
Predeterminado: push
activebooleanDetermines if notifications are sent when the webhook is triggered. Set to true to send notifications.
Predeterminado: true
Códigos de estado de respuesta HTTP
| Código de estado | Descripción | 
|---|---|
| 201 | Created | 
| 404 | Resource not found | 
| 422 | Validation failed | 
Ejemplos de código
curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \ 
  -H "Authorization: token <TOKEN>" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/hooks \
  -d '{"name":"web","active":true,"events":["push","pull_request"],"config":{"url":"http://example.com/webhook","content_type":"json"}}'Response
Status: 201{
  "id": 1,
  "url": "https://api.github.com/orgs/octocat/hooks/1",
  "ping_url": "https://api.github.com/orgs/octocat/hooks/1/pings",
  "name": "web",
  "events": [
    "push",
    "pull_request"
  ],
  "active": true,
  "config": {
    "url": "http://example.com",
    "content_type": "json"
  },
  "updated_at": "2011-09-06T20:39:23Z",
  "created_at": "2011-09-06T17:26:27Z",
  "type": "Organization"
}Get an organization webhook
Returns a webhook configured in an organization. To get only the webhook config properties, see "Get a webhook configuration for an organization."
Parámetros
| Encabezados | 
|---|
| Nombre, Tipo, Descripción | 
| acceptstringSetting to  | 
| Parámetros de ruta | 
| Nombre, Tipo, Descripción | 
| orgstringRequeridoThe organization name. The name is not case sensitive. | 
| hook_idintegerRequeridoThe unique identifier of the hook. | 
Códigos de estado de respuesta HTTP
| Código de estado | Descripción | 
|---|---|
| 200 | OK | 
| 404 | Resource not found | 
Ejemplos de código
curl \
  -H "Accept: application/vnd.github.v3+json" \ 
  -H "Authorization: token <TOKEN>" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/hooks/HOOK_IDResponse
Status: 200{
  "id": 1,
  "url": "https://api.github.com/orgs/octocat/hooks/1",
  "ping_url": "https://api.github.com/orgs/octocat/hooks/1/pings",
  "name": "web",
  "events": [
    "push",
    "pull_request"
  ],
  "active": true,
  "config": {
    "url": "http://example.com",
    "content_type": "json"
  },
  "updated_at": "2011-09-06T20:39:23Z",
  "created_at": "2011-09-06T17:26:27Z",
  "type": "Organization"
}Update an organization webhook
Updates a webhook configured in an organization. When you update a webhook, the secret will be overwritten. 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 an organization."
Parámetros
| Encabezados | ||||||||
|---|---|---|---|---|---|---|---|---|
| Nombre, Tipo, Descripción | ||||||||
| acceptstringSetting to  | ||||||||
| Parámetros de ruta | ||||||||
| Nombre, Tipo, Descripción | ||||||||
| orgstringRequeridoThe organization name. The name is not case sensitive. | ||||||||
| hook_idintegerRequeridoThe unique identifier of the hook. | ||||||||
| Parámetros de cuerpo | ||||||||
| Nombre, Tipo, Descripción | ||||||||
| configobjectKey/value pairs to provide settings for this webhook. These are defined below. | ||||||||
| Properties of the | ||||||||
| Nombre, Tipo, Descripción | 
|---|
| urlstringRequeridoThe URL to which the payloads will be delivered. | 
| content_typestringThe media type used to serialize the payloads. Supported values include  | 
| secretstringIf provided, the  | 
| insecure_sslstring or number orDetermines whether the SSL certificate of the host for  | 
eventsarray of stringsDetermines what events the hook is triggered for.
Predeterminado: push
activebooleanDetermines if notifications are sent when the webhook is triggered. Set to true to send notifications.
Predeterminado: true
namestringCódigos de estado de respuesta HTTP
| Código de estado | Descripción | 
|---|---|
| 200 | OK | 
| 404 | Resource not found | 
| 422 | Validation failed | 
Ejemplos de código
curl \
  -X PATCH \
  -H "Accept: application/vnd.github.v3+json" \ 
  -H "Authorization: token <TOKEN>" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/hooks/HOOK_ID \
  -d '{"active":true,"events":["pull_request"]}'Response
Status: 200{
  "id": 1,
  "url": "https://api.github.com/orgs/octocat/hooks/1",
  "ping_url": "https://api.github.com/orgs/octocat/hooks/1/pings",
  "name": "web",
  "events": [
    "pull_request"
  ],
  "active": true,
  "config": {
    "url": "http://example.com",
    "content_type": "json"
  },
  "updated_at": "2011-09-06T20:39:23Z",
  "created_at": "2011-09-06T17:26:27Z",
  "type": "Organization"
}Delete an organization webhook
Parámetros
| Encabezados | 
|---|
| Nombre, Tipo, Descripción | 
| acceptstringSetting to  | 
| Parámetros de ruta | 
| Nombre, Tipo, Descripción | 
| orgstringRequeridoThe organization name. The name is not case sensitive. | 
| hook_idintegerRequeridoThe unique identifier of the hook. | 
Códigos de estado de respuesta HTTP
| Código de estado | Descripción | 
|---|---|
| 204 | No Content | 
| 404 | Resource not found | 
Ejemplos de código
curl \
  -X DELETE \
  -H "Accept: application/vnd.github.v3+json" \ 
  -H "Authorization: token <TOKEN>" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/hooks/HOOK_IDResponse
Status: 204Get a webhook configuration for an organization
Returns the webhook configuration for an organization. To get more information about the webhook, including the active state and events, use "Get an organization webhook ."
Access tokens must have the admin:org_hook scope, and GitHub Apps must have the organization_hooks:read permission.
Parámetros
| Encabezados | 
|---|
| Nombre, Tipo, Descripción | 
| acceptstringSetting to  | 
| Parámetros de ruta | 
| Nombre, Tipo, Descripción | 
| orgstringRequeridoThe organization name. The name is not case sensitive. | 
| hook_idintegerRequeridoThe unique identifier of the hook. | 
Códigos de estado de respuesta HTTP
| Código de estado | Descripción | 
|---|---|
| 200 | OK | 
Ejemplos de código
curl \
  -H "Accept: application/vnd.github.v3+json" \ 
  -H "Authorization: token <TOKEN>" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/hooks/HOOK_ID/configResponse
Status: 200{
  "content_type": "json",
  "insecure_ssl": "0",
  "secret": "********",
  "url": "https://example.com/webhook"
}Update a webhook configuration for an organization
Updates the webhook configuration for an organization. To update more information about the webhook, including the active state and events, use "Update an organization webhook ."
Access tokens must have the admin:org_hook scope, and GitHub Apps must have the organization_hooks:write permission.
Parámetros
| Encabezados | 
|---|
| Nombre, Tipo, Descripción | 
| acceptstringSetting to  | 
| Parámetros de ruta | 
| Nombre, Tipo, Descripción | 
| orgstringRequeridoThe organization name. The name is not case sensitive. | 
| hook_idintegerRequeridoThe unique identifier of the hook. | 
| Parámetros de cuerpo | 
| Nombre, Tipo, Descripción | 
| urlstringThe URL to which the payloads will be delivered. | 
| content_typestringThe media type used to serialize the payloads. Supported values include  | 
| secretstringIf provided, the  | 
| insecure_sslstring or number orDetermines whether the SSL certificate of the host for  | 
Códigos de estado de respuesta HTTP
| Código de estado | Descripción | 
|---|---|
| 200 | OK | 
Ejemplos de código
curl \
  -X PATCH \
  -H "Accept: application/vnd.github.v3+json" \ 
  -H "Authorization: token <TOKEN>" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/hooks/HOOK_ID/config \
  -d '{"url":"http://example.com/webhook","content_type":"json","insecure_ssl":"0","secret":"********"}'Response
Status: 200{
  "content_type": "json",
  "insecure_ssl": "0",
  "secret": "********",
  "url": "https://example.com/webhook"
}Ping an organization webhook
This will trigger a ping event to be sent to the hook.
Parámetros
| Encabezados | 
|---|
| Nombre, Tipo, Descripción | 
| acceptstringSetting to  | 
| Parámetros de ruta | 
| Nombre, Tipo, Descripción | 
| orgstringRequeridoThe organization name. The name is not case sensitive. | 
| hook_idintegerRequeridoThe unique identifier of the hook. | 
Códigos de estado de respuesta HTTP
| Código de estado | Descripción | 
|---|---|
| 204 | No Content | 
| 404 | Resource not found | 
Ejemplos de código
curl \
  -X POST \
  -H "Accept: application/vnd.github.v3+json" \ 
  -H "Authorization: token <TOKEN>" \
  http(s)://HOSTNAME/api/v3/orgs/ORG/hooks/HOOK_ID/pingsResponse
Status: 204