Gerrit provides interfaces to allow plugins to perform validation on certain operations.
Plugins implementing the CommitValidationListener
interface can perform additional validation checks against new commits.
If the commit fails the validation, the plugin can either provide a message that will be sent back to the git client, or throw an exception which will cause the commit to be rejected.
Validation applies to both commits uploaded via git push
, and new commits generated via Gerrit’s Web UI features such as the rebase, revert and cherry-pick buttons.
Out of the box, Gerrit includes a plugin that checks the length of the subject and body lines of commit messages on uploaded commits.
Plugins implementing the RefOperationValidationListener
interface can perform additional validation checks against user ref operations (resulting from either push or corresponding Gerrit REST/SSH endpoints call e.g. create branch etc.). Namely including ref creation, deletion and update (also non-fast-forward) before they are applied to the git repository.
The plugin can throw an exception which will cause the operation to fail, and prevent the ref update from being applied.
Plugins implementing the MergeValidationListener
interface can perform additional validation checks against commits before they are merged to the git repository.
If the commit fails the validation, the plugin can throw an exception which will cause the merge to fail.
Plugins implementing the OnSubmitValidationListener
interface can perform additional validation checks against ref operations resulting from execution of submit operation before they are applied to any git repositories (there could be more than one in case of topic submits).
Plugin can throw an exception which will cause submit operation to be aborted.
Plugins implementing the UploadValidationListener
interface can perform additional validation checks before any upload operations (clone, fetch, pull). The validation is executed right before Gerrit begins to send a pack back to the git client.
If upload fails the validation, the plugin can throw an exception which will cause the upload to fail and the exception’s message text will be reported to the git client.
Plugins implementing the ProjectCreationValidationListener
interface can perform additional validation on project creation based on the input arguments.
E.g. a plugin could use this to enforce a certain name scheme for project names.
Plugins implementing the GroupCreationValidationListener
interface can perform additional validation on group creation based on the input arguments.
E.g. a plugin could use this to enforce a certain name scheme for group names.
Plugins implementing the AssigneeValidationListener
interface can perform validation of assignees before they are assigned to a change.
Plugins implementing the HashtagValidationListener
interface can perform validation of hashtags before they are added to or removed from changes.
This interface provides a low-level e-mail filtering API for plugins. Plugins implementing the OutgoingEmailValidationListener
interface can perform filtering of outgoing e-mails just before they are sent.
Part of Gerrit Code Review