You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

为何GitHub Pull Request审核中的Approve按钮处于禁用状态

为什么我作为仓库所有者无法批准自己的Pull Request?

你的场景回顾

你是GitHub仓库的唯一所有者,把本地代码提交到了release分支(基于develop分支的标签),然后创建了一个从release合并到master的Pull Request。现在你只能在审核区添加评论,却无法执行批准操作,而且PR显示没有合并冲突,处于可正常合并的状态。

附上你提供的截图:

PR界面截图

PR界面显示无法执行批准操作

master分支的保护设置截图

master分支的保护规则配置

大概率的原因分析

结合你的分支保护设置,问题大概率出在这几个地方:

  • 代码所有者审核限制:如果你的master分支保护开启了「Require review from Code Owners」(要求代码所有者审核),但你没在仓库的CODEOWNERS文件里把自己设为代码所有者,哪怕你是仓库主人,也没法自己批准。GitHub认的是CODEOWNERS里指定的角色,不是单纯的仓库所有者权限。

  • 禁止提交者自行批准:有些分支保护规则会限制PR的提交者/最后推送人不能自己批准自己的PR,比如开启了「Require approval from someone other than the last pusher」这类选项。哪怕你是所有者,这个规则也会生效——但你作为唯一所有者就会陷入无法操作的困境。

  • 强制遵守保护规则:如果开启了「Do not allow bypassing the above settings」(不允许绕过上述规则),那哪怕你是仓库所有者,也得严格遵守审核要求,不能跳过或自行批准不符合条件的PR。

可以尝试的解决办法

  1. 检查仓库根目录的CODEOWNERS文件,把自己添加为代码所有者,比如写入* @你的GitHub用户名,这样你就成为所有文件的代码所有者了。
  2. 进入仓库的「Settings」→「Branches」→「Branch protection rules」,找到master分支的规则:
    • 先临时关闭「Require review from Code Owners」选项,测试是否能正常批准PR;
    • 检查是否开启了限制提交者自批的相关选项,按需调整;
  3. 要是确实只有你一个人维护仓库,可以临时放宽分支保护规则,完成PR合并后再恢复原有设置即可。

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

火山引擎 最新活动