Github支持使用PGP密钥签署提交。
我们有一个开源项目,该项目接受没有PGP密钥的人员的贡献。安全性对我们至关重要,因此我们决定,
合并合并请求请求的每个人都将使用其PGP密钥对合并进行签名,因此每次实际提交都将由作者和/或合并直接签名。
设置连续集成构建以确保这确实发生的最佳方法是什么?如果有人将代码提交或合并到主存储库中,而没有使用给定授权密钥列表中的PGP密钥对其进行签名,我们希望构建失败,发出警报并可能还原提交/合并。
我们使用的是github,所以我想知道github挂钩是否有帮助。我相信我们正在使用Jenkins forCI,但是,这可能无关紧要,因为这将是自定义脚本。
需要说明的是:该项目接受开源开发人员的捐助,我们将不要求每个参与者都拥有PGP密钥。但是,每个在github中具有合并权限的人都必须具有PGP密钥,我建议的构建将对此进行验证。即使不是每个提交,合并提交本身也会被PGP 签名。
更新(2016年4月)
See “GitHub GPG signature verification”:
starting today GitHub will show you when commits and tags are signed.
When you view a signed commit or tag, you will see a badge indicating if the
signature could be verified using any of the contributor’s GPG keys uploaded
to GitHub.
You can upload your GPG keys by visiting thekeys settings
page.
原始答案(2014年6月)
通过编辑,您使用了“ Git恐怖故事:
带有签名提交的存储库完整性 ” 一文中的选项2 :
选项#2就像将-S参数传递给一样简单git merge。
如果合并是一个快进操作(也就是说,所有提交都可以简单地应用于
HEAD顶部而无需合并),那么您将需要使用该
–no-ff选项来强制执行合并提交。
然后做一个签名的请求拉(其中
的话可以随时签署commit.gpgsign的
设定)能够签署部分限制
将被合并为唯一的贡献,提交(而不是在提交
任何随机合并两个分支之间)。
有关该过程的更多详细信息,请参见:
因此,如果您的持续集成构建仅合并request-pull(在此测试脚本中使用),则可以检查这些特定的提交是否已签名(如果没有,则不要合并)。此脚本是此类检查的示例:“ check-commit- signature”。
作为所有开源项目中唯一正式的明确阶层,需要对提交者格外关注。提交者是系统中不可避免的对鉴别的让步,而其他角色则是尽可能的非鉴别。但是“鉴别”这里绝无轻视的含义。提交者发挥的功能是绝不可少的,我不相信一个项目会在没有这个角色的情况下取得成功。我们需要质量控制,是的,控制。总会有许多人觉得自己具备对某个程序修改的能力,但实际上只有少数人确实具备。项目不能依赖人们自己的判断,必须设置标准并为达到标准的人
问题内容: 这应该很简单,但是却让我发疯。我有一个用ajax提交的html5表单。如果输入的值无效,则会弹出一个提示您的信息。在运行ajax提交之前,如何检查条目是否有效? 形成: 提交: 问题答案: 默认情况下,jQuery对HTML5验证一无所知,因此您必须执行以下操作:
本文向大家介绍postgresql 如何关闭自动提交,包括了postgresql 如何关闭自动提交的使用技巧和注意事项,需要的朋友参考一下 postgresql中默认是自动提交的 查看是否是自动提交: 关闭自动提交: 另一种方式就在会话开始的时候以begin开始相当于关闭了自动提交,以end或者commit结束就可以了 补充:pg(hgdb)默认事务自动提交 默认情况下,AUTOCOMMIT(自动
问题内容: 我正在使用这种方法:http : //plnkr.co/edit/A6gvyoXbBd2kfToPmiiA?p=preview仅用于验证模糊字段。这可以正常工作,但是当用户单击“提交”按钮(不是真正的提交,而是对函数的data- ng-click调用)时,我也想验证它们(并显示这些字段的错误(如果有))。 单击该按钮时,是否有某种方法可以再次触发所有字段的验证? 问题答案: 对我有用的
本文向大家介绍ThinkPHP表单自动提交验证实例教程,包括了ThinkPHP表单自动提交验证实例教程的使用技巧和注意事项,需要的朋友参考一下 本文以实例讲述了ThinkPHP表单自动提交验证的实现过程,详细步骤如下所示: 一、模板部分: 二、模型部分form类程序代码: 三、控制器部分indexaction类程序代码:
本文向大家介绍EasyUI中在表单提交之前进行验证,包括了EasyUI中在表单提交之前进行验证的使用技巧和注意事项,需要的朋友参考一下 使用EasyUi我们可以在客户端表单提交之前进行验证,过程如下:只需在onSubmit的时候使用return $("#form1").form('validate')方法即可,EasyUi中form模块中的from('validate')方法会自行对我们指定的表单