dsh-license-guard:依賴許可證合規掃描

前言

在 DeepSeek Harness (DSH) 的插件生態中,依賴管理是構建可靠智能體的基礎。開源組件的許可證合規性直接影響項目的商業可行性。尤其是 AGPL-3.0 等強傳染性許可證,若混入閉源項目,可能導致源代碼泄露。dsh-license-guard 插件旨在解決這一問題,提供掃描、歸一化與合規校驗能力。

功能概覽

該插件用於掃描 node_modules 目錄下的所有依賴,將其許可證標識歸一化爲 SPDX 格式,並按寬鬆、弱傳染、強傳染等類別分類。它支持在發佈前按策略攔截不合規的依賴。

安裝與啓用

在終端中執行以下命令安裝插件:

dsh plugin add github:uckkk/dsh-license-guard

安裝後,需在 DSH 的 profile 配置文件(如 package.json 中的 dsh.profile.bundles)中添加 "dsh-license-guard" 才能啓用。

使用方法

插件提供了兩個核心工具。

查看許可證構成

先執行掃描,查看項目依賴的許可證分佈:

license_scan(root="/workspace")

執行合規校驗

在發佈前進行門禁檢查,指定禁止的許可證類型:

license_check(root="/workspace", deny=["AGPL-3.0"])

默認策略

插件內置了默認策略:
* 寬鬆許可證(MIT、Apache-2.0、ISC、BSD、0BSD、Zlib、Unlicense、CC0-1.0 等):默認允許。
* 強傳染許可證(GPL-3.0、AGPL-3.0、SSPL-1.0、GPL-2.0 等):默認禁止。
* 未知/未授權許可證:默認計入違規,可通過參數 includeUnknown: false 關閉。

技術說明與注意事項

  • 實現方式:純 Node.js 實現,無需網絡連接或外部服務。
  • 數據來源:識別基於依賴包 package.json 中的 license 或 licenses 字段,識別不到的會標記爲“未知”。
  • 合規性質:屬於啓發式合規篩查,不能替代專業的法律意見。正式商用或發佈前,請務必進行法律複覈。
  • 運行權限:插件以 DSH 進程的權限運行,請自行審閱源碼。

總結

dsh-license-guard 提供了從掃描到校驗的完整閉環,幫助開發者規避開源許可證風險。

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

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

小夜