是否有一种工具可以在 git 中使拉取请求和组合评论变得万无一失且安全?
我知道有几个相关的问题,已经在 github 上提出过(另请参阅:使用 git 进行代码审查,在线代码审查工具与 Git 集成)。
先前问题中提出的解决方案具有很好的界面,但是在访问控制方面却失败了。我们公司太小了,不能强迫一个人审查代码或有专门的维护人员。因此,我们正在寻找一种工具来确保(或至少鼓励)在将代码推送到我们的中央存储库之前对其进行审查。
注意:不需要绝对的用户访问控制,因为我们通常信任我们的员工。但是,我们希望禁止直接推送到我们的中央存储库,而不限制推送给单个人的权限。
因此,该工具(或工具和脚本的组合)应至少完成以下任务:
- 使拉取请求在 Web 界面中可见。(gerrit 做到了)
- 中央存储库链接到该工具,因此可以进行只读访问,但推送至少需要另一个人来审查和确认变更集。
- 负责审查和确认的人可以是开发团队中的任意人。
- 该工具必须自动检测(并拒绝)导致合并冲突的拉取请求。
- 它不应该使用已知会更改提交的 SHA1 哈希的 git 函数。
我对此解决方案的建议:
- 使用 gerrit 进行拉取请求和审查处理。
- gerrit 应该总是有一个 master 的克隆。
- 对于每个拉取请求,gerrit 检查补丁是否适用于 master 而没有冲突(这将是一个脚本挂钩,我不知道 gerrit 是否具有它们)。
- 中央存储库由具有 shell 访问权限的特权用户拥有(此处名为
gerrit
),并通过 http(s) 公开。 - 每当其他人查看代码时,Web 界面中都会有一个应用按钮,该按钮会自动将更改推送到中央存储库。
不幸的是,我不知道 gerrit 并且文档很少。是否可以在 gerrit 中实现此工作流程?是否有另一种工具可以满足这些要求?