Reviewable allows you to configure your repositories via the Repository settings in the Reviewable GUI. While this is great for smaller organizations, when working with a large number of repositories, it will be useful to have a master configuration for all repositories for your organization and have the ability to store your review configuration in the same repository as your code.
.reviewable
settings directoryThe .reviewable
directory will contain your settings.yaml
file and any custom completion scripts you would like to use with your reviews. This directory is stored at the root of your repository and can be checked in alongside your code, giving your team the ability to test your Reviewable configration and roll back changes to the settings.yaml
file whenever it may be necessary. The example directory provides a peek into the structure of this directory.
settings.yaml
Each directory will contain a settings.yaml
file and one or more custom completion scripts. These settings currently match the settings in the Reviewable GUI, but additional options may be included in the future to provide more flexibility when customizing your review process with Reviewable.
This settings file will apply locally to the repository where it is stored, however if you would like to create organziation-wide settings for all repositories, you may elect to use a master settings.yaml
file. If you have repositories that do not or should not apply these master settings, Reviewable allows you to specify these repositories and their default settings in the overrides
section of the settings.yaml
file.
A common method to structuring Reviewable settings for your organizations repositories is to create a separate repository to hold the master settings. Designating a master "settings" repository lets you easily identify this repo as the base-level Reviewable configuration for your organization. The configuration applies to multiple repositories and lets you determine which members of your team or organization can read or write to these repositories.
Below is an example of a master settings.yaml
file that highlighs both top-level options and overrides.
approval-text: "Ready to Go!"
discussion-dismissal-restriction: maintain
github-status-updates: always
# the overrides parameter will allow you to set different options for any
# repositiory matching the patterns in the `repositories` parameter.
overrides:
- repositories:
- dev
- util-*
settings:
approval-text: ":lgtm:"
discussion-dismissal-restriction: push
For more information about using the .reviewble
directory and the settings.yaml
file, please see the Repository Settings documentation.