Announcing the Reviewable Settings Directory

A Reviewable post written by Alvin Charity.By: Alvin Charity
Published: Sunday, July 14, 2024

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.

The .reviewable settings directory

The .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.