Test a commit message against the full push rule chain, optionally with unsaved edits
const url = 'https://gitea.example.com/api/v1/repos/example/example/push_rules/preview';const options = { method: 'POST', headers: {Authorization: 'Basic <credentials>', 'Content-Type': 'application/json'}, body: '{"author_email":"example","branch_name":"example","default":{"agent_branch_template":"example","agent_exempt":["example"],"author_email":"example","branch_name":"example","description":"example","enabled":true,"example":"example","forbidden":"example","full_message":true,"max_commits":1,"max_file_size_mb":1,"name":"example","prohibited_file_names":"example","required":"example"},"default_mode":"inherit","file_path":"example","mandatory":{"agent_branch_template":"example","agent_exempt":["example"],"author_email":"example","branch_name":"example","description":"example","enabled":true,"example":"example","forbidden":"example","full_message":true,"max_commits":1,"max_file_size_mb":1,"name":"example","prohibited_file_names":"example","required":"example"},"message":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://gitea.example.com/api/v1/repos/example/example/push_rules/preview \ --header 'Authorization: Basic <credentials>' \ --header 'Content-Type: application/json' \ --data '{ "author_email": "example", "branch_name": "example", "default": { "agent_branch_template": "example", "agent_exempt": [ "example" ], "author_email": "example", "branch_name": "example", "description": "example", "enabled": true, "example": "example", "forbidden": "example", "full_message": true, "max_commits": 1, "max_file_size_mb": 1, "name": "example", "prohibited_file_names": "example", "required": "example" }, "default_mode": "inherit", "file_path": "example", "mandatory": { "agent_branch_template": "example", "agent_exempt": [ "example" ], "author_email": "example", "branch_name": "example", "description": "example", "enabled": true, "example": "example", "forbidden": "example", "full_message": true, "max_commits": 1, "max_file_size_mb": 1, "name": "example", "prohibited_file_names": "example", "required": "example" }, "message": "example" }'Gitea Enterprise only. This endpoint is not part of the community edition.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Owner of the repo
Name of the repo
Request Body
Section titled “Request Body”Unsaved edits of the rules owned by the scope may be supplied; parent scopes always use their stored rules.
object
A commit author email to test against the author email checks
A new branch name to test against the branch name checks
object
Head branch name for new agent runs when the default name fails a branch name check; {agent} is replaced by the agent name and {issue} by the issue number or “work”
Checks agents may skip: commit_message, branch_name, author_email, file_name, file_size. They cover branches an agent run creates and commits the agent authored, pushed by its run or merged from a pull request it opened
RE2 expression the author email of every new commit must match
RE2 expression the name of a newly created branch must match; the default branch is always allowed
RE2 expression the commit message must not match
Whether the expressions are matched against the full commit message instead of only its title
Most new commits one push or merge may bring in while the commit checks run; 0 for no limit
Largest file in MiB a new commit may add or modify; 0 for no limit
RE2 expression no file path added or modified by a new commit may match
RE2 expression the commit message must match
Unsaved mode of the default rule of an organization or a repository; the stored mode when empty type: string inherit PushRuleModeInherit copy PushRuleModeCopy custom PushRuleModeCustom none PushRuleModeNone
A file path to test against the prohibited file name checks
object
Head branch name for new agent runs when the default name fails a branch name check; {agent} is replaced by the agent name and {issue} by the issue number or “work”
Checks agents may skip: commit_message, branch_name, author_email, file_name, file_size. They cover branches an agent run creates and commits the agent authored, pushed by its run or merged from a pull request it opened
RE2 expression the author email of every new commit must match
RE2 expression the name of a newly created branch must match; the default branch is always allowed
RE2 expression the commit message must not match
Whether the expressions are matched against the full commit message instead of only its title
Most new commits one push or merge may bring in while the commit checks run; 0 for no limit
Largest file in MiB a new commit may add or modify; 0 for no limit
RE2 expression no file path added or modified by a new commit may match
RE2 expression the commit message must match
Responses
Section titled “Responses”PreviewPushRuleResult
object
object
The checks the rule configures and the sample fills
object
Type: string
Type: string default PushRuleKindDefault mandatory PushRuleKindMandatory
Whether the commit message was tested; the message results are true when it was not
Type: string global PushRuleScopeGlobal org PushRuleScopeOrg repo PushRuleScopeRepo
Example
{ "results": [ { "checks": [ { "kind": "branch_name" } ], "kind": "default", "source": "global" } ]}APINotFound is a not found empty response
APIValidationError is error format response related to input validation