SonarQube 里给 AI 代码做扫描

发布时间:2026/6/2 4:00:00

SonarQube 里给 AI 代码做扫描 在 SonarQube 里给 AI 代码做扫描核心就是三件事把项目标记为含 AI 代码 → 用更严的质量门Quality Gate→ 配更严的规则模板Quality Profile。下面按步骤讲直接照着就能配。一、先开启“AI Code Assurance”全局项目1. 全局检查管理员进入Administration → Configuration → General Settings → AI Code Assurance确保Enable AI Code Assurance已勾选默认开启2. 项目标记为“包含 AI 代码”进入你的项目 →Project Settings → AI-generated code勾选This project contains AI-generated code保存后项目页会出现AI CODE标签二、配置 AI 专用质量门Quality Gate方案A直接用官方内置“Sonar way for AI Code”推荐起步内置规则已经针对 AI 代码收紧新代码0 新增问题、100% 安全热点已审核、覆盖率 ≥80%、重复率 ≤3%全量代码安全评级 A、可靠性 ≥C、所有安全热点已审核方案B自建更严格的 AI 质量门生产建议顶部菜单 →Quality Gates → Create命名例如AI-Code-Hardened添加条件示例比官方更严维度新代码New Code全量代码Overall问题数0 个新问题-安全热点100% 已审核100% 已审核覆盖率≥90%≥80%重复率≤1%≤2%安全评级AA可靠性评级AA右上角“三点” →Qualify for AI Code Assurance关键5. 把质量门绑到项目项目 →Project Settings → Quality Gate选Always use a specific Quality Gate选中你刚创建的AI-Code-Hardened保存三、配置 AI 专用规则模板Quality ProfileAI 代码常见问题复杂度高、嵌套深、函数长、安全校验弱。要单独建一套更严的规则集。1. 复制并扩展官方模板顶部 →Quality Profiles找到对应语言如 Java、Python的Sonar way三点 →Extend→ 命名XXX-AI-Hardened如 Java-AI-Hardened2. 重点收紧的规则示例以 Python 为例其他语言同理认知复杂度python:S3776默认 15 →改为 8强制拆小函数函数长度python:S138默认 100 行 →改为 50 行嵌套深度python:S134默认 4 →改为 2安全类规则启用所有“输入校验、权限检查、硬编码密钥”相关规则默认常关闭3. 把规则模板绑到项目项目 →Project Settings → Quality Profiles对应语言选XXX-AI-Hardened保存四、可选AI 代码自动识别Enterprise/Cloud如果用 GitHub Copilot Business可开启自动检测管理员 →Administration → AI Features → AI Code Autodetection启用后SonarQube 会根据 Copilot 提交特征自动标记 AI 代码五、CI/CD 流水线必须加的步骤不管规则怎么配流水线必须强制执行# 伪代码示例Jenkins/GitLab CIstage(SonarQube Scan){steps{withSonarQubeEnv(SonarQube){sh sonar-scanner-Dsonar.projectKeyxxx-Dsonar.qualitygateAI-Code-Hardened}}post{always{// 质量门不通过直接阻断timeout(time:1,unit:HOURS){waitForQualityGate abortPipeline:true}}}}六、推荐组合直接抄标记项目开启“Contains AI-generated code”质量门用Sonar way for AI Code或自建AI-Code-Hardened规则模板基于 Sonar way 扩展收紧复杂度、长度、嵌套全开安全校验流水线扫描不通过禁止合并一句话总结AI 代码不是免死金牌而是要更严的门禁 更细的规则 更强的门禁。

相关新闻