具有签名的git中的可信开发路径

Nak*_*ble 6 git version-control gnupg digital-signature

我想建立一个可靠的软件开发路径.这意味着在接受之前,代码的每次更改都必须由作者和一位审阅者签名.这些更改的签名必须在发布时可以验证,或者必须有一些其他方法可以确保存储库不会被篡改,或者添加其他更改.

我期望用于此的版本控制系统是git,但也接受其他选项.签名可以通过GnuPG或SSL证书进行.

我想的工作流程大致是:

  1. 当前验证的主干是分支的
  2. 一个或多个开发人员在分支机构中开发了更改
  3. 一个或多个开发人员签署分支所做的更改
  4. 审阅者审查并测试更改
  5. 审稿人签署分支机构所做的更改
  6. 分支被"合并"到当前已验证的中继线

合并不一定是万无一失的,例如未经审查的更改需要无法合并到中继 - 只是在发布之前,需要有一种方法来检查中继中是否有任何未查看(未签名)的更改.并且通常,不需要防止篡改,仅检测到篡改.

我想要一个关于如何设置它以及每个操作如何完成的简短指南.一旦我得到一些指示,我可以自己弄清楚具体细节.

另外,我在技术上已经知道'git tag -s',但我不确定如何将它应用于这个特定问题.

Dus*_*tin 2

在您标记之前,更改不会被签名。在此之前的任何内容都可以由作者或其他带外机制验证,但不能从 git 内部验证。

git 可以验证更改的继承是否正确,但只有签名标签才能验证更改本身是否正确。

对于您的工作流程,您可能会发现自己标记了很多。