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

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

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

小夜