流水线一直只对本次改动的文件跑检查,合并进主干后手动全量扫了一次,冒出两千多条历史告警,门禁当天就没法开。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

golangci-lint run --new-from-rev=origin/main ./...
staticcheck ./... > baseline.txt 2>&1

增量扫描按 diff 取文件列表,历史代码从未被扫过,规则版本一升级,新增的检查项全部堆到全量那次,没人分得清哪条是这次引入的,只能整批放过。这一点先确认清楚,后面就不用反复试。

「静态扫描增量漏检」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。

备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。

具体做法是,全量扫一次生成基线并冻结历史告警;增量流水线只让基线之外的新问题失败;每周跑一次全量把基线缓慢收紧。

改完照着核一遍,增量流水线只报新增问题,全量扫描的告警数逐周下降而不是一次爆量。

作者 9823189