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

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.

[[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/projects/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]

[[cookbook-plugin]]
=== cookbook-plugin

Sample plugin to demonstrate features of Gerrit's plugin API.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/cookbook-plugin[
Project] |
link:https://gerrit.googlesource.com/plugins/cookbook-plugin/+doc/master/src/main/resources/Documentation/about.md[
Documentation]

[[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/projects/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]

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

[[review-strategy]]
=== review-strategy

This plugin allows users to configure different review strategies.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/review-strategy[
Project] |
link:https://gerrit.googlesource.com/plugins/review-strategy/+/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.

[[other-plugins]]
== Other Plugins

Besides core plugins there are many other Gerrit plugins available.
These plugins are developed and maintained by different parties.
The Gerrit Project doesn't guarantee proper functionality of any of
these plugins.

The Gerrit Project doesn't provide binaries for these plugins, but
there are some public services that offer the download of pre-built
plugin jars:

* link:https://gerrit-ci.gerritforge.com[CI Server from GerritForge]
* link:http://builds.quelltextlich.at/gerrit/nightly/index.html[
  CI Server from Quelltextlich]

The following list gives an overview about available plugins, but the
list may not be complete. You may discover more plugins on
link:https://gerrit-review.googlesource.com/#/admin/projects/?filter=plugins%252F[
gerrit-review].

[[admin-console]]
=== admin-console

Plugin to provide administrator-only functionality, intended to
simplify common administrative tasks. Currently providing user-level
information. Also providing access control information by project or
project/account.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/admin-console[
Project] |
link:https://gerrit.googlesource.com/plugins/admin-console/+doc/master/src/main/resources/Documentation/about.md[
Documentation]

[[avatars-external]]
=== avatars/external

This plugin allows to use an external url to load the avatar images
from.

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

[[avatars-gravatar]]
=== avatars/gravatar

Plugin to display user icons from Gravatar.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/avatars/gravatar[
Project]

[[branch-network]]
=== branch-network

This plugin allows the rendering of Git repository branch network in a
graphical HTML5 Canvas. It is mainly intended to be used as a
"project link" in a gitweb configuration or by other Gerrit GWT UI
plugins to be plugged elsewhere in Gerrit.

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

[[changemessage]]
=== changemessage

This plugin allows to display a static info message on the change screen.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/changemessage[
Project] |
link:https://gerrit.googlesource.com/plugins/changemessage/+doc/master/src/main/resources/Documentation/about.md[
Plugin Documenatation] |
link:https://gerrit.googlesource.com/plugins/changemessage/+doc/master/src/main/resources/Documentation/config.md[
Configuration]

[[codenvy]]
=== codenvy

Plugin to allow to edit code on-line on either an existing branch or an
active change using the link:http://codenvy.com[Codenvy] cloud
development platform.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/codenvy[
Project]

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

Provides the ability to delete a project.

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

[[egit]]
=== egit

This plugin provides extensions for easier usage with EGit.

The plugin adds a download command for EGit that allows to copy only
the change ref into the clipboard. The change ref is needed for
downloading a Gerrit change from within EGit.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/egit[
Project] |
link:https://gerrit.googlesource.com/plugins/egit/+doc/master/src/main/resources/Documentation/about.md[
Documentation]

[[force-draft]]
=== force-draft

Provides an ssh command to force a change or patch set to draft status.
This is useful for administrators to be able to easily completely
delete a change or patch set from the server.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/force-draft[
Project]

[[gitblit]]
=== gitblit

GitBlit code-viewer plugin with SSO and Security Access Control.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/gitblit[
Project]

[[github]]
=== github

Plugin to integrate with GitHub: replication, pull-request to Change-Sets

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/github[
Project]

[[gitiles]]
=== gitiles

Plugin running Gitiles alongside a Gerrit server.

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

[[imagare]]
=== imagare

The imagare plugin allows Gerrit users to upload and share images.

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

[[importer]]
=== importer

The importer plugin allows to import projects from one Gerrit server
into another Gerrit server.

Projects can be imported while both source and target Gerrit server
are online. There is no downtime required.

The git repository and all changes of the project, including approvals
and review comments, are imported. Historic timestamps are preserved.

Project imports can be resumed. This means a project team can continue
to work in the source system while the import to the target system is
done. By resuming the import the project in the target system can be
updated with the missing delta.

The importer plugin can also be used to copy a project within one Gerrit
server, and in combination with the link:#delete-project[delete-project]
plugin it can be used to rename a project.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/importer[
Project] |
link:https://gerrit.googlesource.com/plugins/importer/+doc/master/src/main/resources/Documentation/about.md[
Documentation]

[[its-plugins]]
=== Issue Tracker System Plugins

Plugins to integrate with issue tracker systems (ITS), that (based
on events in Gerrit) allows to take actions in the ITS. For example,
they can add comments to bugs, or change status of bugs.

All its-plugins have a common base implementation which is stored in
the `its-base` project. `its-base` is not a plugin, but just a
framework for the ITS plugins which is packaged within each ITS plugin.

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

[[its-bugzilla]]
==== its-bugzilla

Plugin to integrate with Bugzilla.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/its-bugzilla[
Project] |
link:https://gerrit.googlesource.com/plugins/its-bugzilla/+doc/master/src/main/resources/Documentation/about.md[
Documentation]

[[its-jira]]
==== its-jira

Plugin to integrate with Jira.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/its-jira[
Project] |
link:https://gerrit.googlesource.com/plugins/its-jira/+doc/master/src/main/resources/Documentation/config.md[
Configuration]

[[its-rtc]]
==== its-rtc

Plugin to integrate with IBM Rational Team Concert (RTC).

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/its-rtc[
Project] |
link:https://gerrit.googlesource.com/plugins/its-rtc/+doc/master/src/main/resources/Documentation/config.md[
Configuration]

[[its-storyboard]]
==== its-storyboard

Plugin to integrate with Storyboard task tracking system.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/its-storyboard[
Project] |
link:https://gerrit.googlesource.com/plugins/its-storyboard/+doc/master/src/main/resources/Documentation/about.md[
Documentation]

[[javamelody]]
=== javamelody

This plugin allows to monitor the Gerrit server.

This plugin integrates JavaMelody in Gerrit in order to retrieve live
instrumentation data from Gerrit.

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

[[labelui]]
=== labelui

The labelui plugin adds a user preference that allows users to choose a
table control to render the labels/approvals on the change screen
(similar to how labels/approvals were rendered on the old change
screen).

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/labelui[
Project] |
link:https://gerrit.googlesource.com/plugins/labelui/+doc/master/src/main/resources/Documentation/about.md[
Documentation]

[[menuextender]]
=== menuextender

The menuextender plugin allows Gerrit administrators to configure
additional menu entries from the WebUI.

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

[[motd]]
=== motd

This plugin can output messages to clients when pulling/fetching/cloning
code from Gerrit Code Review. If the client (and transport mechanism)
can support sending the message to the client, it will be displayed to
the user (usually prefixed by “remote: ”), but will be silently
discarded otherwise.

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

[[oauth-authentication-provider]]
=== OAuth authentication provider
This plugin enables Gerrit to use OAuth2 protocol for authentication.
Two different OAuth providers are supported:

* GitHub
* Google

https://github.com/davido/gerrit-oauth-provider[Project] |
https://github.com/davido/gerrit-oauth-provider/wiki/Getting-Started[Configuration]

[[owners]]
=== owners
This plugin provides a Prolog predicate `add_owner_approval/3` that
appends `label('Owner-Approval', need(_))` to a provided list.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/owners[Project] |
link:https://gerrit.googlesource.com/plugins/owners/+/refs/heads/master/README.md[Documentation]

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

This plugin adds support for project specific download commands.

Project specific download commands that are defined on a parent project
are inherited by the child projects. Child projects can overwrite the
inherited download command or remove it by assigning no value to it.

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

[[quota]]
=== quota

This plugin allows to enforce quotas in Gerrit.

To protect a Gerrit installation it makes sense to limit the resources
that a project or group can consume. To do this a Gerrit administrator
can use this plugin to define quotas on project namespaces.

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

[[ref-protection]]
=== ref-protection

A plugin that protects against commits being lost.

Backups of deleted or non-fast-forward updated refs are created under the
`refs/backups/` namespace.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/ref-protection[
Project] |
link:https://gerrit.googlesource.com/plugins/ref-protection/+/refs/heads/stable-2.11/src/main/resources/Documentation/about.md[
Documentation]

[[reparent]]
=== reparent

A plugin that provides project reparenting as a self-service for project owners.

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

[[reviewers]]
=== reviewers

A plugin that allows adding default reviewers to a change.

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

[[reviewers-by-blame]]
=== reviewers-by-blame

A plugin that allows automatically adding reviewers to a change from
the git blame computation on the changed files. It will add the users
that authored most of the lines touched by the change, since these
users should be familiar with the code and can mostly review the
change.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/reviewers-by-blame[
Project] |
link:https://gerrit.googlesource.com/plugins/reviewers-by-blame/+doc/master/src/main/resources/Documentation/about.md[
Documentation] |
link:https://gerrit.googlesource.com/plugins/reviewers-by-blame/+doc/master/src/main/resources/Documentation/config.md[
Configuration]

[[groovy-provider]]
=== scripting/groovy-provider

This plugin provides a Groovy runtime environment for Gerrit plugins in Groovy.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/scripting/groovy-provider[
Project] |
link:https://gerrit.googlesource.com/plugins/scripting/groovy-provider/+doc/master/src/main/resources/Documentation/about.md[
Documentation]

[[scala-provider]]
=== scripting/scala-provider

This plugin provides a Scala runtime environment for Gerrit plugins in Scala.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/scripting/scala-provider[
Project] |
link:https://gerrit.googlesource.com/plugins/scripting/scala-provider/+doc/master/src/main/resources/Documentation/about.md[
Documentation]

[[server-config]]
=== server-config

This plugin enables access (download and upload) to the server config
files.  It may be used to change Gerrit config files (like
`etc/gerrit.config`) in cases where direct access to the file system
where Gerrit's config files are stored is difficult or impossible to
get.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/scripting/server-config[
Project]

[[serviceuser]]
=== serviceuser

This plugin allows to create service users in Gerrit.

A service user is a user that is used by another service to communicate
with Gerrit. E.g. a service user is needed to run the Gerrit Trigger
Plugin in Jenkins. A service user is not able to login into the Gerrit
WebUI and it cannot push commits or tags.

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

[[uploadvalidator]]
=== uploadvalidator

This plugin allows to configure upload validations per project.

Project owners can configure blocked file extensions, required footers
and a maximum allowed path length. Pushes of commits that violate these
settings are rejected by Gerrit.

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

[[websession-flatfile]]
=== websession-flatfile

This plugin replaces the built-in Gerrit H2 based websession cache with
a flatfile based implementation. This implemantation is shareable
amongst multiple Gerrit servers, making it useful for multi-master
Gerrit installations.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/scripting/websession-flatfile[
Project] |
link:https://gerrit.googlesource.com/plugins/websession-flatfile/+doc/master/src/main/resources/Documentation/about.md[
Documentation] |
link:https://gerrit.googlesource.com/plugins/websession-flatfile/+doc/master/src/main/resources/Documentation/config.md[
Configuration]

[[wip]]
=== wip

This plugin adds a new button that allows a change owner to set a
change to Work In Progress, and a button to change from WIP back to a
"Ready For Review" state.

Any change in the WIP state will not show up in anyone's Review
Requests. Pushing a new patchset will reset the change to Review In
Progress.

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

[[x-docs]]
=== x-docs

This plugin serves project documentation as HTML pages.

link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/scripting/x-docs[
Project] |
link:https://gerrit.googlesource.com/plugins/x-docs/+doc/master/src/main/resources/Documentation/about.md[
Documentation] |
link:https://gerrit.googlesource.com/plugins/x-docs/+doc/master/src/main/resources/Documentation/config.md[
Configuration]


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

SEARCHBOX
---------
