blob: 97327b69e1d88bb9e30df8e7cc3d5c2eaf1a6ebf [file] [log] [blame] [view]
Quick Install Guide
===================
For general instructions on how to enable and configure an its plugin
please refer to the general [configuration documentation][config-doc].
Instructions in this document are specific to the @PLUGIN@ plugin.
Install Steps:
1. [Check Storyboard REST API availability][rest-enabled]
2. [Connection Configuration][its-connection].
3. [Verify access to Storyboard][access-enabled]
4. [Associate Gerrit changes with Storyboard stories and tasks][its-associate-change].
5. [Configure the actions][its-actions] that the plugin will take on a Gerrit change update.
6. [Install the plugin][its-install]
7. [Enable the @PLUGIN@ plugin][its-enable] for the Gerrit project.
8. [Testing][testing]
[rest-enabled]: #rest-enabled
<a name="rest-enabled">Checking REST API availability</a>
---------------------------------------------------------
This plugin will connect to Storyboard via it's REST endpoints.
Make sure that the Storyboard REST API is up and running.
Assuming the Storyboard instance you want to connect to is at
`http://my_storyboard_instance.com/`, open
```
http://my_storyboard_instance.com/api/v1/systeminfo
```
in your browser. If you get a xml response page without errors, the REST
interface is enabled.
If you get an error page then you'll need to enable the Storyboard REST API.
[its-connection]: #its-connection
<a name="its-connection">Connection Configuration</a>
-----------------------------------------------------
In order for the @PLUGIN@ plugin to connect to the REST service of your
Storyboard instance, the url and credentials are required in
your Gerrit site's `etc/gerrit.config` or `etc/secure.config` under
the `@PLUGIN@` section.
Example:
```
[@PLUGIN@]
url=https://my_storyboard_instance.com
password=STORYBOARD_USER_AUTH_TOKEN
```
[access-enabled]: #access-enabled
<a name="access-enabled">Check Accessibility</a>
---------------------------------------------------------
This plugin uses the Storyboard REST endpoints to POST updates. Make sure
that the STORYBOARD_USER_AUTH_TOKEN has access to update Storyboard stories
and tasks. To verify this use the [Storyboard story API] from the Gerrit sever
to post an update. If it fails to update the story you'll need to make the
necessary changes to allow access between the Gerrit and Storyboard
servers.
[its-associate-change]: #its-associate-change
<a name="its-associate-change">Associating Gerrit Changes</a>
-------------------------------------------------------------
In order for the @PLUGIN@ plugin to associate a Gerrit change with
a Storyboard story and task, a Gerrit commentlink needs to be
defined in `etc/gerrit.config`
Example:
```
[commentlink "story"]
match = "\\b[Ss]tory:? #?(\\d+)"
link = "http://my_storyboard_instance.com/#!/story/$1"
html = ""
[commentLink "@PLUGIN@"]
match = "\\b[Tt]ask:? #?(\\d+)"
link = "task: $1"
html = ""
```
[its-actions]: #its-actions
<a name="its-actions">Configure its actions</a>
-----------------------------------------------
The @PLUGIN@ plugin can take actions when there are updates
to Gerrit changes. Users can define what events will trigger
which actions. To configure this a `etc/its/actions.config`
file is required.
Example of actions.config:
```
# Add a custom comment when a comment has been added to the associated Gerrit change.
[rule "update-comment"]
event-type = comment-added
action = add-velocity-comment inline $commenter-name commented on change ${its.formatLink($change-url, $subject)}
# add a comment only when a user leaves a -2 or a -1 vote on the Code-Review label on the associated Gerrit change.
[rule "comment-on-negative-vote"]
event-type = comment-added
approval-Code-Review = -2,-1
action = add-comment Boo-hoo, go away!
# add a standard comment when there is a status update to the associated Gerrit change.
[rule "comment-on-status-update"]
event-type = patchset-created,change-abandoned,change-restored,change-merged
action = add-standard-comment
# set storyboard task status to 'review' when a patch is uploaded or when a change is restored
[rule "change-in-progress"]
event-type = patchset-created,change-restored
action = set-status REVIEW
```
*_NOTE_: A Gerrit restart is required to update these settings.
### <a id="task-status"></a>TaskStatus
Valid task status: TODO, REVIEW, INPROGRESS, MERGED, and INVALID
[its-install]: #its-install
<a name="its-install">Install the Plugin</a>
-------------------------------------------------------
In order to install the @PLUGIN@ plugin simply copy the built jar
file into the `plugins` folder.
[its-enable]: #its-enable
<a name="its-enable">Enable the Plugin</a>
-------------------------------------------------------
In order to enable the @PLUGIN@ plugin, an entry must be
added to the project.config file in refs/meta/config.
To enable the plugin for all projects a single entry can
be added to project.config in All-Projects.
Example:
```
[plugin "@PLUGIN@"]
enabled = true
```
[testing]: #testing
<a name="testing">Testing the Plugin</a>
-------------------------------------------------------
Create a new Gerrit change with a commit message that contains a reference
to the Storyboard story and task.
Example:
```
My change to test integration
This is an example change to test storyboard integration.
Story: 123
Task: 1000
Change-Id: I3912f42c371023eb8bd048a5b17b776801b405e2
```
Make an update to the Gerrit change (abandone, restore, submit, etc..),
the @PLUGIN@ plugin should automatically update the corresponding story
and task in Storyboard.
SEE ALSO
--------
* More detailed information on actions is found in the [rules documentation][rules-doc]
[Storyboard story API]: http://docs.openstack.org/infra/storyboard/webapi/v1.html#put--v1-stories