REST API endpoints for repository push rule bypass requests
Use the REST API to manage repository push rule bypass requests.
List repository push rule bypass requests
Lists the requests made by users of a repository to bypass push protection rules
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Contents" repository permissions (write)
Parameters for "List repository push rule bypass requests"
| Name, Type, Description |
|---|
accept string Setting to |
| 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 |
| Name, Type, Description |
|---|
reviewer string Filter bypass requests by the handle of the GitHub user who reviewed the bypass request. |
requester string Filter bypass requests by the handle of the GitHub user who requested the bypass. |
time_period string The time period to filter by. For example, Default: Can be one of: |
request_status string The status of the bypass request to filter on. When specified, only requests with this status will be returned. Default: Can be one of: |
per_page integer The number of results per page (max 100). For more information, see "Using pagination in the REST API." Default: |
page integer The page number of the results to fetch. For more information, see "Using pagination in the REST API." Default: |
http_status_code
| status_code | Description |
|---|---|
200 | OK |
404 | Resource not found |
500 | Internal Error |
code_samples
request_example
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/bypass-requests/push-rulesResponse
Status: 200[
{
"id": 21,
"number": 42,
"repository": {
"id": 1,
"name": "smile",
"full_name": "octo-org/smile"
},
"organization": {
"id": 1,
"name": "octo-org"
},
"requester": {
"actor_id": 12,
"actor_name": "monalisa"
},
"request_type": "push_ruleset_bypass",
"data": [
{
"ruleset_id": 410,
"ruleset_name": "Exclude image files",
"total_violations": 1,
"rule_type": "file_extension_restriction"
}
],
"resource_identifier": "827efc6d56897b048c772eb4087f854f46256132",
"status": "denied",
"requester_comment": "Updating site images to follow changes in marketing. Part 1",
"expires_at": "2024-07-08T08:43:03Z",
"created_at": "2024-07-01T08:43:03Z",
"responses": [
{
"id": 42,
"reviewer": {
"actor_id": 4,
"actor_name": "octocat"
},
"status": "denied",
"created_at": "2024-07-02T08:43:04Z"
}
],
"url": "https://HOSTNAME/repos/octo-org/smile/bypass-requests/push-rules/1",
"html_url": "https://github.com/octo-org/smile/exemptions/1"
},
{
"id": 12,
"number": 24,
"repository": {
"id": 1,
"name": "smile",
"full_name": "octo-org/smile"
},
"organization": {
"id": 1,
"name": "octo-org"
},
"requester": {
"actor_id": 12,
"actor_name": "monalisa"
},
"request_type": "push_ruleset_bypass",
"data": [
{
"ruleset_id": 410,
"ruleset_name": "Exclude image files",
"total_violations": 1,
"rule_type": "file_extension_restriction"
}
],
"resource_identifier": "827efc6d56897b048c772eb4087f854f46255555",
"status": "denied",
"requester_comment": "Updating site images to follow changes in marketing. Part 2",
"expires_at": "2024-07-08T07:43:03Z",
"created_at": "2024-07-01T07:43:03Z",
"responses": [
{
"id": 42,
"reviewer": {
"actor_id": 4,
"actor_name": "octocat"
},
"status": "denied",
"created_at": "2024-07-02T08:43:04Z"
}
],
"url": "https://HOSTNAME/repos/octo-org/smile/bypass-requests/push-rules/2",
"html_url": "https://github.com/octo-org/smile/exemptions/2"
}
]Get a repository push bypass request
Get information about a request to bypass push protection rules for a repository.
fine_grained_access
works_with_fine_grained_tokens:
permission_set:
- "Contents" repository permissions (write)
Parameters for "Get a repository push bypass request"
| Name, Type, Description |
|---|
accept string Setting to |
| 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 |
bypass_request_number integer RequiredThe number that identifies the bypass request within the context of the given repository. |
http_status_code
| status_code | Description |
|---|---|
200 | OK |
404 | Resource not found |
500 | Internal Error |
code_samples
request_example
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/bypass-requests/push-rules/BYPASS_REQUEST_NUMBERResponse
Status: 200{
"id": 12,
"number": 24,
"repository": {
"id": 1,
"name": "smile",
"full_name": "octo-org/smile"
},
"organization": {
"id": 1,
"name": "octo-org"
},
"requester": {
"actor_id": 12,
"actor_name": "monalisa"
},
"request_type": "push_ruleset_bypass",
"data": [
{
"ruleset_id": 410,
"ruleset_name": "Exclude image files",
"total_violations": 1,
"rule_type": "file_extension_restriction"
}
],
"resource_identifier": "827efc6d56897b048c772eb4087f854f46255555",
"status": "denied",
"requester_comment": "Updating site images to follow changes in marketing. Part 2",
"expires_at": "2024-07-08T07:43:03Z",
"created_at": "2024-07-01T07:43:03Z",
"responses": [
{
"id": 42,
"reviewer": {
"actor_id": 4,
"actor_name": "octocat"
},
"status": "denied",
"created_at": "2024-07-02T08:43:04Z"
}
],
"url": "https://HOSTNAME/repos/octo-org/smile/bypass-requests/push-rules/2",
"html_url": "https://github.com/octo-org/smile/exemptions/2"
}