Gerrit服务器安装LFS插件后出现Not authorized to perform operation verify lock on repository错误的解决求助
这个错误ERROR com.googlesource.gerrit.plugins.lfs.locks.LfsLocksContext : Not authorized to perform operation verify lock on repository的核心意思是:执行LFS锁验证操作的主体(可能是提交代码的普通用户、Gerrit服务账号,或是CI/CD自动化工具),没有被授予对应仓库的LFS锁验证权限。
Gerrit的LFS锁机制用于防止多人同时修改同一份大文件,当系统尝试验证某个LFS文件锁的有效性时(比如用户提交代码时检查锁是否合法),如果发起操作的实体没有足够权限,就会抛出这个错误。
具体修复方法
检查Gerrit权限配置
登录Gerrit管理界面,找到出现问题的仓库(或全局权限设置),进入权限管理页面。在权限列表中找到LFS分类下的Verify lock权限,确保执行操作的用户/用户组已被授予该权限。如果是全局配置,会应用到所有仓库;如果是仓库级配置,需单独确认目标仓库的权限规则。验证操作主体的身份权限
如果是自动化工具(比如CI机器人)触发的操作,检查工具使用的服务账号是否加入了拥有LFS锁权限的用户组。很多时候这类问题是因为误用了匿名账号或权限不足的测试账号导致的。检查LFS插件配置文件
打开Gerrit的LFS插件配置文件(通常位于etc/lfs.config),确认没有额外的权限限制规则。比如有些配置会强制要求只有特定组才能操作锁,要确保相关操作主体符合配置要求。同时确认锁功能没有被禁用(比如lfs.locks.enabled参数是否设为true)。刷新Gerrit权限缓存
修改权限后,Gerrit可能会缓存旧的权限规则,执行以下命令强制刷新缓存:gerrit flush-caches --cache permissions排查仓库ACL继承问题
如果是嵌套仓库,确认它是否正确继承了父仓库的LFS权限规则。有些子仓库会被单独设置更严格的ACL,导致继承的权限被覆盖。
内容的提问来源于stack exchange,提问作者Jophen

