前言¶
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