• Get Review Board
  • What's New
  • Products
  • Review Board Code review, image review, and document review
  • Documentation
  • Release Notes
  • Power Pack Enterprise integrations, reports, and enhanced document review
  • Try for 60 Days
  • Purchase
  • RBCommons Review Board as a Service, hosted by us
  • Pricing
  • RBTools Command line tools and Python API for Review Board
  • Documentation
  • Release Notes
  • Review Bot Automated code review, connecting tools you already use
  • Documentation
  • Release Notes
  • RB Gateway Manage Git and Mercurial repositories in your network
  • Documentation
  • Release Notes
  • Learn and Explore
  • What is Code Review?
  • Documentation
  • Frequently Asked Questions
  • Support Options
  • Third-Party Integrations
  • Demo
  • Review Board RBTools Power Pack Review Bot Djblets RB Gateway
    1. Review Bot
    2. Review Bot 3.0 Release Notes
  • Home
  • Review Bot 4.0 Release Notes
  • Review Bot 3.2 Release Notes
  • Review Bot 3.1.1 Release Notes
  • Review Bot 3.1 Release Notes
  • Review Bot 3.0 Release Notes
  • Review Bot 2.0.2 Release Notes
  • Review Bot 2.0.1 Release Notes
  • Review Bot 2.0 Release Notes
  • Review Bot 1.0.1 Release Notes
  • Review Bot 1.0 Release Notes
  • General Index
  • Release Notes
  • Review Bot 3.0 Release Notes¶

    Release date: March 29, 2022

    Compatibility¶

    Review Bot 3.0 includes full support for Review Board 3.0 and 4.0, and Python 2.7 and 3.6 through 3.10.

    New Features¶

    Official Docker Images¶

    We now have official Docker images for Review Bot workers. Going forward, all releases (including betas) will come with Docker images, ready for testing or deployment in your network.

    The base image (beanbag/reviewbot-base) can be used to easily build your own workers with exactly the tools you need. We also offer pre-built images containing tools for various languages.

    See the documentation to get started.

    JSON Management of Repositories¶

    The list of repositories or Review Board servers for full repository access can now be managed in external JSON files, using the repositories_config_path and reviewboard_servers_config_path settings.

    This is used by the new Docker images, and can help larger organizations better manage their available list of repositories through in-house automation.

    Improved Worker Experience¶

    The Review Bot worker is built on Celery, and the command line and startup screen mostly identified as Celery, making for a less-than-optimal experience. It also required running reviewbot worker as the command.

    Now, you simply run reviewbot, without the worker parameter, to start up Review Bot. The command line options are tailored for our use, rather than Celery’s.

    When starting up, Review Bot will log information about the available tools and repositories that can be used by that particular worker. The old Celery information is no longer displayed.

    New Worker Configuration Options¶

    The Review Bot worker now provides new options for configuring tool paths and cookie storage locations.

    Some of these replace legacy options, which will stop working in Review Bot 4. See Upgrading Review Bot for instructions.

    The location of the configuration file can also be changed by setting the REVIEWBOT_CONFIG_FILE environment variable.

    New Tools¶

    • Cargo Tool

      This tool can check Rust source code for errors and suspicious constructs.

      It supports running cargo clippy to perform lint checks on files, and cargo test to run unit test suites.

      This requires full repository access.

      Based on a patch by Jacob Blazusiak.

    • Secret Scanner

      This in-house tool checks source code and configuration files for any accidental inclusion of credentials or access keys. This can scan for the following:

      • AWS Access, KWS, and Secret keys

      • Asana access tokens

      • Discord bot tokens and webhook URLs

      • Dropbox tokens

      • Facebook access tokens

      • GitHub OAuth tokens (legacy and modern)

      • Google Cloud API keys, client IDs, and service accounts

      • Heroku API keys

      • JSON Web Tokens

      • Mailchimp API keys

      • Mailgun API keys

      • NPM access tokens

      • PGP private keys

      • PyPI API tokens

      • RSA private keys

      • SSH private keys

      • SSL certificates

      • Slack tokens and webhook URLs

      • Stripe access keys

      • Twilio API keys and account SIDs

      • Twitter OAuth tokens

      Based on a patch by Cecilia Wei.

    • FBInfer

      This tool from Facebook checks source code from a wide variety of programming languages, looking for many different kinds of issues.

      It can handle a number of build systems, such as Make, Gradle, Ant, XCode, and more.

      It’s a heavier-weight tool, requiring proper configuration. It also requires full repository access.

      Based on a patch by Jacob Blazusiak.

    • Go Fmt

      This tool checks Go source code for common formatting issues. If it finds a file that needs to be run through go fmt, it will leave a comment recommending that the user runs this and re-uploads the diff.,

      Based on a patch by Jacob Blazusiak.

    • Go Tool

      This tool checks Go source code for problems.

      It supports running go vet to perform lint checks on files, and go test to run unit test suites.

      This tool requires full repository access.

      Based on a patch by Jacob Blazusiak.

    • RuboCop

      This tool checks Ruby code for common errors, potential problems, and source code formatting issues.

      It can be customized to exclude particular cops/departments that should not be checked.

      If RuboCop knows any documentation relevant to an error, it will include a link in the comment, helping to more easily resolve the issue.

      Based on a patch by Cecilia Wei.

    • Rust Fmt

      This tool checks Go source code for common formatting issues. If it finds a file that needs to be run through rustfmt, it will leave a comment recommending that the user runs this and re-uploads the diff.,

      Based on a patch by Jacob Blazusiak.

    • ShellCheck

      This tool checks stanard shell scripts for common problems and misused commands.

      This supports *.bash, *.bats, *.dash, *.ksh, and *.sh files.

      It can be customized to exclude particular error codes, and to change the minimum level of severity for any errors that should be reported.

      Based on a patch by Cecilia Wei.

    Tool Enhancements¶

    • Most tools now include enhanced information when reporting errors in code, such as line and column numbers/ranges, severity warnings, and tool error codes.

    • Most tools have improved report parsing, helping ensure that reports from tools are always represented in some way, even when they fail to check code.

    • Tools that provide customizable file extensions for processing are now more forgiving when extra spaces or commas are present in the extension list.

    • Checkstyle XML configuration has improved.

      Checkstyle now supports specifying the name of a bundled XML ruleset file (either google_checks.xml or sun_checks.xml).

      This can be used instead of providing a full XML file during configuration.

      JAR files with custom XML files can also be provided in the java_classpaths and referenced during configuration.

    • Clang Static Analyzer now leaves comments when encountering syntax errors.

    • Cpplint and Cppcheck now checks for more standard C/C++ source and header file patterns.

    • Pyflakes now reports syntax errors.

    Removed Features¶

    • Buildbot is no longer supported.

      The support we had in prior releases was a prototype, and had a lot of issues. We are evaluating bringing Buildbot back as a separate integration for Review Board in the future.

    Extensibility¶

    • Reworked how tools are built.

      All tools in the worker should now subclass BaseTool. This provides a lot of new functionality for helping to rapidly construct a tool and process incoming requests, including:

      • Specifying dependencies through exe_dependencies.

      • Specifying supported file patterns through file_patterns.

      • Providing a standard logger through logger.

      • Determining whether a file can be checked through get_can_handle_file().

      • Building base command lines for tool execution through execute().

      The old legacy Tool still exists, but is deprecated and scheduled to be removed in Review Bot 4.

    • Added mixins for common tool functionality.

      This includes:

      • User-customizable file pattern options through FilePatternsFromSettingMixin.

      • Full repository access and execution through FullRepositoryToolMixin.

      • Java-based tool setup and execution through JavaToolMixin.

    • File.comment() now accepts standard arguments for columns, error codes, severity levels, and extra listed metadata.

    • Added a unit testing framework for tools.

      Unit tests can now be written for custom tools, providing helpers for writing simulation and integration tests.

      See reviewbot.tools.testing.testcases and reviewbot.tools.testing.decorators for information.

    Extension Bug Fixes¶

    • Fixed a crash that could occur when checking worker status if the worker returns an error message or an unexpected result.

    Worker Bug Fixes¶

    Full Repository Access Tools¶

    • Fixed applying patches containing new files, deleted files, and symlinks when using tools requiring full repository access. (Bug #4678, Bug #4888, Bug #4912, Bug #4982)

    • Fixed applying patches containing DOS/Windows-based file paths on a Linux-based install of the worker.

    • Binary files are now skipped when applying patches, rather than resulting in a possible error.

    • Fixed race conditions when running multiple tools requiring full repository access on the same Git repository.

    • Added validation of repository configuration.

      Any issues found in the configuration of a repository or a Review Board server now logs an error and will be skipped. In previous releases, errors could cause Review Bot to fail to start up until fixed.

    Tool Compatibility¶

    • All tools now only run for files they support. (Bug #4885)

    • Fixed a bug in Checkstyle that could prevent filenames from being properly matched.

    • Clang Static Analyzer no longer fails to check code when encountering syntax errors.

    • Clang Static Analyzer now runs correctly on Python 3.

    • Clang Static Analyzer now always comments on the correct lines, rather than sometimes being offset.

    • Cppcheck now runs without excluded file checks (Bug #4671)

    • Cppcheck now respects the default setting for whether to report comments as issues to resolve.

    • Pydocstyle now reports the full message for each error found, not just part of it.

    • Fixed parsing issues that could occur with RuboCop.

    Contributors¶

    • Cecilia Wei

    • Christian Hammond

    • David Trowbridge

    • Jacob Blazusiak

    Keep up with the latest Review Board releases, security updates, and helpful information.

    About
    News
    Demo
    RBCommons Hosting
    Integrations
    Happy Users
    Support Options
    Documentation
    FAQ
    User Manual
    RBTools
    Administration Guide
    Power Pack
    Release Notes
    Downloads
    Review Board
    RBTools
    Djblets
    Power Pack
    Package Store
    PGP Signatures
    Contributing
    Bug Tracker
    Submit Patches
    Development Setup
    Wiki
    Follow Us
    Mailing Lists
    Reddit
    Twitter
    Mastodon
    Facebook
    YouTube

    Copyright © 2006-2025 Beanbag, Inc. All rights reserved.

    Terms of Service — Privacy Policy — AI Ethics Policy — Branding

    On this page

    • [Top]
    • Compatibility
    • New Features
      • Official Docker Images
      • JSON Management of Repositories
      • Improved Worker Experience
      • New Worker Configuration Options
      • New Tools
      • Tool Enhancements
    • Removed Features
    • Extensibility
    • Extension Bug Fixes
    • Worker Bug Fixes
      • Full Repository Access Tools
      • Tool Compatibility
    • Contributors