UnReview.io — how we recommend code reviewers for GitHub pull requests

The Stackeer.io team
Stackeer.io
Published in
3 min readMay 16, 2020
UnReview by Stackeer.io

Hi, that’s Stackeer.io in touch!

Recently, we have announced the start of our work on the new code reviewer recommendation system called UnReview. If you haven’t heard about it, no problem. Just follow us on LinkedIn and stay in touch with our latest news and updates.

UnReview is an advanced recommendation system that automatically identifies and then proposes appropriate code reviewers for pull requests of GitHub projects. By implementing UnReview, we’re trying to achieve several goals. The first is to avoid wasting time spent manually looking for an appropriate code reviewer to review the code change. The second is to control workload and knowledge distribution and thereby, solve the problem when key reviewers are over-burdened and concentrate knowledge only around themselves.

Over the past three months, we’ve done an excellent job, at least we hope so! We’re ready to release the first version of UnReview and now make the final preparations. What’s more? We have already launched the website for UnReview with a cool animation of our workflow. And now, let’s introduce this workflow better, explaining how UnReview relies on it to recommend appropriate code reviewers for pull requests of GitHub projects.

So, get to know the UnReview workflow, please.

1. Connection to GitHub and request of the necessary source data.

In the first step, we connect UnReview to GitHub in order to extract all the necessary project data. This includes the history of reviews and commits, teammate relationships, the content of pull requests, existing code reviewers and their activity, the current workload, and many more.

2. Cleaning and saving the source data.

In the second step, we clean up the data that was extracted from GitHub to securely save it for further analysis. No one will have access to it, and, of course, you have the right to delete everything.

3. Model training using machine learning algorithms.

Next, we connect our developed machine learning algorithms. A huge number of factors are taken into account to make recommendations of code reviewers: the content of pull requests, the code reviewers’ experience in reviewing, the relationships among existing code reviewers, the time of the last review, the similarity of the pull requests already reviewed, etc. Based on this data, UnReview learns to find appropriate reviewers for your project pull requests, considering the workload and knowledge distribution.

4. Making queries to UnReview and finding code reviewers for a certain pull request.

Now, based on past training, UnReview will be able to find a code reviewer that matches your request. Just provide the pull request number and see which code reviewers are appropriate.

5. Results visualization.

The final step is to visualize the provided information. We represent it in the form of a smart graph that visually displays the main aspects of the pull request, the recommendations for which you have requested. The graph shows the interactions of reviewers and developers, how similar they are and how similar they are compared to the recommended reviewers. Thus, project managers and even developers can understand the pull request context and see how actual reviewers and developers relate to the recommended reviewers.

That’s all! The entire workflow consists of five steps from connecting and collecting data to visualizing the results.

We hope that explaining the UnReview workflow helped to better understand the features of our solution and its specialization. We are already preparing the next story about our smart graph and how we have implemented it.

If you would like to try UnReview for your project or if you have some questions and suggestions, connect with us on social networks (LinkedIn) or via e-mail stackeer@stackeer.io.

--

--