Configuration¶
Extension Configuration¶
After the Review Bot extension is enabled, it needs to be configured. Open the Review Board administration page and click Extensions in the top bar. Under the extension called “Review Bot”, click Configure to set up the extension.
There are two items that need to be set here: the user, and the broker URL.
Review Bot User¶
Review Bot uses a special user account to post reviews. If you were previously using Review Bot 0.1 or 0.2, select the existing Review Bot user. Otherwise, click create a new user for Review Bot.
Broker URL¶
For the broker URL, put in the URL of your RabbitMQ or other Celery broker. For example, if your broker is running on the same system as your Review Board server, this might look something like:
amqp://guest:guest@localhost:5672//
Checking Status and Updating Tools List¶
After saving the configuration, the page will attempt to contact the broker and check for workers. The Broker Status box will indicate whether everything is set up correctly. This will also save a list of the available tools, which is required for setting up tool configurations.
Tool Configurations¶
To set up a tool to run, open the Review Board administration page and click Integrations in the top bar. Under the Review Bot section, click Add a new configuration.
Each tool configuration allows you to specify a tool to run, the conditions for when that tool is run, and some options for how it is run.
First, give the configuration a name. You can then choose a set of conditions for when the tool should run. If you would like it to run on every change, choose Always match. Otherwise, you can select a set of conditions (such as a specific repository, or an assigned review group).
Next, choose which tool to run. Once a tool is selected, additional tool-specific options may appear.
Note
It’s important to be aware that tools will only run if they’re currently available on a running worker node. If your worker dies, items will be added to the queue but will not run. In this case, the jobs will appear on the review request but will show as timed out.
Note
Some tools may require extra configuration on the worker. Details on this can be found below.
Worker Configuration¶
In most cases, the Review Bot worker runs without any configuration other than the broker URL which is part of the command line.
There are a few special situations which do require additional configuration in a special Python file which defines variables for the worker.
The location of this file depends on the operating system that the worker is
running on. On Linux, the file should be located at
/etc/xdg/reviewbot/config.py
. On Mac OS, the file is
/Library/Application Support/reviewbot/config.py
.
Repositories¶
Some tools require a full clone of the source repository, because they may need access to all files, not just those which have been changed.
Right now, Review Bot supports full repository access for Git and hg repositories.
This requires configuring each repository on the worker, which allows different
repositories to be spread across different hosts. These are specified in the
worker config file as a list of dictionaries, with three fields. The name
should be the configured name of the repository inside the Review Board admin
interface. The type
should currently be git
or hg
, and clone_path
should be set to the git or hg URL (possibly including credentials) to clone the
repository from.
The repository path
or mirror_path
field must be the URL of a repository
which is accessible to the Review Bot worker. If you use a local file path for
your repository and the worker is not running on the same host as the Review
Board server, you must also expose the repository over http and set
the mirror_path
.
repositories = [
{
'name': 'Review Board',
'type': 'git',
'clone_path': 'https://github.com/reviewboard/reviewboard.git',
},
{
'name': 'Git',
'type': 'git',
'clone_path': 'https://github.com/git/git.git',
},
{
'name': 'MercurialRockz',
'type': 'hg',
'clone_path': 'https://www.mercurial-scm.org/repo/hg/',
},
]
Automatically Fetch Repositories From Review Board¶
New in version 2.0.
If you have many workers and repositories, it may not be feasible to configure
repositories by hand. You can also configure a list of Review Board servers to
fetch all supported repositories from. If you disabled anonymous read-only
access
you need to register a separate user and generate an API token. The
access via token can be read-only
.
Be aware that manually configured repositories will override any automatically fetched configuration of a duplicate repository entry.
The repository path
or mirror_path
field must be the URL of a repository
which is accessible to the Review Bot worker. If you use a local file path for
your repository and the worker is not running on the same host as the Review
Board server, you must also expose the repository over HTTP and set
the mirror_path
.
review_board_servers = [
{
'user': 'reviewbot',
'token': 'dd16b7208a2a8c88be6788c22340ae46823fc57e',
'url': 'http://reviewboard',
},
{
'url': 'http://rb',
},
]