Intelligently find code reviewers. See also, git-browse.
If you use Homebrew, you can install git-reviewers through the homebrew-albertyw tap:
brew install albertyw/albertyw/git-reviewers
If you don't use Homebrew, first clone this repository to somewhere on your system
(perhaps in your dotfiles
repository), then run <REPOSITORY_LOCATION>/install.sh
.
After installation, you can modify any default flags for git-reviewers
in ~/.gitconfig
usage: reviewers.py [-h] [-v] [--verbose] [-i IGNORE] [-j JSON] [-c]
Suggest reviewers for your diff. https://github.com/albertyw/git-reviewers
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
--verbose verbose mode
-i IGNORE, --ignore IGNORE
ignore a list of reviewers (comma separated)
-j JSON, --json JSON json file to read configs from, overridden by CLI
flags
-c, --copy Copy the list of reviewers to clipboard, if available
-b BASE_BRANCH, --base-branch BASE_BRANCH
Compare against a base branch (default: master)
git-reviewers
is componsed of a set of strategies for generating lists of
reviewers, or Finders. They return a weighted set of reviewers which is then
sorted and recommended to you. They include:
FindLogReviewers
- Generate a list of reviewers based on committers to your committed (but not merged with master) filesFindHistoricalReviewers
- Generate reviewers based on the repository committers as a wholeFindArcCommitReviewers
- Generate reviewers based on arc commit messages for files which you have modified on your branch
git-reviewers
supports reading configuration from a configuration file
with the --json
flag. The configuration file accepts json with the
following fields (all fields optional):
{
"verbose": false,
"copy": false,
"ignore": ["a", "b", "c"],
"base_branch": "master"
}
git-reviewers
will also by default search for and load a json
configuration file at ~/.git/reviewers
.
pip install -e .[test]
ruff check .
mypy .
coverage run -m unittest
coverage report -m
pip install twine
python -m build
twine upload dist/*
Need to also update albertyw/homebrew-albertyw.