:linkattrs:
= Plugins

The Gerrit server functionality can be extended by installing plugins.

[[installation]]
== Plugin Installation
Plugin installation is as easy as dropping the plugin jar into the
`$site_path/plugins/` folder. It may take
link:config-gerrit.html#plugins.checkFrequency[a few minutes] until
the server picks up new and updated plugins.

Due to caching, you might need to flush your browser cache after
installing a plugin. Users will usually see the result within
several minutes.

Plugins can also be installed via
link:rest-api-plugins.html#install-plugin[REST] and
link:cmd-plugin-install.html[SSH].

[[development]]
== Plugin Development

How to develop plugins is described in the link:dev-plugins.html[
Plugin Development Guide].

If you want to share your plugin under the link:licenses.html#Apache2_0[
Apache License 2.0] you can host your plugin development on the
link:https://gerrit-review.googlesource.com[gerrit-review,role=external,window=_blank] Gerrit
Server. You can request the creation of a new Project by email
to the link:https://groups.google.com/forum/#!forum/repo-discuss[Gerrit
mailing list,role=external,window=_blank]. You would be assigned as project owner of the new plugin
project so that you can submit changes on your own. It is the
responsibility of the project owner to maintain the plugin, e.g. to
make sure that it works with new Gerrit versions and to create stable
branches for old releases.

[[core-plugins]]
== Core Plugins

link:dev-core-plugins.html[Core plugins] are packaged within the Gerrit
war file and can easily be installed during the link:pgm-init.html[
Gerrit initialization].

Note that the documentation and configuration links in the list below are
to the plugins' master branch. Please refer to the appropriate branch or
revision for the Gerrit version you are using.

[[codemirror-editor]]
=== codemirror-editor

CodeMirror JavaScript plugin for Gerrit.

link:https://gerrit-review.googlesource.com/admin/repos/plugins/codemirror-editor[
Project,role=external,window=_blank] |

[[commit-message-length-validator]]
=== commit-message-length-validator

This plugin checks the length of a commit’s commit message subject and
message body, and reports warnings or errors to the git client if the
lengths are exceeded.

link:https://gerrit-review.googlesource.com/admin/repos/plugins/commit-message-length-validator[
Project,role=external,window=_blank] |
link:https://gerrit.googlesource.com/plugins/commit-message-length-validator/+doc/master/src/main/resources/Documentation/about.md[
Documentation,role=external,window=_blank] |
link:https://gerrit.googlesource.com/plugins/commit-message-length-validator/+doc/master/src/main/resources/Documentation/config.md[
Configuration,role=external,window=_blank]

[[delete-project]]
=== delete-project

Provides the ability to delete a project.

link:https://gerrit-review.googlesource.com/admin/repos/plugins/delete-project[
Project,role=external,window=_blank] |
link:https://gerrit.googlesource.com/plugins/delete-project/+doc/master/src/main/resources/Documentation/about.md[
Documentation,role=external,window=_blank] |
link:https://gerrit.googlesource.com/plugins/delete-project/+doc/master/src/main/resources/Documentation/config.md[
Configuration,role=external,window=_blank]

[[download-commands]]
=== download-commands

This plugin defines commands for downloading changes in different
download schemes (for downloading via different network protocols).

link:https://gerrit-review.googlesource.com/admin/repos/plugins/download-commands[
Project,role=external,window=_blank] |
link:https://gerrit.googlesource.com/plugins/download-commands/+doc/master/src/main/resources/Documentation/about.md[
Documentation,role=external,window=_blank] |
link:https://gerrit.googlesource.com/plugins/download-commands/+doc/master/src/main/resources/Documentation/config.md[
Configuration,role=external,window=_blank]

[[gitiles]]
=== gitiles

Plugin running Gitiles alongside a Gerrit server.

link:https://gerrit-review.googlesource.com/admin/repos/plugins/gitiles[
Project,role=external,window=_blank]

[[hooks]]
=== hooks

This plugin runs server-side hooks on events.

link:https://gerrit-review.googlesource.com/admin/repos/plugins/hooks[
Project,role=external,window=_blank] |
link:https://gerrit.googlesource.com/plugins/hooks/+doc/master/src/main/resources/Documentation/about.md[
Documentation,role=external,window=_blank] |
link:https://gerrit.googlesource.com/plugins/hooks/+doc/master/src/main/resources/Documentation/config.md[
Configuration,role=external,window=_blank]

[[plugin-manager]]
=== plugin-manager

This plugins provides an initial wizard to discover and install Gerrit plugins.
Per default GerritForge CI is used to download the plugin artifacts from, but
this can be changed per plugin configuration.

link:https://gerrit-review.googlesource.com/admin/repos/plugins/plugin-manager[
Project,role=external,window=_blank]
link:https://gerrit.googlesource.com/plugins/plugin-manager/+doc/master/src/main/resources/Documentation/about.md[
Documentation,role=external,window=_blank]
link:https://gerrit.googlesource.com/plugins/plugin-manager/+doc/master/src/main/resources/Documentation/config.md[
Configuration,role=external,window=_blank]

[[replication]]
=== replication

This plugin can automatically push any changes Gerrit Code Review makes
to its managed Git repositories to another system. Usually this would
be configured to provide mirroring of changes, for warm-standby
backups, or a load-balanced public mirror farm.

link:https://gerrit-review.googlesource.com/admin/repos/plugins/replication[
Project,role=external,window=_blank] |
link:https://gerrit.googlesource.com/plugins/replication/+doc/master/src/main/resources/Documentation/about.md[
Documentation,role=external,window=_blank] |
link:https://gerrit.googlesource.com/plugins/replication/+doc/master/src/main/resources/Documentation/config.md[
Configuration,role=external,window=_blank]

[[reviewnotes]]
=== reviewnotes

Stores review information for Gerrit changes in the `refs/notes/review`
branch.

link:https://gerrit-review.googlesource.com/admin/repos/plugins/reviewnotes[
Project,role=external,window=_blank] |
link:https://gerrit.googlesource.com/plugins/reviewnotes/+doc/master/src/main/resources/Documentation/about.md[
Documentation,role=external,window=_blank]

[[singleusergroup]]
=== singleusergroup

This plugin provides a group per user. This is useful to assign access
rights directly to a single user, since in Gerrit access rights can
only be assigned to groups.

[[webhooks]]
=== webhooks

This plugin allows to propagate Gerrit events to remote http endpoints.

link:https://gerrit-review.googlesource.com/admin/repos/plugins/webhooks[
Project,role=external,window=_blank] |
link:https://gerrit.googlesource.com/plugins/webhooks/+doc/master/src/main/resources/Documentation/about.md[
Documentation,role=external,window=_blank] |
link:https://gerrit.googlesource.com/plugins/webhooks/+doc/master/src/main/resources/Documentation/config.md[
Configuration,role=external,window=_blank]

[[other-plugins]]
== Other Plugins

Besides core plugins there are many other Gerrit plugins available. This Gerrit home
link:https://www.gerritcodereview.com/plugins.html[page for plugins] lists them.

GERRIT
------
Part of link:index.html[Gerrit Code Review]

SEARCHBOX
---------
