= 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. [[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] [[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] [[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] [[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] [[review-strategy]] === review-strategy This plugin allows users to configure different review strategies. link:https://gerrit-review.googlesource.com/admin/repos/plugins/review-strategy[ Project] | link:https://gerrit.googlesource.com/plugins/review-strategy/+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. [[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 is one public service that offers the download of pre-built plugin jars: * link:https://gerrit-ci.gerritforge.com[CI Server from GerritForge] The following list gives an overview of available plugins, but the list may not be complete. You may discover more plugins on link:https://gerrit-review.googlesource.com/admin/repos/?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/repos/plugins/admin-console[ Project] | link:https://gerrit.googlesource.com/plugins/admin-console/+doc/master/src/main/resources/Documentation/about.md[ Documentation] [[analytics]] === analytics Plugin to extract commit and review data from Gerrit projects and expose aggregated metrics over REST and SSH API. Metrics are extracted in JSON format with one record per line, ready to be archived and processed with popular BigData transformation tools such Apache Spark or published and visualized in dashboards. link:https://gerrit-review.googlesource.com/admin/repos/plugins/analytics[Project] | link:https://gerrit.googlesource.com/plugins/analytics/+doc/master/README.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/repos/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/repos/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/repos/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/repos/plugins/changemessage[ Project] | link:https://gerrit.googlesource.com/plugins/changemessage/+doc/master/src/main/resources/Documentation/about.md[ Plugin Documentation] | link:https://gerrit.googlesource.com/plugins/changemessage/+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] [[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/repos/plugins/egit[ Project] | link:https://gerrit.googlesource.com/plugins/egit/+doc/master/src/main/resources/Documentation/about.md[ Documentation] [[emoticons]] === emoticons This plugin allows users to see emoticons in comments as images. link:https://gerrit-review.googlesource.com/admin/repos/plugins/emoticons[ Project] | link:https://gerrit.googlesource.com/plugins/emoticons/+doc/master/src/main/resources/Documentation/about.md[ Documentation] | link:https://gerrit.googlesource.com/plugins/emoticons/+doc/master/src/main/resources/Documentation/config.md[ Configuration] [[gitblit]] === gitblit GitBlit code-viewer plugin with SSO and Security Access Control. link:https://gerrit-review.googlesource.com/admin/repos/plugins/gitblit[ Project] [[github]] === github Plugin to integrate with GitHub: replication, pull-request to Change-Sets link:https://gerrit-review.googlesource.com/admin/repos/plugins/github[ Project] [[gitiles]] === gitiles Plugin running Gitiles alongside a Gerrit server. link:https://gerrit-review.googlesource.com/admin/repos/plugins/gitiles[ Project] [[imagare]] === imagare The imagare plugin allows Gerrit users to upload and share images. link:https://gerrit-review.googlesource.com/admin/repos/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/repos/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/repos/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/repos/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/repos/plugins/its-jira[ Project] | link:https://gerrit.googlesource.com/plugins/its-jira/+doc/master/src/main/resources/Documentation/config.md[ Configuration] [[its-phabricator]] ==== its-phabricator Plugin to integrate with Phabricator. link:https://gerrit-review.googlesource.com/admin/repos/plugins/its-phabricator[ Project] | link:https://gerrit.googlesource.com/plugins/its-phabricator/+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/repos/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/repos/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/repos/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/repos/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/repos/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] [[metrics-reporter-elasticsearch]] === metrics-reporter-elasticsearch This plugin reports Gerrit metrics to Elasticsearch. link:https://gerrit-review.googlesource.com/admin/repos/plugins/metrics-reporter-elasticsearch[ Project]. [[metrics-reporter-graphite]] === metrics-reporter-graphite This plugin reports Gerrit metrics to Graphite. link:https://gerrit-review.googlesource.com/admin/repos/plugins/metrics-reporter-graphite[ Project]. [[metrics-reporter-jmx]] === metrics-reporter-jmx This plugin reports Gerrit metrics to JMX. link:https://gerrit-review.googlesource.com/admin/repos/plugins/metrics-reporter-jmx[ Project]. [[metrics-reporter-prometheus]] === metrics-reporter-prometheus This plugin exposes Gerrit metrics for consumption by Prometheus. link:https://gerrit-review.googlesource.com/admin/repos/plugins/metrics-reporter-prometheus[ Project]. [[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/repos/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/repos/plugins/owners[Project] | link:https://gerrit.googlesource.com/plugins/owners/+doc/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/repos/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/repos/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] [[readonly]] === readonly A plugin that makes the Gerrit server read-only by rejecting git pushes, blocking HTTP PUT/POST/DELETE requests, and disabling SSH commands. link:https://gerrit-review.googlesource.com/admin/repos/plugins/readonly[ Project] | link:https://gerrit.googlesource.com/plugins/readonly/+doc/master/src/main/resources/Documentation/about.md[ Documentation] | link:https://gerrit.googlesource.com/plugins/readonly/+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/repos/plugins/ref-protection[ Project] | link:https://gerrit.googlesource.com/plugins/ref-protection/+doc/master/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/repos/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/repos/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/repos/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/repos/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/repos/plugins/scripting/scala-provider[ Project] | link:https://gerrit.googlesource.com/plugins/scripting/scala-provider/+doc/master/src/main/resources/Documentation/about.md[ Documentation] [[scripts]] === scripts Repository containing a collection of Gerrit scripting plugins that are intended to provide simple and useful extensions. Groovy and Scala scripts require the installation of the corresponding scripting/*-provider plugin in order to be loaded into Gerrit. link:https://gerrit-review.googlesource.com/admin/repos/plugins/scripts[Project] link:https://gerrit.googlesource.com/plugins/scripts/+doc/master/README.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/repos/plugins/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/repos/plugins/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/repos/plugins/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] [[verify-status]] === verify-status This plugin adds a separate channel for Gerrit to store test metadata and view them on the Gerrit UI. The metadata can be stored in the Gerrit database or in a completely separate datastore. link:https://gerrit-review.googlesource.com/admin/repos/plugins/verify-status[ Project] | link:https://gerrit.googlesource.com/plugins/verify-status/+doc/master/src/main/resources/Documentation/about.md[ Documentation] | link:https://gerrit.googlesource.com/plugins/verify-status/+doc/master/src/main/resources/Documentation/database.md[ Configuration] [[websession-flatfile]] === websession-flatfile This plugin replaces the built-in Gerrit H2 based websession cache with a flatfile based implementation. This implementation is shareable among multiple Gerrit servers, making it useful for multi-master Gerrit installations. link:https://gerrit-review.googlesource.com/admin/repos/plugins/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] [[x-docs]] === x-docs This plugin serves project documentation as HTML pages. link:https://gerrit-review.googlesource.com/admin/repos/plugins/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 ---------