Often the best possible code reviewers are the people who wrote or previously touched the code that has been modified by the changes to review.
This tool generates a top-10 of these people based on the git history of the files touched between two revisions. The top-10 is ranked by the number of changed lines of each previous author.
~/Code/sample-project$ git suggest-reviewer 1.7.13
Author Changed Lines Last Commit Date
Peter Pan 87 2022-08-19
Captain Hook 62 2022-09-19
Wendy Darling 12 2022-02-10
Tinker Bell 8 2021-09-15
You can either download this repository and build the code yourself, or grab the
latest release from npm
:
npm i --global git-suggest-reviewer
After globally installing you can invoke this like a normal git subcommand:
git suggest-reviewer COMMIT_OR_TAG_OF_BASE_REVISION
Alternatively you can use the full command:
git-suggest-reviewer COMMIT_OR_TAG_OF_BASE_REVISION
You can also use this as a library inside of your TS/JS projects.
import {gitSuggestReviewer, renderTopReviewerTable} from 'git-suggest-reviewer';
const baseRevision = '1.7.13';
const topReviewer = gitSuggestReviewer(baseRevision);
const formerColleagues = ['Captain Hook'];
const withoutFormerColleaguesAndAboveTenChangedLines = topReviewer.filter(
reviewer =>
!formerColleagues.includes(reviewer.author) && reviewer.changedLines > 10
);
console.log(
renderTopReviewerTable(withoutFormerColleaguesAndAboveTenChangedLines)
);
You can find documentation for the public interface here
This package runs on node
and depends on an git
executable to be available.
node >=v16.0.0
git
executable on your$PATH