SonarQube 分析器:自动化代码质量与问题解决 - Openclaw Skills
作者:互联网
2026-04-06
什么是 SonarQube 分析器?
SonarQube 分析器是 Openclaw Skills 的一个强大集成,旨在简化代码质量管理。它直接连接到您的自托管 SonarQube 实例,以获取问题、验证质量门,并根据行业标准规则建议具体的重构步骤。通过弥合静态分析与主动开发之间的鸿沟,该技能使开发人员能够保持高标准,而无需手动开销。
使用这样的 Openclaw Skills 可以将安全和风格检查无缝集成到您的 AI 驱动开发环境中。它为开发人员提供有关项目健康状况的即时反馈,帮助在进入生产环境之前消除技术债务。
下载入口:https://github.com/openclaw/skills/tree/main/skills/felipeoff/sonarqube-analyzer
安装与下载
1. ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install sonarqube-analyzer
2. 手动安装
将技能文件夹复制到以下位置之一
全局模式~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置
3. 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 sonarqube-analyzer。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
SonarQube 分析器 应用场景
- 对特定的拉取请求(Pull Request)进行自动化代码审查,以识别阻塞和关键问题。
- 在进行部署之前检查项目的质量门状态。
- 以 Markdown 格式生成详细的问题报告,用于团队文档和透明度。
- 针对冗余片段或错误操作符使用等常见的 SonarQube 规则应用自动化修复。
- 通过集成的 Openclaw Skills 质量报告简化 CI/CD 流水线。
- 技能使用提供的宿主 URL 和身份验证令牌连接到自托管的 SonarQube 实例。
- 它根据项目密钥、拉取请求 ID、严重级别或状态代码检索问题。
- 引擎根据预定义的 SonarQube 规则(例如嵌套三元运算符的 S3358)分析特定的代码异味和漏洞。
- 生成综合摘要,包括对开发人员具有操作性的代码建议和示例。
- 如果启用,该技能可以针对受支持的规则应用自动化修复,以立即改善代码健康。
SonarQube 分析器 配置指南
确保已安装 Node.js 18+。设置环境变量并安装包以开始使用 Openclaw Skills 进行分析:
export SONAR_HOST_URL=http://127.0.0.1:9000
export SONAR_TOKEN=your_token_here
# 为特定项目运行分析
node scripts/analyze.js --project=my-project --pr=5
SonarQube 分析器 数据架构与分类体系
该技能将输出数据组织成结构化 JSON 对象,以便代理或 CI 工具轻松使用。架构包括:
| 字段 | 描述 |
|---|---|
total |
在项目/PR 中识别出的问题总数。 |
issues |
包含严重程度、文件路径、行号和规则 ID 的问题对象数组。 |
suggestions |
重构建议、代码示例以及修复是否可自动化。 |
summary |
按严重程度(BLOCKER, CRITICAL, MAJOR 等)分类的问题细分。 |
nextSteps |
解决剩余问题所需的优先手动任务列表。 |
SonarQube Analyzer Skill
Analisa projetos no SonarQube self-hosted, obtém issues e sugere solu??es automatizadas.
Ferramentas Registradas
sonar_get_issues
Obtém lista de issues de um projeto/PR no SonarQube.
Parametros:
projectKey(string, obrigatório): Chave do projetopullRequest(string, opcional): Número da PR para análise específicaseverities(string[], opcional): Severidades a filtrar (BLOCKER, CRITICAL, MAJOR, MINOR, INFO)status(string, opcional): Status das issues (OPEN, CONFIRMED, FALSE_POSITIVE, etc.)limit(number, opcional): Limite de issues (padr?o: 100)
Exemplo:
{
"projectKey": "openclaw-panel",
"pullRequest": "5",
"severities": ["CRITICAL", "MAJOR"],
"limit": 50
}
sonar_analyze_and_suggest
Analisa issues e sugere solu??es com base nas regras do SonarQube.
Parametros:
projectKey(string, obrigatório): Chave do projetopullRequest(string, opcional): Número da PRautoFix(boolean, opcional): Tentar aplicar corre??es automáticas (padr?o: false)
Exemplo:
{
"projectKey": "openclaw-panel",
"pullRequest": "5",
"autoFix": false
}
sonar_quality_gate
Verifica o status do Quality Gate de um projeto.
Parametros:
projectKey(string, obrigatório): Chave do projetopullRequest(string, opcional): Número da PR
Exemplo:
{
"projectKey": "openclaw-panel",
"pullRequest": "5"
}
Configura??o
O skill usa as seguintes configura??es do ambiente:
SONAR_HOST_URL=http://127.0.0.1:9000 # URL do SonarQube
SONAR_TOKEN=admin # Token de autentica??o
Uso
Analisar uma PR específica:
node scripts/analyze.js --project=my-project --pr=5
Gerar relatório de issues:
node scripts/report.js --project=my-project --format=markdown
Verificar Quality Gate:
node scripts/quality-gate.js --project=my-project --pr=5
Estrutura de Resposta
sonar_get_issues
{
"total": 12,
"issues": [
{
"key": "...",
"severity": "MAJOR",
"component": "apps/web/src/ui/App.tsx",
"line": 346,
"message": "Extract this nested ternary...",
"rule": "typescript:S3358",
"status": "OPEN",
"solution": "Extract nested ternary into a separate function..."
}
],
"summary": {
"BLOCKER": 0,
"CRITICAL": 0,
"MAJOR": 2,
"MINOR": 10,
"INFO": 0
}
}
sonar_analyze_and_suggest
{
"projectKey": "openclaw-panel",
"analysis": {
"totalIssues": 12,
"fixableAutomatically": 8,
"requiresManualFix": 4
},
"suggestions": [
{
"file": "apps/web/src/ui/App.tsx",
"line": 346,
"issue": "Nested ternary operation",
"suggestion": "Extract into independent component",
"codeExample": "...",
"autoFixable": false
}
],
"nextSteps": [
"Run lint:fix for auto-fixable issues",
"Refactor nested ternaries in App.tsx",
"Replace || with ?? operators"
]
}
Solu??es Automáticas Disponíveis
| Regra | Problema | Solu??o Automática |
|---|---|---|
| S6606 | Use || instead of ?? |
? Substituir por ?? |
| S3358 | Nested ternary | ? Requer refatora??o manual |
| S6749 | Redundant fragment | ? Remover fragment |
| S6759 | Non-readonly props | ? Adicionar readonly |
| S3776 | Cognitive complexity | ? Requer extra??o de componentes |
| S6571 | any in union type |
? Remover redundancia |
Requisitos
- Node.js 18+
- Acesso ao SonarQube (localhost:9000)
- Token de autentica??o configurado
Integra??o com Workflows
Exemplo de uso em GitHub Actions:
- name: Analyze with SonarQube Skill
run: |
npm install -g @felipeoff/sonarqube-analyzer
sonarqube-analyzer r
--project=my-project r
--pr=${{ github.event.pull_request.number }} r
--suggest-fixes
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
阿里云大模型服务平台百炼新人免费额度如何申请?申请与使用免费额度教程及常见问题解答
办公 AI 工具 OpenClaw 部署 Windows 系统一站式教程
Qwen3.6 正式发布!阿里云百炼同步开启“AI大模型节省计划”超值优惠
【新手零难度操作 】OpenClaw 2.6.4 安装误区规避与快速使用指南(包含最新版安装包)
OpenClaw 2.6.4 可视化部署 打造个人 AI 数字员工(包含最新版安装包)
【小白友好!】OpenClaw 2.6.4 本地 AI 智能体快速搭建教程(内有安装包)
零基础部署 OpenClaw v2.6.2,Windows 系统完整教程
【适合新手的】零基础部署 OpenClaw 自动化工具教程
开发者们的第一台自主进化的“爱马仕”来了
极简部署 OpenClaw 2.6.2 本地 AI 智能体快速启用(含最新版安装包)
AI精选
