开发者证书协议
DCO 即开发者证书协议(Developer Certificate of Origin),是一种用于确保贡献者对其提交到开源项目的代码拥有合法权益并同意相关许可的声明机制
什么是开发者证书协议(DCO)
DCO 是一个简单的声明,附在每个代码提交信息中。贡献者通过签署这个声明,表明他们有权提交所贡献的代码,并同意该代码遵循开源项目的许可协议。
原理
贡献者在每次提交代码时,在提交信息中添加一个 Signed-off-by 行,该行包含贡献者的姓名和电子邮件地址。这个声明意味着贡献者确认以下几点:
- 他们对所贡献的代码拥有版权或有合法的授权来贡献这些代码。
- 他们同意将这些代码以项目指定的开源许可证分发。
- 他们保证没有将受保密协议约束的代码贡献到项目中。
安装 DCO
默认未安装DCO应用,需自行前往开放市场安装 AtomGit DCO 应用。
- 选择要安装的空间,点击【选择】
- 选择生效仓库范围,根据需要选择全部代码库或者部分代码库
- 点击【安装并授权】,完成后跳转至【DCO 签署】界面
签署DCO协议
DCO应用安装后,可在 DCO 管理界面签署协议:
- 点击【签署DCO协议声明】
- 输入【姓名】
- 输入【邮箱】
- 点击【本人已阅读并理解以上开发者原创声明内容及适用的隐私政策,本人统一签署并遵守该声明】
- 点击【我同意签署】
代码提交签署流程
流程
- Fork【安装DCO时选择的生效仓库】远程仓库,到本地仓库
- 修改代码
- 提交PR
在使用 Git 进行代码提交时,可以通过以下两种方式提交 Signed-off-by:
- 手动添加签名:【your.email@example.com与签署DCO协议时邮箱要一致】 在提交信息中手动添加 Signed-off-by 行,例如:git commit -m "添加新功能 Signed-off-by: Your Name your.email@example.com"
- atomgit自动添加签名【atomgit账号绑定的邮箱与签署DCO协议时邮箱要一致】
验证 DCO
贡献者通过PR提交合并请求的时候,会触发DCO签署验证,如果贡献者未签署该DCO协议,或者提交代码时未添加Signed-off-by,则会出现以下提示:
贡献者通过PR提交合并请求的时候,会触发DCO签署验证,如果贡献者签署该DCO协议,并且提交代码时添加Signed-off-by,则会出现以下提示: