Review Bot Documentation¶
Welcome to Review Bot!
Review Bot automates parts of the code review process, using a wide range of industry-standard code checking tools to look over your code and catch problems so your developers can focus on the bigger picture.
It is:
Made for Review Board: Tools are configured through Review Board’s existing Integrations functionality, letting you choose exactly when and how tools are run within your organization.
Scalable: Review Bot is built using Celery and can scale out to service very large Review Board deployments.
Extensible: Writing plugins is simple using a convenient API to retrieve code files and craft a review. If more power is needed, tools can access the full Review Board API.
Premium support for Review Bot is included with any Review Board support contract.
Getting Started¶
Review Bot 4.0 supports Review Board 5.0-7.0, and Python 3.8-3.12.
A Review Bot setup consists of three pieces:
The Review Bot extension for Review Board.
A message broker (such as RabbitMQ).
At least one Review Bot worker (either on the Review Board server or somewhere else in your network), which will run the code checking tools.
There are two official ways to install Review Bot:
Once Review Bot is installed, you’ll need to configure the extension and the workers:
Ready to upgrade to a new version of Review Bot?
This will guide you through any installation and configuration changes you need to make.
Available Tools¶
The following tools are supported by Review Bot:
C/C++¶
Clang Static Analyzer - Compiles and checks C/C++/Objective-C code for a variety of problems
Cppcheck - Checks C/C++ code for undefined behavior and dangerous coding constructs
CppLint - Checks C++ code against Google’s style guide
Go¶
Java¶
checkstyle - Checks Java code for code formatting issues and code standard inconsistencies
JavaScript¶
JSHint - Checks JavaScript code for common errors
Python¶
doc8 - Check ReStructuredText documentation for styling and syntax errors
flake8 - Checks Python code using a variety of common code Python quality tools
pycodestyle - Checks Python code for code formatting issues
pydocstyle - Checks Python docstrings for errors and common formatting issues
pyflakes - Checks Python code for missing imports, unused or undefined variables or functions, and more
Ruby¶
RuboCop - Checks Ruby code for common code formatting issues
Rust¶
Cargo Tool - Checks Rust code for errors and suspicious constructs
rustfmt - Checks Rust code for code formatting issues based on the automatic formatting rules in
rustfmt
Shell Scripts¶
ShellCheck - Checks Bash/sh scripts for common problems and misused commands
Multi-Language Tools¶
FBInfer - Checks a wide range of programming languages for potential errors
PMD - Checks code in a variety of programming languages for syntax errors and other problems
Review Bot Secret Scanner - Checks source code and configuration files for accidental inclusion of sensitive keys and credentials
Extending Review Bot¶
Review Bot can be extended through custom tools. To do this, you’ll need to
create a reviewbot.tools.base.tool.BaseTool
subclass, registered
through the reviewbot.tools
Python entrypoint in a Python package.
Unit tests can be built using the reviewbot.tools.testing
module.
See the module and class reference for details.