blob: 4ad3c978ebc03a9a1a266319e952373c5dca765e [file] [log] [blame] [view]
Common configuration for `its-base`-based plugins
=================================================
#### Table of Contents
* [Identifying ITS ids][identifying-its-ids]
* [Enabling ITS integration][enabling-its-integration]
* [Configuring rules of when to take which actions in the ITS][configure-rules]
* [Legacy configuration][legacy-configuration]
[identifying-its-ids]: #identifying-its-ids
<a name="identifying-its-ids">Identifying ITS ids</a>
-----------------------------------------------------
In order to extract ITS ids from commit messages, @PLUGIN@ uses
[commentlink][upstream-comment-link-doc]s of name "`@PLUGIN@`".
The first group of `commentlink.@PLUGIN@.match` is considered the
issue id.
So for example having
```
[commentLink "@PLUGIN@"]
match = [Bb][Uu][Gg][ ]*([1-9][0-9]*)
html = "<a href=\"http://my.issure.tracker.example.org/show_bug.cgi?id=$1\">(bug $1)</a>"
association = SUGGESTED
```
in `etc/gerrit.config` would allow to match the issues `4711`, `167`
from a commit message like
```
Sample commit message relating to bug 4711, and bug 167.
```
By setting a `commentlink`'s `association` (see above's example), it
is possible to require commits to carry ITS references; the following
values are supported (default is `OPTIONAL`):
MANDATORY
: One or more issue-ids are required in the git commit message, otherwise
the git push will be rejected.
SUGGESTED
: Whenever the git commit message does not contain one or more issue-ids,
a warning message is displayed as a suggestion on the client.
OPTIONAL
: Bug-ids are liked when found in the git commit message, no warning is
displayed otherwise.
[enabling-its-integration]: #enabling-its-integration
<a name="enabling-its-integration">Enabling ITS integration</a>
---------------------------------------------------------------
It can be configured per project whether the issue tracker
integration is enabled or not. To enable the issue tracker integration
for a project the project must have the following entry in its
`project.config` file in the `refs/meta/config` branch:
```
[plugin "@PLUGIN@"]
enabled = true
```
If `plugin.@PLUGIN@.enabled` is not specified in the `project.config`
file the value is inherited from the parent project. If it is not
set on any parent project the issue integration is disabled for this
project.
By setting `plugin.@PLUGIN@.enabled` to true in the `project.config`
of the `All-Projects` project the issue tracker integration can be
enabled by default for all projects. During the initialization of the
plugin you are asked if the issue integration should be enabled by
default for all projects and if yes this setting in the
`project.config` of the `All-Projects` project is done automatically.
With this it is possible to support integration with multiple
issue tracker systems on a server. E.g. a project can choose if it
wants to enable integration with Jira or with Bugzilla.
If child projects must not be allowed to disable the issue tracker
system integration a project can enforce the issue tracker system
integration for all child projects by setting
`plugin.@PLUGIN@.enabled` to `enforced`.
The issue tracker system integration can be limited to specific
branches by setting `plugin.@PLUGIN@.branch`. The branches may be
configured using explicit branch names, ref patterns, or regular
expressions. Multiple branches may be specified.
E.g. to limit the issue tracker system integration to the `master`
branch and all stable branches the following could be configured:
```
[plugin "@PLUGIN@"]
enabled = true
branch = refs/heads/master
branch = ^refs/heads/stable-.*
```
[configure-rules]: #configure-rules
<a name="configure-rules">Configuring rules of when to take which actions in the ITS</a>
----------------------------------------------------------------------------------------
Setting up which event in Gerrit (E.g.: Change Merged”, or User
John Doe voted ‘+2 for Code-Review on a change”) should trigger
which action on the ITS (e.g.: Set issue's status to ‘Resolved’”) is
configured through a [rule base][rule-base] in
`etc/its/actions.config`.
[rule-base]: config-rulebase-common.html
[multiple-its]: #multiple-its
<a name="mutiple-its">Multiple ITS</a>
--------------------------------------
Although not a common setup the @PLUGIN@ plugin supports connecting
Gerrit to multiple issue tracking systems.
For example users may want to reference issues from two independent
issue tracking systems (i.e. a Bugzilla and a Jira instance). In
this configuration you can simply install both its plugins and
configure them as described.
In situations where users want to reference issues from multiple
instances of the same issue tracking system (i.e. two independent
Bugzilla instances) they can simply create two its-bugzilla plugin
files with different names (i.e. its-bugzilla-external.jar and
its-bugzilla-internal.jar). Gerrit will give each plugin the same
name as the file name (minus the extension). You can view the names
by going to the Gerrit UI under menu Plugins -> Installed. Now you
just need to use the appropriate name to configure each plugin.
[legacy-configuration]: #legacy-configuration
<a name="legacy-configuration">Legacy configuration</a>
-------------------------------------------------------
In this section we present the legacy configuration that uses
`etc/gerrit.config` directly. As this legacy part will be removed at
some point, please upgrade to the rule [rule based
approach][rule-base].
The following configuration settings are available:
`@PLUGIN@.commentOnChangeAbandoned`
: If true, abandoning a change adds an ITS comment to the change's
associated issue.
Default is `true`.
`@PLUGIN@.commentOnChangeCreated`
: If true, creating a change adds an ITS comment to the change's
associated issue.
Default is `false`.
`@PLUGIN@.commentOnChangeMerged`
: If true, merging a change's patch set adds an ITS comment to
the change's associated issue.
Default is `true`.
`@PLUGIN@.commentOnChangeRestored`
: If true, restoring an abandoned change adds an ITS comment to
the change's associated issue.
Default is `true`.
`@PLUGIN@.commentOnCommentAdded`
: If true, adding a comment and/or review to a change in Gerrit
adds an ITS comment to the change's associated issue.
Default is `true`.
`@PLUGIN@.commentOnFirstLinkedPatchSetCreated`
: If true, creating a patch set for a change adds an ITS comment
to the change's associated issue, if the issue has not been
mentioned in previous patch sets of the same change.
Default is `false`.
`@PLUGIN@.commentOnPatchSetCreated`
: If true, creating a patch set for a change adds an ITS comment
to the change's associated issue.
Default is `true`.
`@PLUGIN@.commentOnRefUpdatedGitWeb`
: If true, updating a ref adds a GitWeb link to the associated
issue.
Default is `true`.
[Back to @PLUGIN@ documentation index][index]
[index]: index.html