blob: adcd3abe7501d6962a9f26a84f434f69070df22e [file] [log] [blame] [view]
# Alternative Plugins
Similar functionality is provided by the following plugins:
* [find-owners](#findOwners) plugin
* [owners](#owners) plugin
## <a id="findOwners">find-owners plugin (deprecated)
**Status:** deprecated, from Gerrit 3.4 on the `code-owners` plugin should be used instead\
**Repository:** [plugins/find-owners](https://gerrit-review.googlesource.com/admin/repos/plugins/find-owners)\
**Documentation:** [about](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/resources/Documentation/about.md), [syntax](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/resources/Documentation/syntax.md), [REST API](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/resources/Documentation/rest-api.md), [config](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/resources/Documentation/config.md)
### <a id="findOwnersCompatibility">Compatibility with the code-owners plugin
The [find-owners](backend-find-owners.html) backend in the`code-owners` plugin
supports the same syntax for `OWNERS` files as the `find-owners` plugin. This
means that existing `OWNERS` files continue to work with the `code-owners`
plugin and no migration for the `OWNERS` files is required.
**IMPORTANT:** When migrating to the `code-owners` plugin, make sure that it is
correctly configured (see [setup guide](setup-guide.html)).
**NOTE:** The REST API of the `code-owners` plugin is completely different than
the REST API of the `find-owners` plugin. This means callers of the REST API
must be adapted to the new API.
**NOTE:** The `OWNERS` syntax in the `code-owners` plugin supports some
additional features. This means that `OWNERS` files that work with the
`code-owners` plugin may not work with the `find-owners` plugin.
### <a id="findOwnersFunctionality">Functionality
* Basic support for defining code owners:
* Code owners can be specified in `OWNERS` files that can appear in any
directory in the source branch.
* Code owners can be specified by email.
* Inheritance from parent directories is supported and can be disabled.
* Including an `OWNERS` file from another directory in the same project or
from another project on the same host is possible (same branch is assumed).
* File globs can be used.
* See [documentation](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/resources/Documentation/syntax.md) for the supported syntax.
<br><br>
* Prolog rule to prevent submitting changes without owner approvals.
* A change can be exempted from owners approval by setting a footer in the
commit message.
<br><br>
* Basic UI:
* Supports to discover users that can grant owner approval on a change
(weighed suggestion) and add them as reviewer to the change.
* Missing owner approvals are visualized on a change.
* Owner approval is granted by voting on the `Code-Review` label.
<br><br>
* REST endpoints:
* [Action](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/java/com/googlesource/gerrit/plugins/findowners/Action.java) REST endpoint:
* `GET /changes/<change-id>/revisions/<revision-id>/find-owners`
* returns a [RestResult](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/java/com/googlesource/gerrit/plugins/findowners/RestResult.java) which contains:
* a file to list of owners map
* a list of owner infos with weight infos
* fields for debugging
* fields for change, patch set, current reviewers and changed files
* [GetOwners](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/java/com/googlesource/gerrit/plugins/findowners/GetOwners.java) REST endpoint:
* `GET /changes/<change-id>/owners`
* Delegates to Action REST endpoint (see above)
* Also see [REST endpoint documentation](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/resources/Documentation/rest-api.md)
## <a id="owners">owners plugin + owners-autoassign plugin
**Status:** maintained by the Gerrit open source community (no Google involvement)\
**Repository:** [plugins/owners](https://gerrit-review.googlesource.com/admin/repos/plugins/owners)\
**Documentation:** [readme](https://gerrit.googlesource.com/plugins/owners/+/HEAD/README.md), [config & syntax](https://gerrit.googlesource.com/plugins/owners/+/HEAD/owners/src/main/resources/Documentation/config.md)
### <a id="ownersCompatibility">Compatibility with the code-owners plugin
The `OWNERS` sytax that is used by the `owners` plugin is **not** compatible
with the `code-owners` plugin. This means any migration from the `owners` plugin
to the `code-owners` plugin (and vice versa) requires migrating all existing
`OWNERS` files.
**NOTE:** It would be feasible to implement a new [backend](backends.html) in
the `code-owners` plugin that supports the syntax of the `owners` plugin
(contributions are welcome).
**NOTE:** The `owners` plugin supports groups as code owners, which are not
supported by the `code-owners` plugin.
### <a id="ownersFunctionality">Functionality
* Basic support for defining code owners in the source branch and globally for
a repository:
* Code owners can be specified in `OWNERS` files that can appear in any
directory in the source branch.
* Code owners can be specified on repository level by an `OWNERS` file in
the `refs/meta/config` branch.
* Code owners can be specified by email or full name.
* Groups can be specified as code owners (by group name and group UUID).
* Inheritance from parent directories is supported and can be disabled.
* Regular expressions can be used.
* Syntax is based on YAML.
* See [documentation](https://gerrit.googlesource.com/plugins/owners/+/HEAD/owners/src/main/resources/Documentation/config.md) for the supported syntax.
<br><br>
* Prolog rule to prevent submitting changes without code owner approvals.
* The label on which code owners must vote is configurable.
<br><br>
* The UI visualizes whose approval is needed for submit.
* Implemented by the `need` description of the Prolog rule, which will be
shown in the UI (the plugin doesn't contain any UI code)
<br><br>
* Auto-adding of code owners as reviewers.
---
Back to [@PLUGIN@ documentation index](index.html)
Part of [Gerrit Code Review](../../../Documentation/index.html)