首页/开发/Git 与协作速查/CLA:贡献者许可协议
协作与代码评审75 条

CLA:贡献者许可协议

部分项目/公司要求贡献者先签署 CLA,授权项目按特定条款使用贡献;通常由机器人检查并在首次 PR 时提示签署流程。

Git 与协作速查开发更新于 2026-10-13

CLA 是什么

CLA(Contributor License Agreement,贡献者许可协议)是部分公司或基金会要求贡献者在提交代码前签署的法律协议:授权项目按特定条款使用其贡献。通常由平台机器人检查:首次提交 PR 时提示签署链接,未完成签署前 PR 会被标记待处理。CLA 与 DCO 不同,两者可以同时要求、互不替代。

基本信息

触发时机首次向启用 CLA 的项目提交 PR 时由机器人提示
签署形式个人网页签署,或公司与基金会之间的企业协议
检查方平台机器人自动检查并在 PR 上打标
与 DCO 关系DCO 是提交里的签章声明,CLA 是单独协议,可同时要求
记录主体以平台账号记录签署状态

典型使用场景

  • 公司开源项目:法务要求先签 CLA 才接受外部贡献
  • 基金会项目:统一用 CLA 或 DCO 管理贡献授权
  • 个人贡献者:首次 PR 被机器人提示后按链接线上签署
  • 企业贡献:员工以公司身份贡献,先确认雇主已签企业 CLA

排查要点

排查要点
# 1. 机器人在 PR 评论里给出签署链接
# 2. 完成签署后回复机器人提示语,或等它重新扫描
# 3. 公司员工先确认雇主是否已签企业 CLA
# 4. 签署状态在 PR 的检查列表里可核对

CLA 与 DCO 对照

维度CLADCO
形式单独签署的协议提交信息里的 Signed-off-by 声明
记录位置平台签署记录每个提交的正文
主要用途授权项目使用贡献声明贡献者有权提交
可同时要求是是
CLA 属于法务流程,代码层面无法绕过;等待签署期间可在 PR 里说明状态,维护者一般会保留 PR 不关闭。
签署前先读清条款差异:有的 CLA 是版权使用许可,有的是版权转让,公司背景下建议法务确认后再签。

易错点

  • 多用邮箱被判为不同人:同一贡献者多个提交邮箱会被回退到未签署状态,统一提交邮箱更省事
  • 换雇主后覆盖范围变化:企业 CLA 绑定当时的公司主体,长期贡献者跳槽后要重新确认
  • 把 CLA 当一次性流程:企业协议到期或主体变更时需要续签,法务变动要同步到项目
  • 忽略 DCO 要求:只签了 CLA 但提交里没有 Signed-off-by 仍会被检查拦住

数据来源与参考

  • GitHub Docs:Contributor License Agreements(组织与仓库设置)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌