Gitee 帮助中心 / 帮助详情

    开源贡献者协议(CLA)

    什么是开源贡献者协议

    CLA,全称 Contributor License Agreement(贡献者许可协议),简单来说就是项目接收贡献者提交的 Pull Request 之前,需要贡献者签署的一份协议,协议只需签署一次,对该贡献者的所有提交都生效。

    Gitee 已原生支持 CLA 协议的管理、签署和合规审查过程。
    该功能目前已面向 Gitee 上的「组织」开放,组织管理员可通过 组织主页->设置->CLA 管理 进行 CLA 的管理。

    CLA 由项目所有方自行定义,在细节上有大大小小的差异,没有统一的标准,但大致包括以下内容:

    • 关于签署该 CLA 的主体和贡献的定义;
    • 授予著作权和专利许可给拥有该软件知识产权的公司或组织;
    • 签署者保证依法有权授予上述许可;
    • 所有的贡献内容均为个人版权所有,或经过版权所有者的授权,对于贡献内容造成的侵权并不知情;
    • 贡献内容的免责声明;
    • 说明贡献者提交非原创作品应该采用的方式;
    • 保证在获悉任何方面不准确的事实或情况之时通知签约方。

    CLA 跟开源许可证不同,开源许可证也就 100 多种,CLA 那是成千上万种,每一个项目都有自己的 CLA。不过这些 CLA 之间也有共同点,因为大部分都是从 Apache 软件基金会制定的 CLA 演变过来的。其条款内容冗长,且里面涉及很多法律术语,除了律师之外,大部分普通人都很难理解这些术语代表什么意思。如果你要弄懂,可能得花时间花钱找律师咨询。

    没有签署 CLA 会怎么样?

    没有签署 CLA,则表示贡献者没有授权,如果企业或组织要重新签署 CLA,或更换开源许可证,又或者起诉他人侵权,总之所有需要有版权才能做的事情,那么都必须一一通知贡献者并取得对方同意。

    对于贡献者较少的开源软件来说,这很容易;倘若是一些大型和长期项目,这个过程可能会耗费很长时间,因为企业或组织要找的可能不仅仅是数量众多的贡献者,还有他们的继承人。

    相关案例

    2015 年,LLVM 社区发起了对代码进行重新授权的提案,希望能从现有的 NCSA 许可证更改为 Apache 2.0 License。六年过去了,这项工作还在进行中。LLVM 社区正在追踪一些过去的贡献者,以收集他们对协议变更的认可。目前有 94% 以上的旧代码获得重新许可的批准,预计 2023 年可以接近 100% ,届时就可以合法地变更许可证。

    听起来有些不可思议,但没办法,大家都是这么做的,Mozilla 也是花了数年时间(2001-2006 年)重新授权 Firefox、Thunderbird 和相关软件。

    创建 CLA

    组织管理员可通过 组织主页->设置->CLA 管理 进行 CLA 的管理。点击 + 后进入具体贡献者协议创建。

    相关 CLA 创建选项说明如下:

    • CLA 名称:即将创建的贡献者协议名称,名称将在协议签署页面、相关 Pull Request 页面中展示。
    • 关联仓库:当前贡献者协议关联的代码仓库,一个仓库仅支持关联一份贡献者协议,一个组织下支持存在多份不同的贡献者协议,用于不同项目的贡献签署。
    • 协议内容:贡献者协议的正文

    输入图片说明

    点击 确定 后即创建了一份贡献者协议。

    输入图片说明

    管理 CLA

    组织管理员可通过 组织主页->设置->CLA 管理 进行 CLA 的管理。

    如何签署 CLA

    组织管理员可通过 组织主页->设置->CLA 管理-> 相关 CLA 协议 的 查看协议 选项获得贡献者协议的签署地址。

    输入图片说明

    个人用户可以通过开源组织协议签署地址进行签署,或在向开源项目提交 Pull Request 后,通过相关 Pull Request 页面访问协议签署地址进行签署。

    输入图片说明

    协议签署

    个人用户在签署贡献者协议时,需要填写贡献者自身的姓名,并在签署邮箱下拉菜单中选择一个已绑定当前 Gitee 帐号的邮箱进行签署。完成签署后,即可继续进行相关 Pull Request 的合并沟通。

    输入图片说明

    管理个人已签署协议

    组织管理员可通过网站右上角 个人设置->我签署的 CLA 对自己已签署的贡献者协议进行查看和管理。

    输入图片说明

    搜索帮助