English | 中文 | Français | Español | العربية | Русский
本文档介绍如何使用 SonarCloud 分析结果与 AI 集成,以便自动获取代码质量问题并使用 AI 辅助修复。
该集成方案通过以下步骤工作:
graph TD
A[代码开发] --> B[SonarCloud 分析]
B --> C{检测到问题?}
C -->|是| D[AI 分析问题]
D --> E[修复建议]
E --> F[实施修复]
F --> A
C -->|否| G[AI 优化分析]
G --> H[优化建议]
H --> A
- GitHub Actions 工作流在 CI/CD 过程中运行 SonarCloud 分析
- 分析完成后,工作流提取 SonarCloud 问题并生成两种格式的报告:
- JSON 格式:包含完整的原始数据,适合 AI 深入分析
- Markdown 格式:格式化的人类可读报告,包含问题摘要和详细信息
- 这两个报告作为工作流构件(artifacts)上传
- 使用提供的 Fish 函数,可以轻松下载这些报告并提供给 AI 进行分析和修复建议
将 sonar-ai-fix 函数添加到您的 Fish 配置中:
# 在 ~/.config/fish/config.fish 中添加
source /path/to/mcp-dbutils/scripts/sonar-ai-fix.fish或者,您可以直接运行脚本来临时加载函数:
source scripts/sonar-ai-fix.fish在项目根目录中运行:
sonar-ai-fix这将下载最新的 SonarCloud 分析报告,并将其保存为两个文件:
sonar_report.md:Markdown 格式的报告sonar_issues.json:JSON 格式的原始数据
有两种方式使用这些报告:
-
打开
sonar_report.md文件:bat sonar_report.md
-
将内容复制给 AI(如 Claude),并请求修复建议:
这是我项目的 SonarCloud 分析报告,请帮我分析这些问题并提供修复建议。 [粘贴 sonar_report.md 内容]
对于需要更深入分析的情况,可以使用 JSON 数据:
-
打开 JSON 文件:
bat sonar_issues.json
-
将内容提供给 AI 进行更详细的分析:
这是我项目的 SonarCloud 原始分析数据,请帮我深入分析这些问题并提供修复建议。 [粘贴 sonar_issues.json 内容]
在 .github/workflows/quality-assurance.yml 中,我们添加了两个关键步骤:
-
提取 SonarCloud 问题:
- 使用 SonarCloud API 获取未解决的问题
- 将问题格式化为 JSON 和 Markdown 格式
-
上传报告构件:
- 将生成的报告作为工作流构件上传
- 使构件可以通过 GitHub CLI 下载
sonar-ai-fix.fish 脚本提供了一个方便的函数,用于:
- 检查当前目录是否是项目目录
- 获取最新的工作流运行 ID
- 下载 SonarCloud 问题报告构件
- 将报告保存到当前目录
- 提供使用说明
- 确保您已安装并配置 GitHub CLI (
gh) - 确保您有足够的权限访问 GitHub 仓库和工作流
- 报告中的问题链接指向 SonarCloud 网站,需要有权限访问项目
- 此功能最适合与本地 AI 工具(如 Claude Desktop)配合使用