Skip to main content

Enterprise Server 3.20 目前作为发布候选版本提供。

REST API 现已开始进行版本化。 有关详细信息,请参阅“关于 API 版本控制”。

适用于存储库预接收挂钩的 REST API 终结点

使用 REST API 查看和修改存储库中可用的预接收挂钩的执行情况。

About repository pre-receive hooks

注意

These endpoints only support authentication using a personal access token (classic). For more information, see Managing your personal access tokens.

NameTypeDescription
namestringThe name of the hook.
enforcementstringThe state of enforcement for the hook on this repository.
configuration_urlstringURL 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, its 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.

“List pre-receive hooks for a repository”的细粒度访问令牌

此端点支持以下精细令牌类型:

细粒度令牌必须具有以下权限集:

  • "Repository pre-receive hooks" repository permissions (read)

“List pre-receive hooks for a repository”的参数

标头
名称, 类型, 说明
accept string

Setting to application/vnd.github+json is recommended.

路径参数
名称, 类型, 说明
owner string 必须

The account owner of the repository. The name is not case sensitive.

repo string 必须

The name of the repository without the .git extension. The name is not case sensitive.

查询参数
名称, 类型, 说明
per_page integer

The number of results per page (max 100). For more information, see "Using pagination in the REST API."

默认: 30

page integer

The page number of the results to fetch. For more information, see "Using pagination in the REST API."

默认: 1

direction string

The direction to sort the results by.

默认: desc

可以是以下选项之一: asc, desc

sort string

默认: created

可以是以下选项之一: created, updated, name

“List pre-receive hooks for a repository”的 HTTP 响应状态代码

状态代码说明
200

OK

“List pre-receive hooks for a repository”的示例代码

请求示例

get/repos/{owner}/{repo}/pre-receive-hooks
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/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

“Get a pre-receive hook for a repository”的细粒度访问令牌

此端点支持以下精细令牌类型:

细粒度令牌必须具有以下权限集:

  • "Repository pre-receive hooks" repository permissions (read)

“Get a pre-receive hook for a repository”的参数

标头
名称, 类型, 说明
accept string

Setting to application/vnd.github+json is recommended.

路径参数
名称, 类型, 说明
owner string 必须

The account owner of the repository. The name is not case sensitive.

repo string 必须

The name of the repository without the .git extension. The name is not case sensitive.

pre_receive_hook_id integer 必须

The unique identifier of the pre-receive hook.

“Get a pre-receive hook for a repository”的 HTTP 响应状态代码

状态代码说明
200

OK

“Get a pre-receive hook for a repository”的示例代码

请求示例

get/repos/{owner}/{repo}/pre-receive-hooks/{pre_receive_hook_id}
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/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

“Update pre-receive hook enforcement for a repository”的细粒度访问令牌

此端点支持以下精细令牌类型:

细粒度令牌必须具有以下权限集:

  • "Repository pre-receive hooks" repository permissions (write)

“Update pre-receive hook enforcement for a repository”的参数

标头
名称, 类型, 说明
accept string

Setting to application/vnd.github+json is recommended.

路径参数
名称, 类型, 说明
owner string 必须

The account owner of the repository. The name is not case sensitive.

repo string 必须

The name of the repository without the .git extension. The name is not case sensitive.

pre_receive_hook_id integer 必须

The unique identifier of the pre-receive hook.

主体参数
名称, 类型, 说明
enforcement string

The state of enforcement for the hook on this repository.

可以是以下选项之一: enabled, disabled, testing

“Update pre-receive hook enforcement for a repository”的 HTTP 响应状态代码

状态代码说明
200

OK

“Update pre-receive hook enforcement for a repository”的示例代码

请求示例

patch/repos/{owner}/{repo}/pre-receive-hooks/{pre_receive_hook_id}
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/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.

“Remove pre-receive hook enforcement for a repository”的细粒度访问令牌

此端点支持以下精细令牌类型:

细粒度令牌必须具有以下权限集:

  • "Repository pre-receive hooks" repository permissions (write)

“Remove pre-receive hook enforcement for a repository”的参数

标头
名称, 类型, 说明
accept string

Setting to application/vnd.github+json is recommended.

路径参数
名称, 类型, 说明
owner string 必须

The account owner of the repository. The name is not case sensitive.

repo string 必须

The name of the repository without the .git extension. The name is not case sensitive.

pre_receive_hook_id integer 必须

The unique identifier of the pre-receive hook.

“Remove pre-receive hook enforcement for a repository”的 HTTP 响应状态代码

状态代码说明
200

Responds with effective values inherited from owner and/or global level.

“Remove pre-receive hook enforcement for a repository”的示例代码

请求示例

delete/repos/{owner}/{repo}/pre-receive-hooks/{pre_receive_hook_id}
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/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" }