You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub启用Signed Commits后PR因签名要求被阻排查求助

GitHub签名PR无法合并的排查方向
  • 签名密钥未添加到GitHub账户的「受信签名者」列表:即使提交显示Verified,如果你的GPG/SSH密钥没有被账户设为受信,仓库的分支保护规则可能不认。进入GitHub账户设置的SSH/GPG密钥页面,确认密钥状态为「受信」(Trusted),而非仅已添加。
  • 提交邮箱与GitHub账户绑定邮箱不匹配:签名提交时使用的邮箱必须是GitHub账户已验证的邮箱。执行git log --show-signature查看提交的签名邮箱,对比GitHub账户的已验证邮箱列表,注意大小写完全一致(比如user@example.com和User@Example.com会被视为不同邮箱)。
  • 分支保护规则配置异常:检查仓库的分支保护规则,确认「要求提交签名」选项覆盖了当前PR的基础分支,且没有额外限制条件(比如仅允许特定组织成员的签名)。同时确认规则未被意外修改或禁用。
  • PR提交链中存在未签名的隐式修改:如果PR提交后,有人通过GitHub界面修改了提交标题、描述,或添加了标签,会生成未签名的「伪提交」。执行git fetch origin pull/<你的PR编号>/head拉取PR最新提交,用git log --show-signature检查完整提交链的每个签名状态。
  • GPG密钥已过期:执行gpg --list-secret-keys --keyid-format LONG查看本地GPG密钥的过期时间,若密钥已过期,即使提交显示Verified,分支保护规则仍可能拒绝。需更新密钥有效期并重新上传至GitHub。
  • SSH签名算法不被允许:若使用SSH密钥签名提交,仓库分支保护可能限制了允许的算法(比如仅支持ED25519)。检查GitHub账户的SSH密钥类型,同时确认仓库分支保护是否有算法限制。
  • 仓库启用严格的组织级签名验证:若仓库属于组织,可能启用了仅允许组织受信密钥签名的规则。作为外部贡献者,需联系仓库管理员将你的密钥添加到组织的受信签名者列表。
  • 本地签名配置不符合仓库要求:比如仓库仅接受GPG签名,但你使用了S/MIME签名。执行git config --global user.signingkey和git config --global commit.gpgsign确认本地签名配置与仓库要求一致。

内容的提问来源于stack exchange,提问作者Shane Gannon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 22:16:05