81c899f085
Change-Id: I576f746852e7c4f25fc430c54a8d8db0b8e25ea9
142 lines
4.4 KiB
Plaintext
142 lines
4.4 KiB
Plaintext
= Gerrit Code Review - Plugin-based Validation
|
|
|
|
Gerrit provides interfaces to allow link:dev-plugins.html[plugins] to
|
|
perform validation on certain operations.
|
|
|
|
[[new-commit-validation]]
|
|
== New commit validation
|
|
|
|
|
|
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.
|
|
|
|
[[user-ref-operations-validation]]
|
|
== User ref operations validation
|
|
|
|
|
|
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.
|
|
|
|
[[pre-merge-validation]]
|
|
== 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]]
|
|
== 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]]
|
|
== 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]]
|
|
== 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]]
|
|
== 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]]
|
|
== Assignee validation
|
|
|
|
|
|
Plugins implementing the `AssigneeValidationListener` interface can perform
|
|
validation of assignees before they are assigned to a change.
|
|
|
|
[[hashtag-validation]]
|
|
== Hashtag validation
|
|
|
|
|
|
Plugins implementing the `HashtagValidationListener` interface can perform
|
|
validation of hashtags before they are added to or removed from changes.
|
|
|
|
[[outgoing-email-validation]]
|
|
== 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]]
|
|
== 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.
|
|
|
|
[[review-comment-validation]]
|
|
== Review comment validation
|
|
|
|
|
|
The `CommentValidator` interface allows plugins to validate all review comments,
|
|
i.e. inline comments, file comments and the review message. This works for the
|
|
REST API, for `git push` when `--publish-comments` is used and for comments sent
|
|
via email.
|
|
|
|
|
|
GERRIT
|
|
------
|
|
Part of link:index.html[Gerrit Code Review]
|
|
|
|
|
|
SEARCHBOX
|
|
---------
|