开源许可证管理工具

LicenGuard是一个用于管理和跟踪企业内部开源软件依赖及其许可证信息的工具,提供API、仪表盘和AI辅助功能。

  • by TurkNet
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 TurkNet/LicenGuard

使用说明

LicenGuard 的

Monoreto清点内部OSS依赖项(C#、Node.js、Python、Java等),将其许可证元数据存储在MongoDB中,为AI副驾驶员公开Python API、React仪表板和可选的MCP服务器。

建筑

backend/                 # FastAPI + MongoDB backend (MVC structure)
apps/web/                # React UI (Webpack, JavaScript)
servers/mcp-licenguard/  # MCP server bridging the API to copilots
  • 后端(Python/FastAPI) –实现模型/控制器/视图,因此每个库条目都包含多个版本,包括许可证名称和URL。
  • Web用户界面(React) –简单的仪表板,用于添加库、附加版本和可视化许可证覆盖率。
  • MCP服务器(节点) –可选桥接,以便IDE/聊天代理可以获取库或钻取组件。

后端设置

cd backend
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python seed.py   # optional sample data
uvicorn app.main:app --reload --port 4000

MongoDB默认为 mongodb://localhost:27017/licenguard.调整 .env 指向任何集群。

Web UI设置

npm install
npm run dev --workspace @licenguard/web
# build with npm run build --workspace @licenguard/web

通过shell设置前端环境变量(例如。 API_URL/VITE_API_URL)如果后端未打开 http://localhost:4000.

MCP服务器

cd servers/mcp-licenguard
npm install
API_URL=http://localhost:4000 npm run dev

使用您喜欢的工具(如Claude、VS Code)注册MCP二进制文件,无需离开聊天室即可浏览许可证数据。

API亮点

  • GET /libraries –列出包含版本的库。
  • POST /libraries –创建库条目; POST /libraries/{libraryId}/versions 附加一个版本。
  • GET /libraries/search?q= –在本地搜索并回退到MCP发现。
  • POST /libraries/repositories/scan –克隆一个仓库,检测依赖文件,并运行MCP文件分析。
  • POST /libraries/repositories/scan/highest-risk –相同的repo扫描流,但返回具有最高值的库 risk_score 用于CI/CD门控(有效载荷: {"url": "<git repo url>"}).

MongoDB数据形状

{
  "_id": "6650f7ab5b4c4e2b3c1a1234",
  "name": "express",
  "ecosystem": "npm",
  "description": "Fast, unopinionated, minimalist web framework for Node.js",
  "repository_url": "https://github.com/expressjs/express",
  "officialSite": "https://expressjs.com",
  "versions": [
    {
      "version": "4.19.2",
      "license_name": "MIT",
      "license_url": "https://opensource.org/licenses/MIT",
      "notes": "Detected via LICENSE and package.json",
      "license_summary": [
        { "summary": "Permissive for commercial use", "emoji": "✅" },
        { "summary": "Requires copyright + license notice", "emoji": "ℹ️" }
      ],
      "evidence": [
        "LICENSE",
        "package.json:license"
      ],
      "confidence": 0.94,
      "risk_level": "low",
      "risk_score": 12,
      "created_at": "2024-06-01T12:00:00Z"
    }
  ],
  "created_at": "2024-06-01T12:00:00Z",
  "updated_at": "2024-06-01T12:00:00Z"
}

这种规范化的格式使每个OSS组件和版本审计准备就绪,并与许可证元数据一起捕获证据、摘要和风险评分。

截图

查看
主仪表板
版本列表
版本详细信息
导航
手动搜索
手动结果
文件上传
上载完成
回购搜索
回购结果