首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在本地验证其他人签署的提交?

如何在本地验证其他人签署的提交?
EN

Stack Overflow用户
提问于 2020-06-22 12:44:02
回答 1查看 596关注 0票数 2

出于分析的目的,我想运行以下命令并查看哪些提交是在一个相当大的存储库中签名的:

git log --pretty="%h %G?"

根据Git文档%G?占位符可以返回:

  • 用于良好(有效)签名的G
  • B的错误签名
  • 一个有效性未知的好签名的U
  • X以获得过期的好签名
  • Y用于使用过期密钥所作的良好签名
  • R以获得由已撤销密钥所作的良好签名
  • 如果无法检查签名(例如缺少密钥),则为E
  • 无签名的N

预期的结果是为在G中显示为Verified的每个提交获取一个GitHub状态。然而,我主要得到的是E状态。

git verify-commit commit-sha对具有E状态输出的提交:

代码语言:javascript
复制
gpg: Signature made Wed  17 June 13:19:22 2020 EEST
gpg:                using RSA key C90455E28OCA2B4DAD319037E77216ECEABAF951
gpg: Can't check signature: No public key

我完成了以下gpg设置:

代码语言:javascript
复制
git config --global gpg.program $(which gpg)
curl https://github.com/web-flow.gpg | gpg --import
gpg --edit-key noreply@github.com (where I put `trust` and gave 6 - ultimate)
gpg --lsign-key noreply@github.com

我得到的git log状态G的唯一提交似乎是通过GitHub的UI完成的,因为它的键已成功地插入到gpg中。

我是否应该爬行并获取回购中所有投稿人的所有公钥(比如他们的电子邮件),然后将它们插入gpg中?实际上,在本地的GitHub中,查看所有提交的签名的最简单方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2020-06-22 13:31:54

我是否应该在回购中为所有投稿人抓取所有公钥(使用电子邮件),然后将它们插入gpg中?

是。gpg --recv-keys email1 email2…您可以从存储库中获得电子邮件列表:

代码语言:javascript
复制
git log --all --format="%ae" | sort -u
git log --all --format="%ce" | sort -u

(作者和提交人电子邮件)。让我们将其合并到几个命令中:

代码语言:javascript
复制
all_emails=$({ git log --all --format="%ae"; git log --all --format="%ce"; } | sort -u)
gpg --recv-keys $all_emails
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62514745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档