Skip to main content

Enterprise Server 3.21 は、現在リリース候補として使用できます。

REST API はバージョン化されました。 詳細については、「API のバージョン管理について」を参照してください。

リポジトリの pre-receive フック用の REST API エンドポイント

REST API を使用して、リポジトリで使用可能な pre-receive フックの適用を表示および変更します。

リポジトリの pre-receive フックについて

メモ

これらのエンドポイントでは、personal access token (classic) を使う認証のみがサポートされます。 詳しくは、「個人用アクセス トークンを管理する」をご覧ください。

名前タイプ説明
namestringフックの名前。
enforcementstringこのリポジトリでのフックの適用状態。
configuration_urlstring適用設定されているエンドポイントの URL。
          _適用_に使用できる値は `enabled`、`disabled`と`testing`です。 
          `disabled` は、pre-receive フックが実行されないことを示します。 
          `enabled` は、実行時に結果がゼロ以外のステータスとなった場合にプッシュを拒否することを示しています。 
          `testing` は、スクリプトは実行されるが、プッシュが拒否されないことを示します。

          `configuration_url` は、このリポジトリ、その organization の所有者、またはグローバル設定へのリンクである場合があります。 
          `configuration_url` のエンドポイントにアクセスする権限は、所有者またはサイト管理者レベルで決定されます。

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.

Fine-grained access tokens for "List pre-receive hooks for a repository"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "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

HTTP response status codes for "List pre-receive hooks for a repository"

Status code説明
200

OK

Code samples for "List pre-receive hooks for a repository"

Request example

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: 2026-03-10" \ 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

Fine-grained access tokens for "Get a pre-receive hook for a repository"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "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 string 必須

The unique identifier of the pre-receive hook.

HTTP response status codes for "Get a pre-receive hook for a repository"

Status code説明
200

OK

Code samples for "Get a pre-receive hook for a repository"

Request example

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: 2026-03-10" \ 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

Fine-grained access tokens for "Update pre-receive hook enforcement for a repository"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "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 string 必須

The unique identifier of the pre-receive hook.

ボディパラメータ
名前, タイプ, 説明
enforcement string

The state of enforcement for the hook on this repository.

次のいずれかにできます: enabled, disabled, testing

HTTP response status codes for "Update pre-receive hook enforcement for a repository"

Status code説明
200

OK

Code samples for "Update pre-receive hook enforcement for a repository"

Request example

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: 2026-03-10" \ 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.

Fine-grained access tokens for "Remove pre-receive hook enforcement for a repository"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "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 string 必須

The unique identifier of the pre-receive hook.

HTTP response status codes for "Remove pre-receive hook enforcement for a repository"

Status code説明
200

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

Code samples for "Remove pre-receive hook enforcement for a repository"

Request example

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: 2026-03-10" \ 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" }