---
title: "Gerrit Code Review - Plugins"
permalink: {{ data.permalink }}.html
hide_sidebar: true
hide_navtoggle: true
toc: true
---

## About this page

This page lists all the [plugins] known to the Gerrit project, with their compatibility
status across the [supported] version branches. The list includes the [core] plugins.

Some plugins might be missing from this page. [Contributions] to add them are welcome,
if needed.

## Maintenance of plugins

These plugins are made by different parties and maintained to varying degrees, therefore
the Gerrit project does not guarantee their reliability. However, many are reliable and
valuable integrations across Gerrit deployments. The matrix detailed below lists the
maintainers for every maintained plugin.

There is a [parent] component for plugin-specific components/issues in Monorail.

Community members are welcome to propose themselves as [plugin maintainers]. This can be
done through the support [mailing] list:

1. Volunteering can be done for either plugins with no maintainers or plugins with just
   a few (or more) maintainers. Volunteering for unmaintained plugins is of course
   preferred. Maintainership comes with [ownership] expectations and responsibilities.
1. Maintainership is discussed privately by the current plugin maintainers, or the core
   [maintainers] if none.
1. The resulting verdict is then shared within the initial proposal ([mailing]) thread.
   Both the initial (new maintainer) proposal and verdict are shared transparently thus
   professionally that way.

## Plugin builds

There are build [ci-scripts] for most plugins. Each script builds that plugin against all
the branches it supports.

Some plugins don't have branches but still support them, through their `master` branch.

That CI is the public service that offers the download of pre-built plugin jar files.

## Compatibility matrix

Below, each plugin name has a link to that plugin's README page. A summary of the plugin
description is shown (first sentence, or '&#x20DE;' if none).

[Contributions] to provide descriptions or update existing ones are welcome.

The last known plugin activity state is shown by the following icons

| project   |           | repository |          |
|-----------|-----------|------------|----------|
| active    | &#x2705;  | has branch | &#x2325; |
| read-only | &#x1F512; | no branch  | &#x20DE; |

and the number of recent changes in the last 3 months is also shown.

Each branch name links to the corresponding CI jobs view, for the current build status.

* The last captured build result shows in the CI column next to that branch.
* Jenkins `SUCCESS` results show as &#x2705; while `FAILURE` or else show as &#x274C;.
* Otherwise, '&#x20DE;' shows if CI doesn't build a specific plugin branch or version.
   * [Contributions] to propose building those are also welcome if needed.
   * Fixing the failing builds is of course as welcome, first and foremost.
* Plugin tests are currently not executed by the formal Gerrit project CI.

Plugins either

* have a formal branch matching that Gerrit version (&#x2714;),
* or don't have that branch (&#x20DE;); again, versions may still build using `master`.
* '&#x20DE;' shows across for inactive plugins.

Plugins compatibility with each Gerrit version depends on their current CI build results.

Those build results likely change over time; this matrix is their last snapshot.
The matrix was last updated on <strong>{{ data.updated }}</strong>.

## Plugin Matrix

[ci-scripts]: https://gerrit.googlesource.com/gerrit-ci-scripts/+/refs/heads/master/jenkins/
[Contributions]: https://gerrit-review.googlesource.com/Documentation/dev-community.html#how-to-contribute
[core]: https://gerrit-review.googlesource.com/Documentation/config-plugins.html#core-plugins
[mailing]: https://www.gerritcodereview.com/support.html#general-support
[maintainers]: https://www.gerritcodereview.com/members.html#maintainers
[ownership]: https://gerrit-review.googlesource.com/Documentation/config-plugins.html#development
[parent]: https://bugs.chromium.org/p/gerrit/issues/list?q=component%3Aplugins
[plugins]: https://gerrit-review.googlesource.com/admin/repos/q/filter:plugins%252F
[plugin maintainers]: #plugin-maintainers
[supported]: https://www.gerritcodereview.com/support.html#supported-versions
