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 密钥
- 登录 FOSSA 后台,进入 Account Settings → Integrations → API Keys。
- 创建密钥并复制。
- 配置 CLI 使用该密钥:
export FOSSA_API_KEY=<你的API密钥>
将以上命令写入 ~/.bashrc 或 ~/.zshrc 以持久化。
快速扫描第一个项目
在任一项目根目录执行:
cd your-project
fossa init # 生成 .fossa.yml 配置文件(可自定义扫描范围)
fossa analyze
fossa analyze 会自动检测项目类型(通过 package.json、pom.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