Help us learn about your current experience with the documentation. Take the survey.
GitLab UI 中的已签名提交
- Tier: Free, Premium, Ultimate
- Offering: GitLab Self-Managed, GitLab Dedicated
此功能的可用性由功能标志控制。 有关更多信息,请查看历史记录。 此功能可用于测试,但尚未准备好用于生产环境。
当您使用 GitLab 用户界面创建提交时,提交不会由您直接推送。 相反,提交是代表您创建的。
要对这些提交进行签名,GitLab 使用为实例配置的全局密钥。 由于 GitLab 无法访问您的私钥,因此创建的提交无法使用与您的账户关联的密钥进行签名。
例如,如果用户 A 应用了由用户 B 撰写的 建议, 则提交包含以下内容:
Author: User A <[email protected]>
Committer: GitLab <[email protected]>
Co-authored-by: User B <[email protected]>先决条件
在使用 GitLab UI 提交的提交签名之前,您必须 进行配置。
提交的 Committer 字段
在 Git 中,提交既有作者也有提交者。
对于 Web 提交,Committer 字段是可配置的。要更新此字段,请参阅
配置 GitLab UI 提交的提交签名。
GitLab 提供了多个安全功能,这些功能依赖于将 Committer 字段设置为创建提交的用户。
例如:
当提交由实例签名时,GitLab 依赖于 Author 字段来实现这些功能。
使用 REST API 创建的提交
使用 REST API 创建的提交
也被视为基于 Web 的提交。
使用 REST API 端点,您可以设置提交的 author_name 和 author_email 字段,
这使得可以代表其他用户创建提交。
当启用提交签名时,使用 REST API 创建的提交如果其 author_name 和 author_email
与发送 API 请求的用户不同,则会被拒绝。
故障排除
Web 提交在变基后变为未签名
当满足以下条件时,分支中先前已签名的提交会变为未签名:
- 为从 GitLab UI 创建的提交配置了提交签名。
- 合并请求从 GitLab UI 进行了变基。
发生这种情况是因为之前的提交被修改,并添加到目标分支的顶部。GitLab 无法对这些提交进行签名。
要解决此问题,请在本地对分支进行变基,然后将更改推回 GitLab。