FOSSA:开源许可证合规管理

FreeGuideOnline 最新 2026-07-04

bash curl -H 'Cache-Control: no-cache' https://raw.githubusercontent.com/fossas/fossa-cli/master/install-latest.sh | bash


**验证安装**
```bash
fossa --version

获取 API 密钥

  1. 登录 FOSSA 后台,进入 Account Settings → Integrations → API Keys
  2. 创建密钥并复制。
  3. 配置 CLI 使用该密钥:
export FOSSA_API_KEY=<你的API密钥>

将以上命令写入 ~/.bashrc~/.zshrc 以持久化。

快速扫描第一个项目

在任一项目根目录执行:

cd your-project
fossa init   # 生成 .fossa.yml 配置文件(可自定义扫描范围)
fossa analyze

fossa analyze 会自动检测项目类型(通过 package.jsonpom.xml 等),解析依赖树并上传至 FOSSA 服务器。完成后,控制台会输出一个项目 URL,点击即可查看详细报告。

初始化配置文件最小示例.fossa.yml

version: 3
project:
  name: my-opensource-project
  team: default
  link: https://github.com/your/repo
targets:
  only:
    - type: npm  # 指定包管理器
      path: .

解读许可证报告

在 FOSSA 仪表板上,点击项目进入详情页,看到三个主要视图:

依赖列表

显示每个依赖的名称、版本、检测到的许可证及许可证风险等级(高/中/低)。风险等级基于策略定义。

许可证摘要

展示所有发现的许可证及其出现次数,帮助快速定位最广泛使用的许可证。点击具体许可证可列出使用该许可证的全部组件。

问题视图

列出违反策略的依赖项、未识别许可证的组件以及已知漏洞。每一项都会给出“修复建议”,例如升级版本或寻求替代组件。

策略与合规管理

创建自定义策略

进入 Policies 页面,点击 New Policy,定义规则:

  • 规则类型:许可证类型(如 copyleft)、许可证具体名称(如 GPL-3.0-only)、组件来源等。
  • 触发动作:警告、阻止(阻断 CI)、需要审批。
  • 生效范围:全局或特定项目团队。

示例:禁止任何 AGPL- 协议的依赖进入生产构建。

规则: license starts with "AGPL-"
动作: 阻止

启用审批流程

对于需要人工判断的许可证(如自定义许可证),可要求组件在使用前获得指定审批人批准。审批记录自动存档,用于审计。

合规报告导出

随时生成合规报告(PDF 或 CSV),包含所有依赖与许可证、已解决和未解决的问题清单,适合提交给法务或客户。

集成到 CI/CD 流程

FOSSA 可以嵌入持续集成流水线,自动检查每个提交的合规状态。

GitHub Actions 示例

steps:
  - uses: actions/checkout@v3
  - uses: fossas/fossa-action@v1
    with:
      api-key: ${{ secrets.FOSSA_API_KEY }}
  - uses: fossas/fossa-action@v1
    with:
      api-key: ${{ secrets.FOSSA_API_KEY }}
      run-tests: true