SuperAPI AI 工具集

sonar-fix-issue

编程与开发

查看项目

更新于 10-16 02:44

技能介绍

SonarQube — Fix Issue 是一个用于修复 SonarQube 所识别代码质量或安全问题的技能。

用途

该技能针对 SonarQube 报告中的某个具体问题,按规则键和代码位置进行修复。它适用于需要快速处理单条 SonarQube 告警、且希望改动范围可控的场景。

使用方式

技能通过命令行形式调用,示例包括:

sonar-fix-issue java:S1481 src/main/java/MyClass.java:42 sonar-fix-issue python:S2077 src/auth/login.py sonar-fix-issue Remove unused variable in MyClass.java

参数可以是规则键(如 java:S1481、python:S2077)加文件路径与可选行号(如 src/auth/login.py:34),也可以是纯自然语言描述。如果既无法确定规则键也无法确定文件路径,技能会询问:“Which rule and file should I fix?”

主要能力与执行步骤

  1. 识别问题:解析用户提供的参数,提取规则键、文件路径与可选行号,或纯语言描述。

  2. 查询规则(若给出规则键):调用 mcp__sonarqube__show_rule 获取完整规则描述、理由与修复指导,然后再改动代码。除非工具 schema 要求,否则不添加额外参数(如 projectKey);集成后规则查询通常只需要规则键。如果 MCP 工具不可用,则回退到 sonar api get "/api/rules/show?key=<rule-key>"。如果 sonar 也不可用或未认证,则依赖内置的 SonarQube 规则知识。

  3. 读取文件:读取完整文件内容。如果给出了行号,则围绕该行重点分析,但仍读取整个文件以理解上下文。

  4. 应用修复:做最小改动以解决规则违规;不重构周边代码,不修复无关问题;保持现有行为不变,修复不得改变代码的功能。

  5. 解释改动:编辑后简要说明违规是什么、规则为何标记它、改了什么以及为何能解决问题。

  6. 建议后续步骤:建议调用 sonar-analyze 技能并传入文件以确认没有引入新问题;建议调用 sonar-list-issues 技能并传入项目键(或 sonar-project.properties 中的 sonar.projectKey),CLI 始终使用 -p。

适用场景

适合在开发过程中针对 SonarQube 单条告警进行定点修复,尤其是已知规则键和文件位置时。也支持用自然语言描述问题,便于快速定位。

限制

技能依赖 SonarQube 规则信息;若 MCP 工具与 sonar CLI 均不可用或未认证,则只能依赖内置规则知识。修复范围限定为最小改动,不处理无关问题。关于收费、价格、平台支持等更多信息,资料中暂未提供。