This version of GitHub Enterprise was discontinued on 2023-01-18. 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.
We've recently moved some of the REST API documentation. If you can't find what you're looking for, you might try the Actions REST API page.
Organization Pre-receive Hooks
Use the REST API to view and modify enforcement of the pre-receive hooks that are available to an organization.
About organization pre-receive hooks
Object attributes
| Name | Type | Description |
|---|---|---|
name | string | The name of the hook. |
enforcement | string | The state of enforcement for the hook on this repository. |
allow_downstream_configuration | boolean | Whether repositories can override enforcement. |
configuration_url | string | URL for the endpoint where enforcement is set. |
Possible values for enforcement are enabled, disabled andtesting. disabled indicates the pre-receive hook will not run. enabled indicates it will run and reject any pushes that result in a non-zero status. testing means the script will run but will not cause any pushes to be rejected.
configuration_url may be a link to this endpoint or this hook's global configuration. Only site admins are able to access the global configuration.
List pre-receive hooks for an organization
List all pre-receive hooks that are enabled or testing for this organization as well as any disabled hooks that can be configured at the organization level. Globally disabled pre-receive hooks that do not allow downstream configuration are not listed.
Parameters
| Headers |
|---|
| Name, Type, Description |
acceptstringSetting to |
| Path parameters |
| Name, Type, Description |
orgstringRequiredThe organization name. The name is not case sensitive. |
| Query parameters |
| Name, Type, Description |
per_pageintegerThe number of results per page (max 100). Default: |
pageintegerPage number of the results to fetch. Default: |
directionstringThe direction to sort the results by. Default: Can be one of: |
sortstringThe sort order for the response collection. Default: Can be one of: |
HTTP response status codes
| Status code | Description |
|---|---|
200 | OK |
Code samples
curl \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/pre-receive-hooksResponse
Status: 200[
{
"id": 42,
"name": "Check Commits",
"enforcement": "disabled",
"configuration_url": "https://github.example.com/api/v3/admin/pre-receive-hooks/42",
"allow_downstream_configuration": true
}
]Get a pre-receive hook for an organization
Parameters
| Headers |
|---|
| Name, Type, Description |
acceptstringSetting to |
| Path parameters |
| Name, Type, Description |
orgstringRequiredThe organization name. The name is not case sensitive. |
pre_receive_hook_idintegerRequiredThe unique identifier of the pre-receive hook. |
HTTP response status codes
| Status code | Description |
|---|---|
200 | OK |
Code samples
curl \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/pre-receive-hooks/PRE_RECEIVE_HOOK_IDResponse
Status: 200{
"id": 42,
"name": "Check Commits",
"enforcement": "disabled",
"configuration_url": "https://github.example.com/api/v3/admin/pre-receive-hooks/42",
"allow_downstream_configuration": true
}Update pre-receive hook enforcement for an organization
For pre-receive hooks which are allowed to be configured at the org level, you can set enforcement and allow_downstream_configuration
Parameters
| Headers |
|---|
| Name, Type, Description |
acceptstringSetting to |
| Path parameters |
| Name, Type, Description |
orgstringRequiredThe organization name. The name is not case sensitive. |
pre_receive_hook_idintegerRequiredThe unique identifier of the pre-receive hook. |
| Body parameters |
| Name, Type, Description |
enforcementstringThe state of enforcement for the hook on this repository. |
allow_downstream_configurationbooleanWhether repositories can override enforcement. |
HTTP response status codes
| Status code | Description |
|---|---|
200 | OK |
Code samples
curl \
-X PATCH \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/pre-receive-hooks/PRE_RECEIVE_HOOK_ID \
-d '{"enforcement":"enabled","allow_downstream_configuration":false}'Response
Status: 200{
"id": 42,
"name": "Check Commits",
"enforcement": "enabled",
"configuration_url": "https://github.example.com/api/v3/orgs/octocat/pre-receive-hooks/42",
"allow_downstream_configuration": false
}Remove pre-receive hook enforcement for an organization
Removes any overrides for this hook at the org level for this org.
Parameters
| Headers |
|---|
| Name, Type, Description |
acceptstringSetting to |
| Path parameters |
| Name, Type, Description |
orgstringRequiredThe organization name. The name is not case sensitive. |
pre_receive_hook_idintegerRequiredThe unique identifier of the pre-receive hook. |
HTTP response status codes
| Status code | Description |
|---|---|
200 | OK |
Code samples
curl \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/orgs/ORG/pre-receive-hooks/PRE_RECEIVE_HOOK_IDResponse
Status: 200{
"id": 42,
"name": "Check Commits",
"enforcement": "disabled",
"configuration_url": "https://github.example.com/api/v3/admin/pre-receive-hooks/42",
"allow_downstream_configuration": true
}