前言¶
DeepSeek Harness (DSH) 的插件化架构允许智能体通过外部 API 获取信息。如果你需要让智能体直接查询 SonarQube Community Build 的数据,dsh-sonarqube 插件提供了一套只读工具。它通过 SonarQube 的 Web API,让智能体能够查看质量门禁、代码问题、安全热点以及代码覆盖率等指标,而无需修改 SonarQube 的状态。
插件定位¶
该插件由 maxmilian 维护,采用 MIT 许可证,归类为联网工具。它的核心价值在于提供了一套只读的接口,让智能体能够“看到”代码质量报告,从而辅助决策或生成报告。
核心功能¶
插件提供了以下工具,所有操作均为只读:
- sonarqube_system_status:读取实例状态和版本信息。
- sonarqube_quality_gate:读取指定项目、分支或 Pull Request 的质量门禁结果。
- sonarqube_search_issues:按类型、严重性、状态、分支或 Pull Request 搜索问题。
- sonarqube_search_hotspots:按状态、分支或 Pull Request 搜索安全热点。
- sonarqube_get_hotspot:读取单个安全热点的完整详细信息。
- sonarqube_get_measures:读取覆盖率、重复率、问题数量、热点数量或调用者选择的指标。
安装与启用¶
你可以通过以下命令从 GitHub 源安装插件:
dsh plugin --profile web add github:maxmilian/dsh-sonarqube#PINNED_COMMIT
安装完成后,需要重启对应的 DSH profile。安装命令会自动构建依赖(使用 Bun),请确保你有权限运行该构建脚本。
配置¶
插件依赖 SonarQube 的 URL 和认证 Token。建议通过环境变量配置凭证,避免在配置文件中明文暴露敏感信息:
export SONARQUBE_URL='https://sonarqube.example.com'
export SONARQUBE_TOKEN='your-token'
如果必须在配置文件中设置,可以使用 cordis.patch.yml。配置项优先级为插件配置高于环境变量:
| 配置项 | 环境变量回退 | 默认值 |
|---|---|---|
baseUrl |
SONARQUBE_URL |
必需 |
token |
SONARQUBE_TOKEN |
必需 |
requestTimeoutMs |
无 | 30000 |
maxResponseBytes |
无 | 5242880 |
典型用法¶
在对话中,你可以直接调用上述工具。例如:
- 查询项目质量门禁:
Use sonarqube_quality_gate for project acme-api on branch main. - 搜索问题:
Search open CRITICAL issues in acme-api, 50 per page. - 获取指标:
Get coverage and duplicated_lines_density for acme-api. - 查看热点详情:
Show the full Security Hotspot with key AX_example.
注意,branch 和 pull_request 参数互斥。搜索页大小限制为 1-100,且 page × page_size 不能超过 10,000。
注意事项¶
- 只读限制:当前版本(0.1)不支持修改问题、热点或执行确认、解决等操作。
- 安全性:插件使用
Authorization: Bearer ...进行认证,且绝不会在返回结果或日志中暴露 Token。 - TLS 限制:v0.1 版本不支持禁用 TLS 验证或绕过自签名证书,如果 SonarQube 使用自签名证书,需要提前解决证书问题。
总结¶
dsh-sonarqube 是一个面向 DeepSeek Harness 的 SonarQube 查询插件。它通过一套标准的只读工具,让智能体能够无缝接入代码质量数据,适用于代码审查辅助、质量报告生成等场景。
项目地址: https://github.com/maxmilian/dsh-sonarqube