dsh-sonarqube:DeepSeek Harness 的只读 SonarQube 工具集

前言

DeepSeek Harness (DSH) 的插件化架构允许智能体通过外部 API 获取信息。如果你需要让智能体直接查询 SonarQube Community Build 的数据,dsh-sonarqube 插件提供了一套只读工具。它通过 SonarQube 的 Web API,让智能体能够查看质量门禁、代码问题、安全热点以及代码覆盖率等指标,而无需修改 SonarQube 的状态。

插件定位

该插件由 maxmilian 维护,采用 MIT 许可证,归类为联网工具。它的核心价值在于提供了一套只读的接口,让智能体能够“看到”代码质量报告,从而辅助决策或生成报告。

核心功能

插件提供了以下工具,所有操作均为只读:

  1. sonarqube_system_status:读取实例状态和版本信息。
  2. sonarqube_quality_gate:读取指定项目、分支或 Pull Request 的质量门禁结果。
  3. sonarqube_search_issues:按类型、严重性、状态、分支或 Pull Request 搜索问题。
  4. sonarqube_search_hotspots:按状态、分支或 Pull Request 搜索安全热点。
  5. sonarqube_get_hotspot:读取单个安全热点的完整详细信息。
  6. 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。

注意事项

  1. 只读限制:当前版本(0.1)不支持修改问题、热点或执行确认、解决等操作。
  2. 安全性:插件使用 Authorization: Bearer ... 进行认证,且绝不会在返回结果或日志中暴露 Token。
  3. TLS 限制:v0.1 版本不支持禁用 TLS 验证或绕过自签名证书,如果 SonarQube 使用自签名证书,需要提前解决证书问题。

总结

dsh-sonarqube 是一个面向 DeepSeek Harness 的 SonarQube 查询插件。它通过一套标准的只读工具,让智能体能够无缝接入代码质量数据,适用于代码审查辅助、质量报告生成等场景。

项目地址: https://github.com/maxmilian/dsh-sonarqube

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜