当前位置: X-MOL 学术Soft Comput. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Recommending pull request reviewers based on code changes
Soft Computing ( IF 3.1 ) Pub Date : 2021-01-09 , DOI: 10.1007/s00500-020-05559-3
Xin Ye , Yongjie Zheng , Wajdi Aljedaani , Mohamed Wiem Mkaouer

Pull-based development supports collaborative distributed development. It enables developers to collaborate on projects hosted on GitHub. If a developer wants to collaborate on a project, he/she will fork the repository, make modifications on the forked repository and send a pull request to the development team to ask for a merge of the code changes to the official repository. When the development team receives a pull request, the team members will review the changes and make a decision on whether to accept the changes or not. However, efficiently finding suitable pull request reviewers is a challenge. In this paper, we propose a multi-instance-based deep neural network model to recommend reviewers for pull requests. Given a pull request, our model extracts three features, which pull request title, commit message, and code change. The proposed model extracts the three features automatically from the code changes of every commit in the pull request. The features of different commits are then merged to predict the likelihood that a reviewer candidate is the appropriate reviewer. We use CNN and LSTM-network to learn features since the pull requisition and commit message feature have different structures than code change, written in a programming language. To test the effectiveness of our model, we performed a set of experiments using 43,986 pull requests extracted from 12 open-source projects. We compare our model with two baselines approaches, CoreDevRec and Majority Classes. Experiments demonstrate that our model outperforms two state-of-the-art baselines. For instance, for the TensorFlow project, our model’s accuracy in determining the appropriate reviewers is 50.80%, 74.70%, and 84.04%, respectively, in Top-1, Top-3, and Top-5 recommendation.



中文翻译:

根据代码更改推荐拉取请求审阅者

基于拉式的开发支持协同分布式开发。它使开发人员可以在GitHub上托管的项目上进行协作。如果开发人员想要在项目上进行协作,则他/她将分叉存储库,在分叉的存储库上进行修改,然后向开发团队发送拉取请求,以请求将代码更改合并到正式存储库中。当开发团队收到请求请求时,团队成员将审核更改并决定是否接受更改。但是,有效地找到合适的请求请求审阅者是一个挑战。在本文中,我们提出了一个基于多实例的深度神经网络模型来推荐请求者的请求者。给定一个拉取请求,我们的模型将提取三个功能,即拉取请求标题,提交消息和代码更改。所提出的模型从拉取请求中每次提交的代码更改中自动提取三个功能。然后合并不同提交的功能,以预测审阅者候选人是合适的审阅者的可能性。我们使用CNN和LSTM网络来学习功能,因为拉取请求和提交消息功能的结构与用编程语言编写的代码更改不同。为了测试模型的有效性,我们使用从12个开源项目中提取的43,986个拉取请求进行了一组实验。我们将模型与两种基准方法(CoreDevRec和多数类)进行比较。实验表明,我们的模型优于两个最新的基准。例如,对于TensorFlow项目,我们的模型确定合适的审阅者的准确性为50.80%74。

更新日期:2021-01-10
down
wechat
bug