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-reviewersIf 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 -mpip install twine
python -m build
twine upload dist/*Need to also update albertyw/homebrew-albertyw.