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 提供了从扫描到校验的完整闭环,帮助开发者规避开源许可证风险。

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

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

小夜