当前位置: 首页 > 面试题库 >

如何自动验证所有提交者PGP对其提交进行签名

曹兴贤
2023-03-14
问题内容

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的
设定)能够签署部分限制
将被合并为唯一的贡献,提交(而不是在提交
任何随机合并两个分支之间)。

有关该过程的更多详细信息,请参见:

  • “How to use a signed tag in pull requests“
  • ““Pulling signed tag” is already in use in the field“
  • “Using a GPG Key to Sign-Off Git Commits and Emails” (for the gpg part)

因此,如果您的持续集成构建仅合并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')方法会自行对我们指定的表单