mcpField
S
sonar-fix-issue

sonar-fix-issue

github.com/sonarsource测试与质量11444 次安装今天更新
代码仓库

关于 sonar-fix-issue

该技能指导编码 Agent 修复 SonarQube 标记的代码质量或安全问题,尽量减少改动并保持原有行为。它可在修改代码前查询 SonarQube 规则详情。

主要功能

  1. 01解析规则、文件和行号输入
  2. 02查询 SonarQube 规则说明
  3. 03阅读完整文件上下文
  4. 04以最小改动保持原有行为
  5. 05说明改动并建议后续检查

适用场景

  1. 01按规则键修复问题
  2. 02修复指定文件中的问题
  3. 03处理自然语言描述的问题

MCP 相关

若工具可用,它会调用 SonarQube MCP 工具 `mcp__sonarqube__show_rule` 获取规则说明。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sonarsource/sonarqube-agent-plugins --skill sonar-fix-issue

安装后在 Claude Code 中输入/sonar-fix-issue确认已加载。

详细介绍

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

说明

步骤 1:识别问题

解析用户提供的参数,查找以下内容:

  • 规则键(例如 java:S1481、python:S2077)
  • 文件路径和可选的行号(例如 src/auth/login.py:34)
  • 如果未提供规则键,则查找自然语言描述

如果既无法确定规则键,也无法确定文件路径,请询问:“应该修复哪个规则和文件?”

步骤 2:查询规则(如果提供了规则键)

调用 mcp__sonarqube__show_rule,根据规则键检索完整的规则说明、原因和修复指南,然后再修改任何代码。不要添加额外参数(例如 projectKey),除非工具架构要求提供这些参数——集成后,查询规则通常只需要规则键。

如果 MCP 工具不可用,则改用 sonar api get "/api/rules/show?key=<rule-key>"。如果 sonar 也不可用或未通过身份验证,则依靠对 SonarQube 规则的内置知识。

步骤 3:读取文件

读取完整的文件内容。如果提供了行号,则重点分析该行附近的内容,但仍要读取整个文件以了解上下文。

步骤 4:应用修复
  • 进行能够解决规则违规的最小改动
  • 不要重构周边代码,也不要修复无关问题
  • 保留现有行为——修复不得改变代码的功能
步骤 5:说明改动

编辑后,简要说明:

  • 违规内容是什么
  • 规则为何会标记该问题
  • 改动了什么,以及为何能解决问题
步骤 6:建议后续操作
  • “调用 sonar-analyze 技能并传入 <file>,以确认没有引入新问题。”
  • “调用 sonar-list-issues 技能并传入项目键(或 sonar-project.properties 中的 sonar.projectKey)——CLI 始终使用 -p。”

评论

支持 Markdown