在VS Code中Code Review的实践
内容提要
本文介绍了团队使用VS Code插件进行代码审查的功能和开发原因,以及使用GitHub Copilot进行代码优化的实用功能。
延伸解读
为何选择自研插件而非现成方案
团队曾尝试GitHub Pull Requests和GitLab Workflow插件,但两者均无法满足内部私有仓库的登录需求,且只能展示当前打开项目的MR,无法跨项目分类查看。此外,现成插件不支持定制化内容,如集成ChatGPT分析报告或Copilot优化入口。因此,团队决定自研插件,以贴合内部工作流,提升代码审查效率。
远程文件读取与Copilot集成的关键实现
由于代码存储在远程GitLab仓库,本地没有文件,VS Code默认无法读取。插件通过注册自定义文件系统提供者(FileSystemProvider),实现远程文件内容的按需获取,并支持diff对比。同时,将文件系统设置为非只读模式,解锁了Copilot的右键功能,使开发者能直接在对比视图中使用Copilot进行代码解释和优化,避免了复制粘贴的繁琐。
从通知到IDE:无缝跳转的审查体验
团队利用POPO通知中的链接,通过浏览器中间页触发VS Code的URI协议,直接打开插件并定位到指定MR。插件监听URI路径,动态切换视图并加载对应MR数据,实现了从通知到IDE的快速跳转。这一设计减少了手动查找MR的步骤,让审查者能更专注于代码本身,提升了响应速度。
Q&A
为什么团队选择在VS Code中进行代码审查?
团队选择在VS Code中进行代码审查是因为Web浏览器中的代码展现风格与IDE不一致,影响了审查效率,同时希望通过插件优化审查流程。
这个VS Code插件有哪些主要功能?
插件的主要功能包括账号登录、MR列表展示、文件更改比照和ChatGPT分析报告等。
如何确保插件的用户登录安全?
插件使用GitLab OAuth进行用户认证,确保安全登录。
插件如何支持远程文件读取?
插件通过自定义文件系统支持远程文件读取,解决了本地文件缺失的问题。
如何使用GitHub Copilot进行代码优化?
用户可以在插件中通过右键菜单调用Copilot的指令,快速获取代码优化建议。
插件如何提升团队的协作效率?
插件设计考虑用户体验,简化了代码审查流程,从而提升了团队的协作效率。