088、GitLab CI 集成:Merge Request 的自动代码审查、建议生成与流水线集成
088、GitLab CI 集成:Merge Request 的自动代码审查、建议生成与流水线集成
从一次凌晨的线上事故说起
上周三凌晨两点,我被值班电话吵醒。一个同事提交的 Merge Request 合并后,生产环境的配置中心挂了。排查下来,原因很简单:他在 YAML 配置里写了一个!!python/name标签,这个标签在 PyYAML 的 safe_load 模式下会直接抛异常。代码审查没发现,因为人工 review 的时候,大家更关注业务逻辑,没人会逐行检查 YAML 的语法兼容性。
第二天早上复盘,我直接说:“这个锅不该开发者背,是我们的 CI 流程没兜住。”于是花了半天时间,把 GitLab CI 的自动代码审查流水线彻底重构了一遍。今天这篇笔记,就是那次重构的完整记录。
流水线的骨架:.gitlab-ci.yml 的审查阶段设计
先看最终版的流水线结构。我习惯把审查拆成三个独立阶段,而不是塞进一个 job 里——这样任何一个阶段失败,都能在 MR 的 Pipeline 视图里一眼定位问题。
stages:-<