Help us learn about your current experience with the documentation. Take the survey.
故障排除组
命名空间和组的验证错误
在创建或更新命名空间或组时执行以下检查:
- 命名空间不能有父级。
- 组的父级必须是组,不能是命名空间。
如果在您的 GitLab 安装中看到这些错误(尽管可能性很小),请联系支持团队,以便我们改进此验证。
使用 SQL 查询查找组
要在 rails console 中基于 SQL 查询查找并存储组数组:
# 查找名称以 '%oup' 结尾的组和子组
Group.find_by_sql("SELECT * FROM namespaces WHERE name LIKE '%oup'")
=> [#<Group id:3 @test-group>, #<Group id:4 @template-group/template-subgroup>]使用 Rails 控制台将子组转移到其他位置
如果通过 UI 或 API 无法转移组,您可能需要尝试在 Rails 控制台会话中进行转移:
如果运行不正确或在不当条件下运行,更改数据的命令可能会造成损害。请始终先在测试环境中运行命令,并准备好备份实例以便恢复。
user = User.find_by_username('<username>')
group = Group.find_by_name("<group_name>")
## 将 parent_group 设置为 nil 可使子组成为顶级组
parent_group = Group.find_by(id: "<group_id>")
service = ::Groups::TransferService.new(group, user)
service.execute(parent_group)使用 Rails 控制台查找待删除的组
如果您需要查找所有待删除的组,可以在 Rails 控制台会话中使用以下命令:
Group.all.each do |g|
if g.self_deletion_scheduled?
puts "组 ID: #{g.id}"
puts "组名称: #{g.name}"
puts "组路径: #{g.full_path}"
end
end使用 Rails 控制台删除组
有时,组删除可能会卡住。如果需要,可以在 Rails 控制台会话中使用以下命令尝试删除组:
如果运行不正确或在不当条件下运行,更改数据的命令可能会造成损害。请始终先在测试环境中运行命令,并准备好备份实例以便恢复。
GroupDestroyWorker.new.perform(group_id, user_id)查找用户对组或项目的最大权限
管理员可以查找用户对组或项目的最大权限。
-
启动一个 Rails 控制台会话。
-
运行以下命令:
user = User.find_by_username 'username' project = Project.find_by_full_path 'group/project' user.max_member_access_for_project project.iduser = User.find_by_username 'username' group = Group.find_by_full_path 'group' user.max_member_access_for_group group.id
无法删除带有 Project Invite/Group Invite 徽章的可计费成员
当用户属于已与您的 项目 或 组 共享的外部组时,通常会发生以下错误:
通过组邀请加入的成员无法被移除。您可以移除整个组,或请求被邀请组的所有者移除该成员。
要将用户从可计费成员中移除,请选择以下任一选项:
- 从您的项目或组成员页面中移除被邀请的组成员身份。
- 建议。如果您有权访问该组,请直接从被邀请的组中移除用户。
权限缺失或不足,删除按钮被禁用
当用户尝试在组转移期间从已归档的项目中删除 container_registry 镜像时,通常会发生此错误。要解决此错误:
- 取消归档项目。
- 删除
container_registry镜像。 - 归档项目。
组所有者无法批准带有 Awaiting user signup 徽章的待处理用户
向非 GitLab 用户的电子邮件邀请列在 Pending members 下,状态为 Awaiting user signup。
当用户注册 GitLab.com 时,状态会更新为 Pending owner action,组所有者可以完成批准过程。