有据可查、历史统一的代码审查
工程团队会收到每项更改的审查结果,其中附有相关证据和修复方案。无论是在终端、编辑器、API 还是无人值守服务中,审查流程都是一致的,因此无论从何处发起,审查的含义都是一样的。
- 行业开发者工具
- 合作方式Koca Ventures 的产品,由公司自主开发并拥有
- 状态正在积极使用中,持续开发中
所有请求评审的方式背后,都由同一个引擎驱动
工程团队会收到关于拟议变更的安全性、性能和质量方面的发现,每项发现都附有建议的修复方案,这些内容按顺序排列在队列中,从队列顶部依次处理。
无论请求来自终端命令、编辑器、API,还是按计划监听代码库的后台服务,运行的都是同一个引擎。 这四种方式共享同一份历史记录,因此,在键盘上启动的代码审查就是仪表盘后续显示的审查,而拉取请求也会保留一条直接在原处更新的评论。该平台由 Koca Ventures 开发并拥有。它既可在组织自有硬件上运行本地托管模型,也可通过外部服务商运行,因此客户无需构建自定义审查系统,也无需自行微调审查员模型,即可采用该平台。

工程师不再阅读的自动化审查
采用自动化审查的工程组织会遇到三种失败情况。该平台的设计正是针对这三种情况而来的。
处理噪声的成本高于其带来的收益
一款能够标记格式变动、导入顺序调整和未经核实的推测的工具,教会了团队如何快速浏览其审查结果。一旦对审查结果进行了快速浏览,那个真正重要的发现也会随之被忽略。
未修复的问题将转为工单
一条描述了问题但仅止步于此的评审意见,将工作交还给了原本就已忙碌的工程师。修正后的代码仍需进一步完善,而该问题的处理往往被搁置。
不同表面上的行为不一致
在终端、编辑器、拉取请求以及按计划进行的代码审查中,这些都是各自独立的工具,具有不同的行为和独立的历史记录。同一个更改可能在其中一个审查中通过,却在另一个审查中失败。
该平台的功能
无论何时何地提出审查要求,均提供一份审查报告,其中包含工程师判断各项发现所需的证据。
无论团队身在何处,评审流程始终如一
一个团队可以通过终端、编辑器、API 或计划任务进行审查,并获得相同的结果和相同的审查历史记录。在键盘上启动的审查,就是仪表盘随后显示的审查。
- 终端命令、编辑器集成、带实时更新的接口和后台服务,跑的是同一次评审
- 共用一份历史:在键盘上发起的那次评审,就是面板稍后展示的那一次
- 可在客户自有硬件上运行本地托管的模型,或运行配置中选定的外部提供商提供的模型
附带修复方案的发现
每个问题都标注了严重程度,并对应三种处理方式之一:立即修复、尽快修复或稍后审查,因此团队会从报告顶部开始处理。已修正的代码已作为附件附上,因此该问题属于已完成的工作,而非新提交的工单。
- 每个检出都包含替换代码
- 每个查找结果都会指向存储库中的一条真实路径
- 一项研究结果在格式变更后仍可识别
工程师能够判断的发现
调查结果会附带支持性证据及其审核状态,以便工程师了解哪些内容已得到证实,以及平台无法证实哪些内容。
- 微小的更改不会产生评审噪音
- 每项发现都附有相应的证据及其审查状态
- 无法得到证实的发现仍保留在报告中,绝不会被悄然删除
在攻击者发现漏洞之前,就已发现并修复了这些漏洞
根据请求,该平台会在代码库中搜索可被利用的漏洞,提出补丁方案,并验证该补丁是否已修复该漏洞。每个项目会显示为“已验证”、“部分修复”、“仍未修复”或“误报”,最终由工程师决定哪些修复方案被采纳。
- 一举涵盖了多个方面,从业务逻辑到合规性
- 补丁以提案的形式提交;不会将任何内容写入代码库
- 代理程序在受限环境下运行,这些限制会阻止其执行破坏性操作
实际操作中有哪些变化
工程师结合支持证据和修复建议审查发现。
一份清单
一次评审产出什么
每个代理的发现以一个有序列表的形式返回,按列表顺序从上到下处理。
随附证据
一项发现附带的内容
工程师在根据每项发现采取行动之前,会先查看相关证据以及该发现所附的审核状态。
一位工程师决定
变更如何落地
修复程序和补丁以提案的形式提交,并附带预览。未经工程师批准,任何内容都不会写入代码库。