写点什么

GitHub Licensed 让遵循 OSS 许可协议变得更容易

2018 年 3 月 27 日

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

GitHub Licensed 是一款开源工具,旨在针对 GitHub 项目的所有依赖,简化许可健全性保障工作和许可文件维护工作

Licensed 可以检查一个库的多个项目里的各种语言和包管理器的依赖。其支持的包管理器包括 Bower、Bundler、Cabal、Go、Manifest lists 和 NPM。对于发现的每个依赖,Licensed 可以从他们在本地环境里的位置提取基本的元数据和相关的许可信息,如许可类型及相关的法律文本(通常保存在LICENSE文件中)。为了检测许可类型和法律文本,Licensed 使用 Licensee 。检查出的所有元数据都保存在一个特定的位置,如果分发的时候需要,就可以用来生成所有许可证的副本。

据 GitGHub 介绍,更重要的是,元数据和许可文本可以加入版本控制。如果你这样做了,新增的任何依赖都会反映到 PR-level 上,许可专家可以专门审核新增的许可证,检查任何应该处理的问题。根据他们自己在这个过程中得出的经验,GitHub 声称,这是一种有效的方法,可以减少和开发人员的摩擦,确保任何产品中包含的依赖都满足组织的需求。

Licensed 的运行由一个配置文件控制,你可以在其中指定需要扫描依赖项的 source_path位置,保存元数据的cache_path目录以及可以使用的许可证列表。下面是一个简单的配置文件:

复制代码
# 相对于 git 库根目录的路径
# 如果不设置,则默认为“.licenses”
cache_path: 'relative/path/to/cache'
# 相对于 git 库根目录的路径,指定枚举依赖的工作目录
source_path: 'relative/path/to/source'
# 默认情况下,允许使用遵循下列许可协议的依赖
allowed:
- mit
- apache-2.0
- bsd-2-clause
- bsd-3-clause
- cc0-1.0

Licensed 是一个 Ruby gem,把下面这行命令添加到 Gemfile 即可安装:

复制代码
gem 'licensed', :group => 'development'

然后运行:

复制代码
$ bundle

你可以通过以下命令让 Licensed 列出项目的所有依赖:

复制代码
licensed list

类似地,cache命令将缓存许可证和元数据,而status命令会检查依赖的状态,并在许可证数据丢失或者许可类型需要重新审查时发出警告。

GitHub 强调,Licensed 只是一个在早期检查任何许可问题的工具,不能代替专业的法律咨询。

查看英文原文 GitHub Licensed Aims to Make it Easier to Comply with OSS Licenses

2018 年 3 月 27 日 19:00441
用户头像

发布了 1008 篇内容, 共 308.1 次阅读, 收获喜欢 272 次。

关注

评论

发布
暂无评论
发现更多内容

来了来了,2020 首场 Meetup ,可!

Apache Flink

大数据 flink 流计算 实时计算 大数据处理

理解雾计算(Fog Computing)与边缘计算(Edge Computing)

老任物联网杂谈

雾计算 Fog Computing 边缘计算 Edge Computing

数据挖掘|cross_val_score交叉验证使用

黄大路

Python 数据挖掘 学习 数据分析

如何快速对应用系统做一个360度画像诊断?

姜戈

Java 运维 多线程 网络 内存

Java小想法: JDK许可证

范学雷

Java 编程语言

软件产品开发流程

Interstate5

软件开发 软件开发流程

真实 Java 笔试题

旭霁

Java 面试

程序员的晚餐 | 5月9日 炖蹄髈

清远

程序员人生

白话计算机网络通信过程

WB

计算机网络 转行程序员

做程序员有未来吗

这小胖猫

程序员 个人成长 职业规划 技术人

产品经理中必会SQL技能,相关内容研发可不予支持

韩超

MySQL sql 产品经理

Scrum精髓 - Scrum的核心到底是什么

Bob Jiang

Scrum 敏捷 Scrum精髓 敏捷精髓

如何打造个人品牌?

石云升

个人 品牌

DevOps怎样影响开发运维人员

脚动两轮男之漂流小王子

DevOps

Android Studio NDK 编译 Bsdiff 库

码农亮哥

android-studio ndk bsdiff

高仿瑞幸小程序 05 更正轮播组件的高度计算

曾伟@喵先森

小程序 微信小程序 前端

关于查尔斯-斯特里克兰

黄大路

提升认知 小说 个人提升 认识自己

面试官浅析程序员面试过程中的二三事

joe

互联网 个人成长 方法 职场 文化

Redis学习笔记(集合类型)

编程随想曲

redis

小棉袄,最终却没有变成你的防弹衣

小天同学

个人成长 成长 感悟 母亲节 感恩

软件产品的信息安全问题

Interstate5

软件开发 信息安全

Redis 命令执行过程(上)

程序员历小冰

redis 源码分析

ROS与OpenAI结合使用教程(概览)

辣么大

《你好架构师之 压榨硬件价值的利器容器(Docker)》

再见小飞侠

模块化设计思想产品设计应用

燕陈华

产品设计 模块化流程 流程图

LeetCode 1232. Check If It Is a Straight Line

liu_liu

LeetCode

Spring整合MyBatis详细分析

Java收录阁

mybatis

软件产品信息安全 - 数据分类

Interstate5

软件开发 信息安全 数据分类

向上管理第一项:路径P背后的目标B

kimmking

管理

数据库连接池的大小

Java收录阁

数据库

回"疫"录(11):别让善良寒了心

小天同学

疫情 回忆录 现实纪录 纪实

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

GitHub Licensed让遵循OSS许可协议变得更容易-InfoQ