An extensible and friendly code review tool for projects and companies of all sizes.

Overview

Review Board

Review Board is an open source, web-based code and document review tool built to help companies, open source projects, and other organizations keep their quality high and their bug count low.

We began writing Review Board in 2006 to fill a hole in the code review market. We wanted something open source that could be flexible enough to work with a variety of workflows, and could take the pain out of the code review process.

Today, it's a vital part of the development process at thousands of projects and companies, ranging from small startups of two people to enterprises of thousands.

What does Review Board do?

Review Board tracks changes to your pending code, graphics, documents, and all discussions around all the decisions made about your product. Our diff viewer does more than just display diffs: It shows you exactly how your code was changed, with syntax highlighting, interdiffs, moved line detection, indentation change indicators, and more.

You can integrate with Review Board using its rich API and extension frameworks, allowing custom features, review UIs, data analysis, and more to be built without ever having to fork Review Board.

There's support for Bazaar, ClearCase, CVS, Git, Mercurial, Perforce, Plastic, and Team Foundation Server, hosted on your own server or on Assembla, Beanstalk, Bitbucket, Codebase, GitHub, GitLab, Gitorious, Kiln, or Unfuddle.

To learn more, visit the Review Board website.

Setting up Review Board

First, get Review Board. Our helpful interactive guide will walk you through what you need to download and install Review Board.

We can also host Review Board for you at RBCommons. Management is simple, and we'll take care of all the administrative work.

If you want to get a feel for Review Board, check out the demo.

For additional information, see our documentation:

Installing Power Pack

Power Pack extends Review Board, adding such helpful features as:

To get started, download a trial license, or read the Power Pack documentation for more information.

Installing RBTools

If you're an end-user already using Review Board, you'll want to install RBTools, our command line suite for working with Review Board.

RBTools makes it easy to post changes for review, land reviewed changes, patch your local tree with someone else's changes, check your workload, and much more.

RBTools can be installed on Windows, Linux, Mac, and other platforms. See the RBTools documentation for everything it can do.

Getting Support

We can help you get going with Review Board, and diagnose any issues that may come up. There are two levels of support: Public community support, and private premium support.

The public community support is available on our main discussion list. We generally respond to requests within a couple of days. This support works well for general, non-urgent questions that don't need to expose confidential information.

We can also provide more dedicated, private support for your organization through a support contract. We offer same-day responses (generally within a few hours, if not sooner), confidential communications, installation/upgrade assistance, emergency database repair, phone/chat (by appointment), priority fixes for urgent bugs, and backports of urgent fixes to older releases (when possible).

Our Happy Users

There are thousands of companies and organizations using Review Board today. We respect the privacy of our users, but some of them have asked to feature them on the Happy Users page.

If you're using Review Board, and you're a happy user, let us know!.

Reporting Bugs

Hit a bug? Let us know by filing a bug report.

You can also look through the existing bug reports to see if anyone else has already filed the bug.

Contributing

Are you a developer? Do you want to integrate with Review Board, or work on Review Board itself? Great! Let's help you get started.

First off, we have a few handy guides:

We accept patches to Review Board, RBTools, and other related projects on reviews.reviewboard.org. (Please note that we do not accept pull requests.)

Got any questions about anything related to Review Board and development? Head on over to our development discussion list.

Related Projects

  • Djblets - Our pack of Django utilities for datagrids, API, extensions, and more. Used by Review Board.
  • RBTools - The RBTools command line suite.
  • ReviewBot - Pluggable, automated code review for Review Board.
  • rb-gateway - Manages Git repositories, providing a full API enabling all of Review Board's feaures.
Comments
  • New Plastic SCM 4.0 plugin

    New Plastic SCM 4.0 plugin

    I have updated the Plastic plugin (plastic.py) to be compatible with version 4.0 of this SCM tool.

    I would like to get it integrated in the next release of ReviewBoard.

    If you have any doubts, please, tell me.

    Thanks and best regards, Luis

    opened by ravelus 22
  • Dependencies to fix broken collectstatic

    Dependencies to fix broken collectstatic

    The collectstatic command is currently broken as it is trying to use certain keyword arguments that are not supported by the latest version of django-pipeline.

    Because the requirement for django-pipeline is defined as >= in setup.py it brings in the latest version (as of this writing 1.2.15) although ReviewBoard is known to work with version 1.2.1.

    This pull request fixes this problem (traceback cut off for brevity) by setting the requirement to 1.2.1 strict:

    ...
    File "/opt/devel/rboard/lib/python2.6/site-packages/django_pipeline-1.2.15-py2.6.egg/pipeline/compilers/__init__.py", line 41, in compile
        compiler.compile_file(infile, outfile, outdated=outdated, force=force)
    TypeError: compile_file() got an unexpected keyword argument 'outdated'  
    

    The next problem is that jsmin doesn't get installed because it is not defined anywhere as a dependency so I included that into the requirements, the latest version (2.0.2) seemed to work correctly and finally was able to compile absolutely everything that ReviewBoard needs to work. The error that that fix prevents is below (again, traceback cut for brevity):

    ...
    File "/opt/devel/rboard/lib/python2.6/site-packages/pipeline/compressors/jsmin/__init__.py", line 10, in compress_js
      from jsmin import jsmin
     ImportError: No module named jsmin
    
    opened by alfredodeza 3
  • Simple patch for new shortcut keys!

    Simple patch for new shortcut keys!

    Hi, here's a tiny patch that adds two shortcut keys into diffviewer.js which have completely changed our lives:

    • Hitting r is a shortcut for clicking 'Review', bringing up the review-editing pop-up.
    • Hitting shift+r is a shortcut for clicking 'Review', checking 'Ship It', and clicking 'Publish Review', for quickly signing off on simple diffs much more efficiently.

    Hope you pull these changes. Thanks!

    opened by yang 3
  • Patch for ticket 4009

    Patch for ticket 4009

    Changed default value for branch as the None value will be inserted to MySQL if it's not sent when creating a review. I tried this change on our server and it looks to fix the null exception.

    This is to try and solve the ticket 4009

    opened by hanabishi 2
  • About 3.0.6

    About 3.0.6

    Hi, when I commit a review request, I specify the reviewer people ping.ni, but another people jun.he can ship it. I do not know why, can you give me the answer. Thank you for your attention. clipboard

    opened by qchai 1
  • Restore the extensions documentation for 1.7.

    Restore the extensions documentation for 1.7.

    We moved the extensions docs out of the codebase docs, but this left 1.7 users with no way to get to the new docs. This restores the old docs, but under the 1.7 manual.

    opened by sap9433 1
  • (enhancement) allow management commands inside RB extensions

    (enhancement) allow management commands inside RB extensions

    Now rbsite picks up management commands only from installed applications, i.e. rbsite doesn't take extensions into account. To fix it, rbsite can load all extensions before generating list of management commands.

    opened by mizhka 1
  • add custom

    add custom "X-ReviewRepository" email header containing repository name; useful for filtering

    Description:

    Our RB instance has many repositories and I like to have email filters to divide my incoming requests into sub-folders. Having filters based on headers instead of the contents of the message is preferable.

    I'm happy to change the header name to something else. "X-ReviewBoard-Repository" maybe?

    Testing Done:

    Visual.

    opened by tehranian 1
  • Change max value of hosting_url to 255

    Change max value of hosting_url to 255

    The current value (256) makes the size of the row too big for MySQL InnoDB engine, resulting in this error:

    django.db.utils.DatabaseError: Specified key was too long; max key length is 767 bytes

    As the RFC (http://www.ietf.org/rfc/rfc1035.txt) fix this value to 255 as bigger, and it is enough to avoid the issue with InnoDB, it would be great to change it.

    Thank you in advance.

    opened by inratep 1
  • Fix a major boo-boo in the 1.7.7 release

    Fix a major boo-boo in the 1.7.7 release

    The port being an integer blows up as the regex expects a string resulting in a TypeError.

    When not specifying the port via rb-site install, it blows up.

    * Installing the site...
    Building site directories ... OK
    Building site configuration files ... Traceback (most recent call last):
      File "/home/venvs/bin/rb-site", line 8, in <module>
        load_entry_point('ReviewBoard==1.7.7', 'console_scripts', 'rb-site')()
      File "/home/venvs/lib/python2.7/site-packages/ReviewBoard-1.7.7-py2.7.egg/reviewboard/cmdline/rbsite.py", line 1937, in main
        command.run()
      File "/home/venvs/lib/python2.7/site-packages/ReviewBoard-1.7.7-py2.7.egg/reviewboard/cmdline/rbsite.py", line 1405, in run
        self.show_install_status()
      File "/home/venvs/lib/python2.7/site-packages/ReviewBoard-1.7.7-py2.7.egg/reviewboard/cmdline/rbsite.py", line 1682, in show_install_status
        site.generate_config_files)
      File "/home/venvs/lib/python2.7/site-packages/ReviewBoard-1.7.7-py2.7.egg/reviewboard/cmdline/rbsite.py", line 885, in step
        func()
      File "/home/venvs/lib/python2.7/site-packages/ReviewBoard-1.7.7-py2.7.egg/reviewboard/cmdline/rbsite.py", line 290, in generate_config_files
        os.path.join(conf_dir, web_conf_filename))
      File "/home/venvs/lib/python2.7/site-packages/ReviewBoard-1.7.7-py2.7.egg/reviewboard/cmdline/rbsite.py", line 626, in process_template
        template)
      File "/home/venvs/lib/python2.7/re.py", line 151, in sub
        return _compile(pattern, flags).sub(repl, string, count)
    TypeError: sequence item 1: expected string, int found
    

    I verified this patch works as expected with the port. For kicks, I added a cast to str for the site_id, but that is just for good measure. The port is what blows up for me.

    My invocation of rb-site:

    rb-site install \
      --copy-media \
      --noinput \
      --domain-name="${vhost}.${domain}" \
      --site-root=/ \
      --static-url=static/ \
      --media-url=media/ \
      --db-type=mysql \
      --db-name="$database" \
      --db-host=localhost \
      --db-user="$team" \
      --db-pass="$password" \
      --cache-type=memcached \
      --cache-info="localhost:11211" \
      --web-server-type=apache \
      --python-loader=wsgi \
    "${basedir}/$vhost"
    
    opened by SEJeff 1
  • Make Chrome wrap very long lines with no spaces

    Make Chrome wrap very long lines with no spaces

    Chrome does not currently wrap very long lines with no spaces (though Firefox does).

    This makes the diff view unusable since one such line will cause all other long lines to also not break, even if they do have spaces. The result is that you have to scroll to read every line that is longer than what fits in the split diff view.

    (I agree that in a perfect world all code would be hard-wrapped at 80 characters, and there would be no long lines without spaces.)

    opened by ostrain 1
  • docs: fix simple typo, succes -> success

    docs: fix simple typo, succes -> success

    There is a small typo in reviewboard/static/rb/js/resources/models/reviewGroupModel.es6.js.

    Should read success rather than succes.

    Semi-automated pull request generated by https://github.com/timgates42/meticulous/blob/master/docs/NOTE.md

    opened by timgates42 0
Various code metrics for Python code

Radon Radon is a Python tool that computes various metrics from the source code. Radon can compute: McCabe's complexity, i.e. cyclomatic complexity ra

Michele Lacchia 1.4k Jan 7, 2023
Monitoring tool based on radon

xenon Xenon is a monitoring tool based on Radon. It monitors your code's complexity. Ideally, Xenon is run every time you commit code. Through command

Michele Lacchia 218 Dec 5, 2022
A tool for measuring Python class cohesion.

Cohesion Cohesion is a tool for measuring Python class cohesion. In computer programming, cohesion refers to the degree to which the elements of a mod

null 177 Jan 4, 2023
A Python application for tracking, reporting on timing and complexity in Python code

A command-line application for tracking, reporting on complexity of Python tests and applications. wily [a]: quick to think of things, having a very g

Anthony Shaw 1k Dec 29, 2022
Inspects Python source files and provides information about type and location of classes, methods etc

prospector About Prospector is a tool to analyse Python code and output information about errors, potential problems, convention violations and comple

Python Code Quality Authority 1.7k Dec 31, 2022
Product-Review-Summarizer - Created a product review summarizer which clustered thousands of product reviews and summarized them into a maximum of 500 characters, saving precious time of customers and helping them make a wise buying decision.

Product-Review-Summarizer - Created a product review summarizer which clustered thousands of product reviews and summarized them into a maximum of 500 characters, saving precious time of customers and helping them make a wise buying decision.

Parv Bhatt 1 Jan 1, 2022
GET-ACQ is a python tool used to gather all companies acquired by a given company domain name.

get-acq ?? GET-ACQ is a python tool used to gather all companies acquired by a given company domain name. It is done by calling SecurityTrails API. Us

Milan 7 Dec 19, 2022
A command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, VueJS projects.

Cookiecutter A command-line utility that creates projects from cookiecutters (project templates), e.g. creating a Python package project from a Python

null 18.6k Dec 30, 2022
A command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, VueJS projects.

Cookiecutter A command-line utility that creates projects from cookiecutters (project templates), e.g. creating a Python package project from a Python

null 18.6k Jan 2, 2023
A command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, VueJS projects.

Cookiecutter A command-line utility that creates projects from cookiecutters (project templates), e.g. creating a Python package project from a Python

null 18.7k Jan 8, 2023
Here I plotted data for the average test scores across schools and class sizes across school districts.

HW_02 Here I plotted data for the average test scores across schools and class sizes across school districts. Average Test Score by Race This graph re

null 7 Oct 27, 2021
CoSMA: Convolutional Semi-Regular Mesh Autoencoder. From Paper "Mesh Convolutional Autoencoder for Semi-Regular Meshes of Different Sizes"

Mesh Convolutional Autoencoder for Semi-Regular Meshes of Different Sizes Implementation of CoSMA: Convolutional Semi-Regular Mesh Autoencoder arXiv p

Fraunhofer SCAI 10 Oct 11, 2022
This is a repository for "100 days of code challenge" projects. You can reach all projects from beginner to professional which are written in Python.

100 Days of Code It's a challenge that aims to gain code practice and enhance programming knowledge. Day #1 Create a Band Name Generator It's actually

SelenNB 2 May 12, 2022
IMDbPY is a Python package useful to retrieve and manage the data of the IMDb movie database about movies, people, characters and companies

IMDbPY is a Python package for retrieving and managing the data of the IMDb movie database about movies, people and companies. Revamp notice Starting

Davide Alberani 1.1k Jan 2, 2023
This is python to scrape overview and reviews of companies from Glassdoor.

Data Scraping for Glassdoor This is python to scrape overview and reviews of companies from Glassdoor. Please use it carefully and follow the Terms of

Houping 5 Jun 23, 2022
An IVR Chatbot which can exponentially reduce the burden of companies as well as can improve the consumer/end user experience.

IVR-Chatbot Achievements ?? Team Uhtred won the Maverick 2.0 Bot-a-thon 2021 organized by AbInbev India. ❓ Problem Statement As we all know that, lot

ARYAMAAN PANDEY 9 Dec 8, 2022
A standalone package to scrape financial data from listed Vietnamese companies via Vietstock

Scrape Financial Data of Vietnamese Listed Companies - Version 2 A standalone package to scrape financial data from listed Vietnamese companies via Vi

Viet Anh (Vincent) Tran 45 Nov 16, 2022
This is a straightforward python implementation to specifically grab basic infos about IPO companies in China from Sina Stock website.

SinaStockBasicInfoCollect This is a straightforward python implementation to specifically grab basic infos about IPO companies in China from Sina Stoc

CrosSea 1 Dec 9, 2021
TidyPy is a tool that encapsulates a number of other static analysis tools and makes it easy to configure, execute, and review their results.

TidyPy Contents Overview Features Usage Docker Configuration Ignoring Issues Included Tools Included Reporters Included Integrations Extending TidyPy

Jason Simeone 33 Nov 27, 2022
Convenient tool for speeding up the intern/officer review process.

icpc-app-screen Convenient tool for speeding up the intern/officer applicant review process. Eliminates the pain from reading application responses of

null 1 Oct 30, 2021