This version of GitHub Enterprise was discontinued on 2023-03-15. 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.
Repository Pre-receive Hooks
Use the REST API to view and modify enforcement of the pre-receive hooks that are available to a repository.
About repository pre-receive hooks
Name | Type | Description |
---|---|---|
name | string | The name of the hook. |
enforcement | string | The state of enforcement for the hook on this repository. |
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 repository, it's organization owner or global configuration. Authorization to access the endpoint at configuration_url
is determined at the owner or site admin level.
List pre-receive hooks for a repository
List all pre-receive hooks that are enabled or testing for this repository as well as any disabled hooks that are allowed to be enabled at the repository level. Pre-receive hooks that are disabled at a higher level and are not configurable will not be listed.
Parameters for "List pre-receive hooks for a repository"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
owner string RequiredThe account owner of the repository. The name is not case sensitive. |
repo string RequiredThe name of the repository without the |
Query parameters |
Name, Type, Description |
per_page integer The number of results per page (max 100). Default: |
page integer Page number of the results to fetch. Default: |
direction string The direction to sort the results by. Default: Can be one of: |
sort string Default: Can be one of: |
HTTP response status codes for "List pre-receive hooks for a repository"
Status code | Description |
---|---|
200 | OK |
Code samples for "List pre-receive hooks for a repository"
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/pre-receive-hooks
Response
Status: 200
[
{
"id": 42,
"name": "Check Commits",
"enforcement": "disabled",
"configuration_url": "https://github.example.com/api/v3/orgs/octocat/pre-receive-hooks/42"
}
]
Get a pre-receive hook for a repository
Parameters for "Get a pre-receive hook for a repository"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
owner string RequiredThe account owner of the repository. The name is not case sensitive. |
repo string RequiredThe name of the repository without the |
pre_receive_hook_id integer RequiredThe unique identifier of the pre-receive hook. |
HTTP response status codes for "Get a pre-receive hook for a repository"
Status code | Description |
---|---|
200 | OK |
Code samples for "Get a pre-receive hook for a repository"
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/pre-receive-hooks/PRE_RECEIVE_HOOK_ID
Response
Status: 200
{
"id": 42,
"name": "Check Commits",
"enforcement": "disabled",
"configuration_url": "https://github.example.com/api/v3/orgs/octocat/pre-receive-hooks/42"
}
Update pre-receive hook enforcement for a repository
For pre-receive hooks which are allowed to be configured at the repo level, you can set enforcement
Parameters for "Update pre-receive hook enforcement for a repository"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
owner string RequiredThe account owner of the repository. The name is not case sensitive. |
repo string RequiredThe name of the repository without the |
pre_receive_hook_id integer RequiredThe unique identifier of the pre-receive hook. |
Body parameters |
Name, Type, Description |
enforcement string The state of enforcement for the hook on this repository. Can be one of: |
HTTP response status codes for "Update pre-receive hook enforcement for a repository"
Status code | Description |
---|---|
200 | OK |
Code samples for "Update pre-receive hook enforcement for a repository"
curl -L \
-X PATCH \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/pre-receive-hooks/PRE_RECEIVE_HOOK_ID \
-d '{"enforcement":"enabled"}'
Response
Status: 200
{
"id": 42,
"name": "Check Commits",
"enforcement": "enabled",
"configuration_url": "https://github.example.com/api/v3/repos/octocat/hello-world/pre-receive-hooks/42"
}
Remove pre-receive hook enforcement for a repository
Deletes any overridden enforcement on this repository for the specified hook.
Responds with effective values inherited from owner and/or global level.
Parameters for "Remove pre-receive hook enforcement for a repository"
Headers |
---|
Name, Type, Description |
accept string Setting to |
Path parameters |
Name, Type, Description |
owner string RequiredThe account owner of the repository. The name is not case sensitive. |
repo string RequiredThe name of the repository without the |
pre_receive_hook_id integer RequiredThe unique identifier of the pre-receive hook. |
HTTP response status codes for "Remove pre-receive hook enforcement for a repository"
Status code | Description |
---|---|
200 | Responds with effective values inherited from owner and/or global level. |
Code samples for "Remove pre-receive hook enforcement for a repository"
curl -L \
-X DELETE \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/pre-receive-hooks/PRE_RECEIVE_HOOK_ID
Responds with effective values inherited from owner and/or global level.
Status: 200
{
"id": 42,
"name": "Check Commits",
"enforcement": "disabled",
"configuration_url": "https://github.example.com/api/v3/orgs/octocat/pre-receive-hooks/42"
}