The plugin can throw an exception which will cause the operation to fail,
and prevent the ref update from being applied.

Pre-merge validation

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.

On submit validation

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.

Pre-upload validation

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.

New project validation

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.

New group validation

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.

Assignee validation

Plugins implementing the AssigneeValidationListener interface can perform
validation of assignees before they are assigned to a change.

Hashtag validation

Plugins implementing the HashtagValidationListener interface can perform
validation of hashtags before they are added to or removed from changes.

Outgoing e-mail validation

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.

Account activation validation

Plugins implementing the AccountActivationValidationListener interface can
perform validation when an account is activated or deactivated via the Gerrit
REST API or the Java extension API.