【问题标题】:How to ask for CLA signature in merge requests on GitLab?如何在 GitLab 的合并请求中请求 CLA 签名?
【发布时间】:2019-06-05 13:07:51
【问题描述】:

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

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

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

简而言之,我如何使签署 CLA 的过程对贡献者和我自己都尽可能轻松,同时仍使协议(在某种程度上)具有法律约束力?

编辑:致投票结束的人:我再次检查了guidelines,在我看来,问题完全属于software tools commonly used by programmers; and is a practical, answerable problem that is unique to software development。它也不属于列出的例外情况,至少我理解它们的方式是这样。也就是说,我希望能对投票的原因发表评论,以便我可以更好地提出问题或在需要时找到更合适的 StackExchange 站点。

【问题讨论】:

  • 啊,“无痛”和“合法”在同一个句子中。一定是个技巧问题:)
  • @MadPhysicist 我向你保证不是,我对答案很感兴趣...... ;) 我相信这将是一个妥协。
  • 我也很好奇。有趣的是,这不是已经在 GitHub 上发布的东西。
  • @MadPhysicist 不确定这是否只是一个错字,但要明确一点:我特别要求 GitLab,作为 GitHub这个问题(长期)解决了吗?
  • 自动更正导致的拼写错误。

标签: git gitlab


【解决方案1】:

目前 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

对于公开注册的 repo(注册到 cla-assistant),最后一个(cla-assistant)将:

  • 对每个打开的拉取请求的评论,要求贡献者签署 CLA
  • 允许贡献者在拉取请求中签署 CLA
  • 使用签名者的 GitHub 帐户对签名者进行身份验证
  • 当贡献者同意 CLA 时更新拉取请求的状态
  • 如果关联的 Gist 和 CLA 发生变化,自动要求用户为每个新的拉取请求重新签署 CLA

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

但是:由于这些服务与 GitHub 帐户相关联,并且 GitLab 没有等效服务,因此不应解雇 DCO,尤其是考虑到 2017 年 11 月 GitLab 博客文章“GitLab Transitions Contributor Licensing to Developer Certificate of Origin to Better Support Open Source Projects; Empower Contributors "

GitLab 摆脱 CLA 的目的是使其代码托管和所有开源项目的协作开发基础架构现代化。

此外,对于不想签订法律条款的开发人员来说,要求 CLA 会成为问题;他们没有审查 CLA 合同,他们实际上放弃了拥有和贡献开源代码的权利。

还有“We're switching to a DCO for source code contributions”。对于 GitLab 项目,DCO like this one 仍然是首选解决方案。
请参阅analysis comparing CLA and DCO

【讨论】:

  • 谢谢!你说的“依赖第三方服务网站”是什么意思?您能否概述一下工作流程的样子?
  • @johndodo 我已经编辑了答案以解决您的评论。
  • 谢谢!如果我理解正确,那么此工作流程与拥有 GitHub 帐户的贡献者相关联?
  • @johndodo 是的:目前没有使用 GitLab 帐户的等效服务 (forum.gitlab.com/t/contributor-cla-checker/9626/2)。您可以在github.com/silverstripe/silverstripe-framework/issues/… 中看到另一种方法。
  • @johndodo 我明白了。关键是:GitLab 似乎并不倾向于使用/考虑 CLA。因此,它切换到 DCO。因此,如果GitLab 项目有任何等效的基于 CLA 的支持,我会感到惊讶。
猜你喜欢
  • 2021-06-04
  • 2019-03-13
  • 2018-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-07
  • 1970-01-01
相关资源
最近更新 更多