这是一个开源许可证集合工具,用于方便开发者查看和引用各种开源协议,支持项目许可管理和参考。
该项目通过GitHub API拉取并保存各种开源许可证的详细信息,包括许可证文本、权限、条件和限制等。用户可以快速查找和使用常见的开源许可证,无需手动搜索和复制。
目前支持以下常见的开源许可证:
├── main.go # 主程序代码,用于从GitHub API拉取许可证信息 ├── api/ # 各许可证详细信息目录 │ ├── agpl-3.0 # AGPL-3.0许可证详细信息 │ ├── apache-2.0 # Apache 2.0许可证详细信息 │ ├── mit # MIT许可证详细信息 │ ├── licenses # 许可证汇总信息 │ └── ... # 其他许可证详细信息 ├── go.mod # Go模块定义 ├── go.sum # 依赖版本锁定 ├── init-repo.sh # 仓库初始化脚本(用于快速初始化Git仓库,生成LICENSE、.gitignore和README.md) ├── LICENSE # 项目自身的许可证 └── README.md # 项目说明文档
如果需要更新或重新拉取许可证信息,可以运行以下命令:
# 使用默认配置
go run main.go
# 指定仓库地址
go run main.go -repo zhiqiangwang/licenses
程序将从GitHub API拉取最新的许可证信息并保存到本地。
该工具支持以下配置方式(按优先级从高到低):
-repo <仓库地址>CNB_REPO_SLUGzhiqiangwang/licensesapi/licenses 文件中api/ 目录下对应的文件中(如 api/mit)init-repo.sh 是一个便捷的仓库初始化脚本,可以帮助开发者快速初始化Git仓库并生成必要的配置文件。
在任意新的或已有的项目目录中,直接运行以下命令:
bash -c "$(curl -fsSL https://cnb.cool/zhiqiangwang/licenses/-/git/raw/main/init-repo.sh)"
或者,也可以先下载脚本,然后运行:
curl -fsSL https://cnb.cool/zhiqiangwang/licenses/-/git/raw/main/init-repo.sh -o init-repo.sh
chmod +x init-repo.sh
./init-repo.sh
每个许可证的文件包含以下主要字段:
key: 许可证唯一标识符name: 许可证名称spdx_id: SPDX标准下的许可证标识符url: 许可证在线地址node_id: GitHub节点IDhtml_url: HTML查看地址description: 许可证描述implementation: 如何应用此许可证的说明permissions: 许可证授予的权限列表conditions: 许可证要求的条件列表limitations: 许可证的限制列表body: 许可证完整文本featured: 是否为推荐许可证欢迎提交Issue或Pull Request来改进此项目。