Project push rules API
Tier: Premium, Ultimate
Offering: GitLab.com, Self-managed, GitLab Dedicated
You can manage push rules for projects by using the REST API.
Get project push rules
Get the push rules of a project.
GET /projects/:id/push_rule
Supported attributes:
Attribute | Type | Required | Description |
---|---|---|---|
id
| integer or string | Yes | The ID or URL-encoded path of the project |
Example response:
{
"id": 1,
"project_id": 3,
"commit_message_regex": "Fixes \\d+\\..*",
"commit_message_negative_regex": "ssh\\:\\/\\/",
"branch_name_regex": "",
"deny_delete_tag": false,
"created_at": "2012-10-12T17:04:47Z",
"member_check": false,
"prevent_secrets": false,
"author_email_regex": "",
"file_name_regex": "",
"max_file_size": 5,
"commit_committer_check": false,
"commit_committer_name_check": false,
"reject_unsigned_commits": false,
"reject_non_dco_commits": false
}
Add a project push rule
Add a push rule to a specified project.
POST /projects/:id/push_rule
Supported attributes:
Attribute | Type | Required | Description |
---|---|---|---|
id
| integer or string | Yes | The ID or URL-encoded path of the project. |
author_email_regex
| string | No | All commit author emails must match this regular expression. |
branch_name_regex
| string | No | All branch names must match this regular expression. |
commit_message_negative_regex
| string | No | No commit message is allowed to match this regular expression. |
commit_message_regex
| string | No | All commit messages must match this regular expression. |
deny_delete_tag
| boolean | No | Deny deleting a tag. |
file_name_regex
| string | No | All committed filenames must not match this regular expression. |
max_file_size
| integer | No | Maximum file size (MB). |
member_check
| boolean | No | Restrict commits by author (email) to existing GitLab users. |
prevent_secrets
| boolean | No | GitLab rejects any files that are likely to contain secrets. |
commit_committer_check
| boolean | No | Users can only push commits to this repository if the committer email is one of their own verified emails. |
commit_committer_name_check
| boolean | No | Users can only push commits to this repository if the commit author name is consistent with their GitLab account name. |
reject_unsigned_commits
| boolean | No | Reject commit when it’s not signed. |
reject_non_dco_commits
| boolean | No | Reject commit when it’s not DCO certified. |
Edit project push rule
Edit a push rule for a specified project.
PUT /projects/:id/push_rule
Supported attributes:
Attribute | Type | Required | Description |
---|---|---|---|
id
| integer or string | Yes | The ID or URL-encoded path of the project. |
author_email_regex
| string | No | All commit author emails must match this regular expression. |
branch_name_regex
| string | No | All branch names must match this regular expression. |
commit_message_negative_regex
| string | No | No commit message is allowed to match this regular expression. |
commit_message_regex
| string | No | All commit messages must match this regular expression. |
deny_delete_tag
| boolean | No | Deny deleting a tag. |
file_name_regex
| string | No | All committed filenames must not match this regular expression. |
max_file_size
| integer | No | Maximum file size (MB). |
member_check
| boolean | No | Restrict commits by author (email) to existing GitLab users. |
prevent_secrets
| boolean | No | GitLab rejects any files that are likely to contain secrets. |
commit_committer_check
| boolean | No | Users can only push commits to this repository if the committer email is one of their own verified emails. |
commit_committer_name_check
| boolean | No | Users can only push commits to this repository if the commit author name is consistent with their GitLab account name. |
reject_unsigned_commits
| boolean | No | Reject commits when they are not signed. |
reject_non_dco_commits
| boolean | No | Reject commit when it’s not DCO certified. |
Delete project push rule
Delete a push rule from a project.
DELETE /projects/:id/push_rule
Supported attributes:
Attribute | Type | Required | Description |
---|---|---|---|
id
| integer or string | Yes | The ID or URL-encoded path of the project. |