如何在GitLab上的合并请求中要求CLA签名?

时间:2019-01-10 15:59:27

标签: git gitlab

我想发布GPL许可下的项目,但想在接受合并请求之前请求CLA(贡献者许可协议)签名。

GitHub上有一些解决方案可以自动执行此操作(ClaHubcla-assistant),但是我找不到与GitLab类似的东西。有long standing issue可以添加对它的本机支持,但它已经在2年前开放。

我知道Git sign-off可以用于DCO,但是我想知道它是否可以(某种程度上)用于签署CLA协议?

简而言之,我如何使贡献者和我本人尽可能轻松地签署CLA,同时仍然使协议(某种程度上)具有法律约束力?

编辑:对于投票结束的人:我再次检查了guidelines,在我看来,问题完全落在software tools commonly used by programmers; and is a practical, answerable problem that is unique to software development上。至少在我理解它们的方式上,它也不属于所列的例外。就是说,我很乐意对投票理由进行评论,以便我可以更好地提出问题或在需要时找到更合适的StackExchange网站。

1 个答案:

答案 0 :(得分:7)

目前,GitLab中没有对CLA的官方本地支持。
您所引用的问题与issue 48118 ("Stakeholder approval for merge requests")关联,但其自身与两个GitLab Enterprise 问题-issues 1979 "Multiple blocking merge request approval rules"issue 965 "Upgrading approvals with approval chain"

关联

因此,到目前为止,依靠第三方服务站点仍然是“减轻痛苦”的解决方案。
这就是说,使用原始问题中突出显示的服务:CLAClubcla-assistant.io

对于公开注册的回购协议(已注册为clasassant),最后一个(classassant)将:

  • 对每个打开的拉取请求的评论,要求贡献者签署CLA
  • 允许贡献者在拉取请求内签署CLA
  • 使用他或她的GitHub帐户对签署人进行身份验证
  • 当贡献者同意CLA时,更新拉取请求的状态
  • 在关联的Gist和CLA发生更改的情况下,自动要求用户为每个新的请求请求重新签名CLA

注意:您可以安装并运行自己的cla-assistant实例,以便将自己的项目的CLA存储在自己的专用数据库中。

但是:由于这些服务与 GitHub 帐户绑定,并且没有与GitLab等效的服务,因此不应撤销DCO,尤其是考虑到2017年11月GitLab博客文章“ {{3 }}“

  

GitLab脱离CLA的目的是现代化其代码托管和适用于所有开源项目的协作开发基础结构。

     

此外,对于不想输入法律条款的开发人员而言,要求CLA成为问题。他们没有审查CLA合同,而是有效地放弃了拥有所有权并对开放源代码做出贡献的权利。

和“ GitLab Transitions Contributor Licensing to Developer Certificate of Origin to Better Support Open Source Projects; Empower Contributors ”。对于GitLab项目,We're switching to a DCO for source code contributions仍然是选择的解决方案。
参见DCO like this one