Puntos de conexión de API REST para ganchos previos a la recepción
Usa la API REST para crear, enumerar, actualizar y eliminar enlaces previos a la recepción.
Acerca de ganchos de pre-recepción
Estos puntos de conexión solo están disponibles para los administradores de sitios autenticados. Los usuarios normales recibirán una respuesta 404.
Nota:
Estos puntos de conexión solo admiten la autenticación mediante personal access token (classic). Para más información, consulta Administración de tokens de acceso personal.
Atributos de objeto
Ganchos de pre-recepción
| Nombre | Tipo | Descripción |
|---|---|---|
name | string | El nombre del gancho. |
script | string | El script que ejecuta el gancho. |
script_repository | object | Repositorio GitHub donde se mantiene el script. |
environment | object | El ambiente de pre-recepción en donde se ejecuta el script. |
enforcement | string | El estado de las imposiciones para este gancho. |
allow_downstream_configuration | boolean | Si las imposiciones pueden o no ignorarse a nivel de organización o de repositorio. |
Los valores posibles para la aplicación son enabled, disabled y testing. disabled indica que no se ejecutará el enlace previo a la recepción. enabled indica que se ejecutará y rechazará cualquier inserción que dé como resultado un estado distinto de cero.
testing indica que el script se ejecutará pero no provocará el rechazo de ningún envío.
List pre-receive hooks
Tokens de acceso granulares para "List pre-receive hooks"
Este punto de conexión no funciona con tokens de acceso de usuario de la aplicación de GitHub, tokens de acceso de instalación de la aplicación de GitHub, o tokens de acceso personal de grano fino.
Parámetros para "List pre-receive hooks"
| Nombre, Tipo, Descripción |
|---|
accept string Setting to |
| Nombre, Tipo, Descripción |
|---|
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Valor predeterminado: |
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Valor predeterminado: |
direction string The direction to sort the results by. Valor predeterminado: Puede ser uno de los siguientes: |
sort string The property to sort the results by. Valor predeterminado: Puede ser uno de los siguientes: |
Códigos de estado de respuesta HTTP para "List pre-receive hooks"
| código de estado | Descripción |
|---|---|
200 | OK |
Ejemplos de código para "List pre-receive hooks"
Ejemplo de solicitud
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
http(s)://HOSTNAME/api/v3/admin/pre-receive-hooksResponse
Status: 200[
{
"id": 1,
"name": "Check Commits",
"enforcement": "disabled",
"script": "scripts/commmit_check.sh",
"script_repository": {
"id": 595,
"full_name": "DevIT/hooks",
"url": "https://github.example.com/api/v3/repos/DevIT/hooks",
"html_url": "https://github.example.com/DevIT/hooks"
},
"environment": {
"id": 2,
"name": "DevTools Hook Env",
"image_url": "https://my_file_server/path/to/devtools_env.tar.gz",
"url": "https://github.example.com/api/v3/admin/pre-receive-environments/2",
"html_url": "https://github.example.com/admin/pre-receive-environments/2",
"default_environment": false,
"created_at": "2016-05-20T11:35:45-05:00",
"hooks_count": 1,
"download": {
"url": "https://github.example.com/api/v3/admin/pre-receive-environments/2/downloads/latest",
"state": "success",
"downloaded_at": "2016-05-26T07:42:53-05:00",
"message": null
}
},
"allow_downstream_configuration": false
}
]Create a pre-receive hook
Tokens de acceso granulares para "Create a pre-receive hook"
Este punto de conexión no funciona con tokens de acceso de usuario de la aplicación de GitHub, tokens de acceso de instalación de la aplicación de GitHub, o tokens de acceso personal de grano fino.
Parámetros para "Create a pre-receive hook"
| Nombre, Tipo, Descripción |
|---|
accept string Setting to |
| Nombre, Tipo, Descripción |
|---|
name string ObligatorioThe name of the hook. |
script string ObligatorioThe script that the hook runs. |
script_repository object ObligatorioThe GitHub repository where the script is kept. |
environment object ObligatorioThe pre-receive environment where the script is executed. |
enforcement string The state of enforcement for this hook. default: |
allow_downstream_configuration boolean Whether enforcement can be overridden at the org or repo level. default: |
Códigos de estado de respuesta HTTP para "Create a pre-receive hook"
| código de estado | Descripción |
|---|---|
201 | Created |
Ejemplos de código para "Create a pre-receive hook"
Ejemplo de solicitud
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
http(s)://HOSTNAME/api/v3/admin/pre-receive-hooks \
-d '{"name":"Check Commits","script":"scripts/commit_check.sh","enforcement":"disabled","allow_downstream_configuration":false,"script_repository":{"full_name":"DevIT/hooks"},"environment":{"id":2}}'Response
Status: 201{
"id": 1,
"name": "Check Commits",
"enforcement": "disabled",
"script": "scripts/commmit_check.sh",
"script_repository": {
"id": 595,
"full_name": "DevIT/hooks",
"url": "https://github.example.com/api/v3/repos/DevIT/hooks",
"html_url": "https://github.example.com/DevIT/hooks"
},
"environment": {
"id": 2,
"name": "DevTools Hook Env",
"image_url": "https://my_file_server/path/to/devtools_env.tar.gz",
"url": "https://github.example.com/api/v3/admin/pre-receive-environments/2",
"html_url": "https://github.example.com/admin/pre-receive-environments/2",
"default_environment": false,
"created_at": "2016-05-20T11:35:45-05:00",
"hooks_count": 1,
"download": {
"url": "https://github.example.com/api/v3/admin/pre-receive-environments/2/downloads/latest",
"state": "success",
"downloaded_at": "2016-05-26T07:42:53-05:00",
"message": null
}
},
"allow_downstream_configuration": false
}Get a pre-receive hook
Tokens de acceso granulares para "Get a pre-receive hook"
Este punto de conexión no funciona con tokens de acceso de usuario de la aplicación de GitHub, tokens de acceso de instalación de la aplicación de GitHub, o tokens de acceso personal de grano fino.
Parámetros para "Get a pre-receive hook"
| Nombre, Tipo, Descripción |
|---|
accept string Setting to |
| Nombre, Tipo, Descripción |
|---|
pre_receive_hook_id integer ObligatorioThe unique identifier of the pre-receive hook. |
Códigos de estado de respuesta HTTP para "Get a pre-receive hook"
| código de estado | Descripción |
|---|---|
200 | OK |
Ejemplos de código para "Get a pre-receive hook"
Ejemplo de solicitud
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
http(s)://HOSTNAME/api/v3/admin/pre-receive-hooks/PRE_RECEIVE_HOOK_IDResponse
Status: 200{
"id": 1,
"name": "Check Commits",
"enforcement": "disabled",
"script": "scripts/commmit_check.sh",
"script_repository": {
"id": 595,
"full_name": "DevIT/hooks",
"url": "https://github.example.com/api/v3/repos/DevIT/hooks",
"html_url": "https://github.example.com/DevIT/hooks"
},
"environment": {
"id": 2,
"name": "DevTools Hook Env",
"image_url": "https://my_file_server/path/to/devtools_env.tar.gz",
"url": "https://github.example.com/api/v3/admin/pre-receive-environments/2",
"html_url": "https://github.example.com/admin/pre-receive-environments/2",
"default_environment": false,
"created_at": "2016-05-20T11:35:45-05:00",
"hooks_count": 1,
"download": {
"url": "https://github.example.com/api/v3/admin/pre-receive-environments/2/downloads/latest",
"state": "success",
"downloaded_at": "2016-05-26T07:42:53-05:00",
"message": null
}
},
"allow_downstream_configuration": false
}Update a pre-receive hook
Tokens de acceso granulares para "Update a pre-receive hook"
Este punto de conexión no funciona con tokens de acceso de usuario de la aplicación de GitHub, tokens de acceso de instalación de la aplicación de GitHub, o tokens de acceso personal de grano fino.
Parámetros para "Update a pre-receive hook"
| Nombre, Tipo, Descripción |
|---|
accept string Setting to |
| Nombre, Tipo, Descripción |
|---|
pre_receive_hook_id integer ObligatorioThe unique identifier of the pre-receive hook. |
| Nombre, Tipo, Descripción |
|---|
name string The name of the hook. |
script string The script that the hook runs. |
script_repository object The GitHub repository where the script is kept. |
environment object The pre-receive environment where the script is executed. |
enforcement string The state of enforcement for this hook. |
allow_downstream_configuration boolean Whether enforcement can be overridden at the org or repo level. |
Códigos de estado de respuesta HTTP para "Update a pre-receive hook"
| código de estado | Descripción |
|---|---|
200 | OK |
Ejemplos de código para "Update a pre-receive hook"
Ejemplo de solicitud
curl -L \
-X PATCH \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
http(s)://HOSTNAME/api/v3/admin/pre-receive-hooks/PRE_RECEIVE_HOOK_ID \
-d '{"name":"Check Commits","environment":{"id":1},"allow_downstream_configuration":true}'Response
Status: 200{
"id": 1,
"name": "Check Commits",
"enforcement": "disabled",
"script": "scripts/commmit_check.sh",
"script_repository": {
"id": 595,
"full_name": "DevIT/hooks",
"url": "https://github.example.com/api/v3/repos/DevIT/hooks",
"html_url": "https://github.example.com/DevIT/hooks"
},
"environment": {
"id": 1,
"name": "Default",
"image_url": "githubenterprise://internal",
"url": "https://github.example.com/api/v3/admin/pre-receive-environments/1",
"html_url": "https://github.example.com/admin/pre-receive-environments/1",
"default_environment": true,
"created_at": "2016-05-20T11:35:45-05:00",
"hooks_count": 1,
"download": {
"url": "https://github.example.com/api/v3/admin/pre-receive-environments/1/downloads/latest",
"state": "success",
"downloaded_at": "2016-05-26T07:42:53-05:00",
"message": null
}
},
"allow_downstream_configuration": true
}Delete a pre-receive hook
Tokens de acceso granulares para "Delete a pre-receive hook"
Este punto de conexión no funciona con tokens de acceso de usuario de la aplicación de GitHub, tokens de acceso de instalación de la aplicación de GitHub, o tokens de acceso personal de grano fino.
Parámetros para "Delete a pre-receive hook"
| Nombre, Tipo, Descripción |
|---|
accept string Setting to |
| Nombre, Tipo, Descripción |
|---|
pre_receive_hook_id integer ObligatorioThe unique identifier of the pre-receive hook. |
Códigos de estado de respuesta HTTP para "Delete a pre-receive hook"
| código de estado | Descripción |
|---|---|
204 | No Content |
Ejemplos de código para "Delete a pre-receive hook"
Ejemplo de solicitud
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2022-11-28" \
http(s)://HOSTNAME/api/v3/admin/pre-receive-hooks/PRE_RECEIVE_HOOK_IDResponse
Status: 204