= 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] 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]. 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

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

The core plugins are developed and maintained by the Gerrit maintainers
and the Gerrit community.

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 plugin for polygerrit.

link:https://gerrit-review.googlesource.com/admin/repos/plugins/codemirror-editor[
Project] |

[[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] |
link:https://gerrit.googlesource.com/plugins/commit-message-length-validator/+doc/master/src/main/resources/Documentation/about.md[
Documentation] |
link:https://gerrit.googlesource.com/plugins/commit-message-length-validator/+doc/master/src/main/resources/Documentation/config.md[
Configuration]

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

Provides the ability to delete a project.

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

[[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] |
link:https://gerrit.googlesource.com/plugins/download-commands/+doc/master/src/main/resources/Documentation/about.md[
Documentation] |
link:https://gerrit.googlesource.com/plugins/download-commands/+doc/master/src/main/resources/Documentation/config.md[
Configuration]

[[gitiles]]
=== gitiles

Plugin running Gitiles alongside a Gerrit server.

link:https://gerrit-review.googlesource.com/admin/repos/plugins/gitiles[
Project]

[[hooks]]
=== hooks

This plugin runs server-side hooks on events.

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

[[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]
link:https://gerrit.googlesource.com/plugins/plugin-manager/+doc/master/src/main/resources/Documentation/about.md[
Documentation]
link:https://gerrit.googlesource.com/plugins/plugin-manager/+doc/master/src/main/resources/Documentation/config.md[
Configuration]

[[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] |
link:https://gerrit.googlesource.com/plugins/replication/+doc/master/src/main/resources/Documentation/about.md[
Documentation] |
link:https://gerrit.googlesource.com/plugins/replication/+doc/master/src/main/resources/Documentation/config.md[
Configuration]

[[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] |
link:https://gerrit.googlesource.com/plugins/reviewnotes/+doc/master/src/main/resources/Documentation/about.md[
Documentation]

[[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] |
link:https://gerrit.googlesource.com/plugins/webhooks/+doc/master/src/main/resources/Documentation/about.md[
Documentation] |
link:https://gerrit.googlesource.com/plugins/webhooks/+doc/master/src/main/resources/Documentation/config.md[
Configuration]

[[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
---------
