微软的Nudge服务利用AI加快拉取请求的完成

2021-01-21 15:00:09来源:

微软正在使用AI来加速拉式请求(该功能可让开发人员将其对代码所做的更改告知其他人),以提醒作者处理逾期未交的请求,从而加快完成速度。根据本周发布的一份新白皮书,其中详细介绍了Nudge,这是一种端到端服务,该服务利用基于工作量估计的模型来预测给定拉取请求的完成时间。微软表示,自2019年以来,Nudge已部署在其147个内部存储库中,并且“显着”减少了发送通知的8,500个拉取请求的完成时间,减少了60%。

随着GitHub和GitLab等平台的采用,拉取请求已成为分布式代码审查的标准机制。它们使更改可以被一个或多个开发人员甚至机器人审查。审阅者签名后,可以将更改与主分支合并并部署。但是,尽管拉取请求简化了审核过程,但它们也可能减慢软件开发过程。例如,如果审阅者变得超负荷并且无法跟踪请求,则可能无法及时对其进行审阅。

为了寻找解决方案,微软和代尔夫特理工大学的研究人员开发了Nudge,该工具使用工作量估计和活动检测算法来预测给定拉动请求的完成时间。轻推操作还更进一步,分析请求状态,确定拉动请求的作者或审阅者从完成起就阻止请求,并在拉动请求环境中通过注释将其通知。

为了构建Nudge,研究人员进行了相关分析,以分析与拉动请求,拉动请求作者,拉动请求审阅者以及甚至影响请求完成时间的时间因素相关的各种因素。然后,他们利用代码流失率,审阅者信息和所有权信息等指标,构建工作量估计模型,以预测请求创建时的拉动请求完成时间。接下来,他们实施了活动检测,以监视对拉取请求的任何更新(例如,新提交和审阅评论)并相应地调整通知。最后,为了使Nudge通知可行,研究人员部署了所谓的依赖关系确定,从而推断出请求请求的作者或特定的审阅者。

在Microsoft的存储库上部署Nudge 18个月后,研究人员报告说73%的请求请求通知被用户“肯定”。他们写道:“请求是协作软件开发过程的关键部分。”“在8,500个拉动请求中,只有1,570个拉动请求(18.47%)花费了一周多的时间才能完成。一周内关闭了81.53%的拉取请求。要作出的重要观察是,在Nudge发送通知的请求中,有2,300个请求(27.05%)在一天之内完成。这种分布表明,Nudge发送通知的大多数拉取请求都相对较快地完成了。”

Nudge建立在Microsoft早期为AI和机器学习注入DevOps流程的基础上。例如,在4月,该公司详细介绍了一个系统,声称该系统可以在99%的时间内正确区分安全和非安全软件错误,并且可以平均97%的时间准确地识别关键,高优先级的安全错误。微软表示,它正在使用AI来帮助分类云服务中断。


返回科技金融网首页 >>

版权及免责声明:凡本网所属版权作品,转载时须获得授权并注明来源“科技金融网”,违者本网将保留追究其相关法律责任的权力。凡转载文章,不代表本网观点和立场,如有侵权,请联系我们删除。


相关文章