GitLab Brings on UnReview to Solve Code Review, Address AI/ML DevOps
Software lifecycle services provider GitLab recently acquired UnReview, a machine learning (ML) tool that helps identify appropriate code reviewers, both to bring this functionality to its DevOps platform, as well as to further its overall mission to “build data science workload needs into the entire open DevOps platform,” according to a statement. On the first point, GitLab senior director David DeSanto explained that GitLab wants to: reduce friction, improve experience, better security, and generally increase efficiency.
“We have seen customers who end up having to merge requests that end up being open for sometimes weeks due to the manual process of code review. When you look at that as a process, that could be a very laborious process for the developer and for the reviewer. This happens because we’re all human,” said DeSanto. “Let’s say I’m making a change and as a developer, I go, ‘The right person to read this is Christy,’ I can then assign it to her. But what if she’s on vacation? What if she’s reviewing six or seven other merge requests? Now I’m sitting in this limbo state unable to move forward until I’m unblocked by her.”
UnReview remedies this situation using ML to best determine the most appropriate code reviewer at any given time, according to a set of characteristics, acting as a load balancer of sorts, as well as determining the best reviewer according to their history. DeSanto said that GitLab became interested in UnReview after trying the product themselves and finding out that it could improve their workflow.
“We did find that it was actually confirming we were selecting the right code reviewer at times but also finding out that we’ve selected the wrong code reviewer,” DeSanto said. “We were able to see the time improvement for ourselves inside of our own workflow, and that’s what really made us excited about the possibility of having UnReview join GitLab.
“We’re selecting manually today, and we have this thing called ‘reviewer roulette’ that’s supposed to help with that, but it’s all still manual. It was able to identify the right code reviewer on its first selection, but in some cases, it was our third or fourth selection of the code reviewer. In some of those cases, it was a multiple time-savings because UnReview selected the right code review upfront, whereas our manual process selected the wrong one a few times.”
Previously, UnReview was available for a number of Git-based tools, but moving forward the team will be looking at how to integrate it directly into the GitLab platform over the next several months, with a goal of completing that integration by the end of the year. At first, the UnReview functionality will be available on GitLab.com on a project level basis, but DeSanto said he expects it to expand, possibly to the group and then installation level after that, with self-hosted instances as something they plan to consider next. Part of the hitch there is that it takes a lot of infrastructure to build, train, and manage ML models. DeSanto says that they are still trying to determine how that would work, whether providing instructions on how to build and train the models locally or to offer a hybrid model, wherein GitLab would perform the model training, then provide that model to the local instance in a smaller, more manageable form.
While improving code review is a worthwhile goal on its own, DeSanto said that the acquisition goes beyond that, to GitLab’s greater goals of integrating ML and AI directly into the DevOps experience, as well as introducing ModelOps, where DevOps practices can be brought to the process of building and managing ML models. Pointing to the GitLab 2021 DevSecOps survey as evidence, where 75% of respondents said they use AI/ML for testing and code review — an increase from 41% the year before — DeSanto said the path forward was clear.
“This is kind of putting the flag in the ground and saying, ‘We as GitLab see that ML and AI cannot be an external part of the DevOps toolchain, it actually has to be embedded in from the beginning,'” said DeSanto. “That is the future and we want to help our customers and the global community begin today to take into consideration that ML, whether it’s models or your practices, is not separate from your traditional DevOps anymore.”
Already, DeSanto said that GitLab has built a proof of concept that it is using internally to help ensure the right labels are being applied to issues, with issues correctly assigned, using ML/AI. The UnReview team will be core to bringing this feature into the public product. He said that the company is also launching an applied machine learning team that is beginning to look at anomaly detection in terms of things like runner misconfiguration, which might go beyond alerting users to an issue and begin to “introduce a self-healing DevOps pipeline.”