SonarQube仅扫描新增代码——PR扫描5分钟时间预算需求咨询
SonarQube仅扫描变更代码的实现方案
过去12个月SonarQube已经支持仅扫描最新提交的变更代码,完全满足你司CI流水线的时间预算和需求,具体实现方式如下:
Pull Request专项扫描
针对PR/MR场景,在CI扫描命令中添加以下参数:sonar.pullrequest.key=PR-XXX sonar.pullrequest.base=main sonar.pullrequest.branch=feature/your-branchSonarQube会自动对比基准分支与当前分支的差异,只分析变更代码行,生成的报告仅包含本次提交的代码问题,开发者无需关注历史代码。
单分支增量扫描
如果是单分支的最新提交,可通过两步实现:- 用Git命令获取本次提交的变更文件列表:
git diff --name-only HEAD~1 > changed-files.txt - 在Sonar扫描命令中指定仅包含这些文件:
sonar.inclusions=$(cat changed-files.txt | tr '\n' ',')
同时可配合
sonar.newCodeDefinition=COMMIT:HEAD~1来限定新代码范围,确保报告只聚焦本次提交的变更。- 用Git命令获取本次提交的变更文件列表:
快速分支分析
启用SonarQube的快速分支分析功能后,扫描会复用主分支的已有扫描结果,仅分析当前分支与主分支的差异部分,既能大幅缩短扫描时间,报告也只展示分支上的变更代码问题。
附原社区讨论主题翻译:
- 仅分析新代码
- 我想仅对刚提交的代码进行Sonar分析
内容的提问来源于stack exchange,提问作者nnay84
相关产品推荐
相关产品推荐

