单提交智能评审上线!用云效精准定位复杂 MR 代码问题

简介: 随着代码评审进入智能化时代,AI 已成为提升 Code Review 效率与代码质量的重要助手。但当一次合并请求(MR)包含大量提交或巨量变更时,把所有 diff 一次性交给 AI 审查,容易导致判断失真、遗漏细节或误解改动意图。为此,云效 Codeup 推出“单提交评审”模式,把每个 commit 作为独立评审单元,有针对性地结合 commit message 给出意见,有效解决大 MR 场景下的智能评审痛点。

作者:浓云


背景


随着代码评审进入智能化时代,AI 已成为提升 Code Review 效率与代码质量的重要助手。但当一次合并请求(MR)包含大量提交或巨量变更时,把所有 diff 一次性交给 AI 审查,容易导致判断失真、遗漏细节或误解改动意图。为此,云效 Codeup 推出“单提交评审”模式,把每个 commit 作为独立评审单元,有针对性地结合 commit message 给出意见,有效解决大 MR 场景下的智能评审痛点。


功能介绍


什么是单提交评审?

  • 默认评审模式:将 MR 中所有提交合并成一次整体 diff 来评审,适合小型、原子化的变更。
  • 单提交评审模式:对 MR 中的每一次 commit 逐一评审,AI 会把对应的 diff 与 commit message 联合分析,产出风险提示、代码问题与可操作的修复建议。


单提交评审能解决哪些问题?

默认评审模式的痛点

  • 上下文太复杂,细节信息被淹没:把多个提交合并成一份大 diff 后,由于 AI 无法在冗长且混杂的上下文中同时关注多个维度信息,因此容易忽视小而关键的改动(边界条件、微小逻辑修正、注释或文档改动),导致遗漏真实问题或忽视细微回归风险。
  • 无法有效利用提交说明:合并为单一 diff 后,原本与每条提交对应的 message 与具体代码改动失去直接对应关系,AI 难以把握开发者的真实意图,容易给出不贴切或误导性的建议。

单提交评审如何缓解这些痛点?

  • 降低上下文复杂度,保留并放大细节可见性:每个 commit 的变更更小、更语义集中,AI 在更聚焦、更一致的上下文中判断,微小但关键的改动更容易被检测和解释,不会在海量变更中被掩盖。
  • 评审时结合提交说明:逐个评审 commit 时通过将 commit message 带入上下文中,AI 能关联起 diff 与对应的 message,理解开发者的真实意图(bug 修复、性能优化、兼容性调整等),从而给出更贴切的建议和更少的误判。


在哪些场景下推荐使用单提交评审?

  • 大 MR 多提交:MR 中总变更行 >= 500,commits 数量 >= 5;
  • 小提交:单个 commit 包含变更行 <= 100;
  • 线性提交:一次评审中的提交代码尽量保证线性修改,避免反复修改、“左右摇摆”,或提交到 MR 之前在本地整理提交历史。


如何使用单提交评审?

1. 修改自定义 AI 评审规则文件

参考自定义 AI 评审规则,在源分支下的 AI 评审规则文件 .aliyun/code/code_review.yaml 中设置评审模式 review_mode 为 BY_COMMIT,即单提交评审模式。

1760424830146_225EC15B-5BA8-482a-AC58-F8CA39A7FDDC.png

2. 新建合并请求并执行 AI 评审

1760424845912_A2F0A514-73DB-45ec-820E-B0C6BCEF7F30.png

等待 AI 评审完成,可以看到所有评审评论发表。

1760424858075_22BC7BAB-E7AC-4074-AC9B-12674ED1676E.png

2.1 提出更多更详细的评审意见

为了说明单提交评审相对于默认评审的效果提升,对同样的 MR 分别执行默认评审和单提交评审,对比二者的评审意见数量:

仅从评审意见数量的对比可以看到,单提交评审模式能找出数倍于默认评审模式的代码问题。

2.2 挖掘代码实现与提交说明不一致问题

当实际代码改动与提交说明的描述不一致时,单提交评审模式能找出仅从代码层面评审无法发现的问题:

1760424911438_A37E3ED7-0258-47b4-9DA4-666E24862B11.png

3. 评审提交说明

在单提交评审模式下,评审 commit message 功能默认开启,在代码评审报告中增加“提交说明建议”模块。

1760424928557_FF1A246D-31F1-4528-B531-F462794617E6.png

在该模块内,会参考 Conventional Commits 规范对每个提交说明逐个评审,包括提交说明的格式问题、内容质量等。


如果期望关闭该功能,请修改自定义规则中的 enable_review_commit_message 字段为 false。


reviews:
  review_mode: "BY_COMMIT"
  enable_review_commit_message: false # 默认为true,该字段只有结合单提交评审模式才生效


单提交评审有什么局限性?

相比于默认评审模式,单提交评审由于单次只评审一个提交,当提交数量较大时会使评审耗时显著提高,极端情况下耗时会达到默认评审模式的 3 倍以上。请结合具体需求选择合适的评审模式。


相关链接:

[1]开发效率翻倍!编码助手+云效 AI 评审如何破解代码质量与速度难题?

[2] 代码评审 AI 助手

https://help.aliyun.com/zh/yunxiao/user-guide/ai-intelligent-code-review

[3] Conventional Commits

https://www.conventionalcommits.org/en/v1.0.0/

[4] How to Write a Git Commit Message

https://cbea.ms/git-commit/

[5] 单提交评审模式示例代码库

https://atomgit.com/vagary/MyOnlineStore

相关实践学习
流水线运行出错排查难?AI帮您智能排查
本实验将带您体验云效流水线Flow的智能排查能力,只需短短1-2分钟,即可体验AI智能排查建议。
ALPD云架构师系列 - 云原生DevOps36计
如何把握和运用云原生技术,撬动新技术红利,实现持续、安全、高效和高质量的应用交付,并提升业务的连续性和稳定性,这是云原生时代持续交付共同面对的机会和挑战。本课程由阿里云开发者学堂和阿里云云效共同出品,是ALPD方法学云架构师系列的核心课程之一,适合架构师、企业工程效能负责人、对DevOps感兴趣的研发、测试、运维。 课程目标 前沿技术:了解云原生下DevOps的正确姿势,享受云原生带来的技术红利 系统知识:全局视角看软件研发生命周期,系统学习DevOps实践技能 课程大纲: 云原生开发和交付:云研发时代软件交付的挑战与云原生工程实践 云原生开发、运行基础设施:无差别的开发、运行环境 自动部署:构建可靠高效的应用发布体系 持续交付:建立团队协同交付的流程和流水线 质量守护:构建和维护测试和质量守护体系 安全保障:打造可信交付的安全保障体系 建立持续反馈和持续改进闭环
相关文章
|
2月前
|
人工智能 安全 API
近期 AI 领域的新发布所带来的启示
2024 年以来,AI 基础设施的快速发展过程中,PaaS 层的 AI 网关是变化最明显的基建之一。从传统网关的静态规则和简单路由开始,网关的作用被不断拉伸。用户通过使用网关来实现多模型的流量调度、智能路由、Agent 和 MCP 服务管理、AI 治理等,试图让系统更灵活、更可控、更可用。国庆期间 AI 界发布/升级了一些产品,我们在此做一个简报,从中窥探下对 AI 网关演进新方向的启示。
386 33
|
2月前
|
消息中间件 人工智能 Kafka
AI 时代的数据通道:云消息队列 Kafka 的演进与实践
云消息队列 Kafka 版通过在架构创新、性能优化与生态融合等方面的突破性进展,为企业构建实时数据驱动的应用提供了坚实支撑,持续赋能客户业务创新。
383 30
|
27天前
|
人工智能 运维 安全
助力企业构建 AI 原生应用,函数计算 FunctionAI 重塑模型服务与 Agent 全栈生态
在 AI 技术应用落地进程中,目前面临着五大核心挑战:开发/学习门槛过高,部署运维阶段复杂,AI 应用安全备受挑战,生态能力方面存在严重的割裂与锁定现象,同时资源成本高昂且利用率低下。这些挑战极大地阻碍了 AI 技术的广泛普及以及应用效率的有效提升。阿里云函数计算(FC)依托 Serverless AI 基础设施与全栈能力的创新突破,推出 Function AI(函数智能),精准攻克上述痛点问题,全面推动 AI 应用在开发至运维的全流程中实现降本增效。
|
2月前
|
存储 弹性计算 安全
清理祖传 AK 不怕炸锅:基于 UModel 的云监控 2.0 身份凭证观测实践
本文介绍了通过阿里云监控 2.0 的日志审计功能实现 AccessKey 和 RAM 角色的主动管理方案。核心是利用 Umodel 统一实体模型,将管控面(ActionTrail 日志)和数据面(OSS/SLS 日志)的日志数据转化为实体关系图谱,清晰展示身份凭证与云资源的交互行为。通过关联建模、内置洞察报表和告警规则,可追踪 AK/角色的使用情况、风险操作及资源影响,辅助安全清理和风险闭环。
287 22
|
3月前
|
数据采集 人工智能 监控
零代码改造!LoongSuite AI 采集套件观测实战
在 AI 时代,随着模型和应用侧的快速演化,对于推理过程,成本和性能显得尤为重要,而端到端的 AI 可观测是其中至关重要的一环。本文将介绍端到端 AI 可观测的基本概念与痛点,并通过阿里云可观测团队最新开源的 AI 采集套件 LoongSuite Agent 来对大模型应用进行全链路可观测以解决这些痛点。帮助客户无侵入,低成本地进行全链路的大模型可观测。
352 45
零代码改造!LoongSuite AI 采集套件观测实战
|
2月前
|
人工智能 运维 Serverless
函数计算 × MSE Nacos : 轻松托管你的 MCP Server
本文将通过一个具体案例,演示如何基于 MCP Python SDK 开发一个标准的 MCP Server,并将其部署至函数计算。在不修改任何业务代码的前提下,通过控制台简单配置,即可实现该服务自动注册至 MSE Nacos 企业版,并支持后续的动态更新与统一管理。
629 52
|
3月前
|
人工智能 自然语言处理 开发者
|
2月前
|
消息中间件 人工智能 安全
云原生进化论:加速构建 AI 应用
本文将和大家分享过去一年在支持企业构建 AI 应用过程的一些实践和思考。
555 37
|
2月前
|
人工智能 安全 Java
分布式 Multi Agent 安全高可用探索与实践
在人工智能加速发展的今天,AI Agent 正在成为推动“人工智能+”战略落地的核心引擎。无论是技术趋势还是政策导向,都预示着一场深刻的变革正在发生。如果你也在探索 Agent 的应用场景,欢迎关注 AgentScope 项目,或尝试使用阿里云 MSE + Higress + Nacos 构建属于你的 AI 原生应用。一起,走进智能体的新世界。
618 47
|
消息中间件 人工智能 运维
左手医生:医疗 AI 企业的云原生提效降本之路
通过使用阿里云云原生等产品,左手医生项目的上线时间缩短了 67%,运维效率提升 70% 左右,消息处理的效率也提升了 80% 左右。
753 98