提交合并请求时如何触发代码扫描?
在多人开发协作中,通常会采取新建开发分支,完成后提交合并请求的方式进行版本迭代与更新。代码的更新意味着机会与风险并存,虽然可以采取人工审查的方式,但往往需要耗费大量时间与精力。有了代码扫描的功能加持后,不仅能够在分支内按照预设的扫描方案自动执行扫描任务,还可以自动拦截问题代码的合并,防止主干被污染。
配置扫描任务
新建扫描任务
该步骤的目的是为目标分支创建扫描任务。前往「代码扫描」功能页,点击右上角的「新建扫描任务」,选定代码仓库里的特定分支与拟使用的扫描方案,即可完成扫描任务和代码仓库分支的关联。
关联完成后,若设置了对应的触发规则,在代码仓库新建合并请求时将会自动触发代码扫描任务。
扫描完成后会出具扫描报告,在「扫描任务」中搜索相关代码仓库的分支扫描任务,就可以查看本次代码扫描的结果。
设置触发规则
在任一扫描任务中点击设置,轻点触发规则就可以看到代码仓库触发设置。
勾选「新建合并请求时触发执行」后,合并到此分支的合并请求在新建或源分支更新时将自动触发代码扫描。在此条件下触发执行后,将会使用当前任务的扫描方案及质量门禁对合入代码进行扫描和管控。
勾选「推送代码时触发执行」后,在此分支上推送代码时都会使用当前任务的扫描方案及质量门禁对合入代码进行扫描和管控。
配置质量门禁
开启后,可以将致命问题和错误问题阈值设置为 0(允许出现的问题个数),其一般为影响系统稳定和安全的严重漏洞,可以根据团队对代码质量的规范设置相应的门禁阈值。若此分支为保护分支,一经触发质量门禁,在合并请求阶段就会中断劣质代码的并入。开启了「管控合并请求」开关后,则不论是否为保护分支,所有拟并入此分支的所有请求必须通过质量门禁后才会被允许。
拦截效果如下:
代码扫描如何用于辅助代码评审
触发门禁后自动拦截
按照上文配置好分支所适用的扫描任务以及开启「管控合并请求」后,在目标分支提交合并请求,若不通过质量门禁则该合并请求无法被允许。你可以点击查看问题报告,及时修复存在的问题后再次提交合并请求。
查看扫描结果
点击查看问题报告后,可以看到本次扫描后的所有问题列表。每个问题都有与之对应的所属文件,问题所匹配的规则。若对该问题有疑问,可以前往扫描方案的规则包中自定义规则。每个问题有与之对应的问题级别,依次分为致命、错误、警告、提示。你可以在规则包中设置各规则的问题等级。
查看问题详情
点击查看任一问题,可以看到出错问题的位置与错误原因,点击右侧的修复建议可以查看问题原因并辅助进行修复。
示例 1: sql 注入警告
示例 2: 代码库中出现明文密码
修复问题后重新推送
依次修复扫描任务中出现的问题,建议按照问题等级调整修复的顺序。待修复问题的数量符合质量门禁要求后,再次提交合并请求会自动触发代码扫描任务。通过后扫描任务后即可通知团队内评审成员进行人工评审,代码质量无误后便可允许该分支的合并。
代码扫描的意义
提交者
对于提交者而言,代码扫描能够帮助并提前发现自己的问题,及时修正以避免合并请求被拒绝。
评审者
对于评审者而言,代码扫描能够辅助自动拦截劣质代码的合入,扫描结果能够加强代码评审的效率。
团队整体
对于整体团队而言,有了代码扫描功能能够在日常工作中提前发现问题代码,提高代码检查的效率,更大程度上降低项目交付上线时存在的风险。
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。