这是 GitLab 中的 known bug。
将您的项目转移到另一个命名空间(不包含下划线),然后将其删除。
如果您无法更改路径或转移项目,对于 gitlab.com 客户,由于该错误,only resolution is to contact support and have them delete it。
如果您对自我管理的实例具有管理控制台访问权限,请you can use the rails console 解决此问题。
自我管理的解决方法(通过 Rails 控制台)
解决此问题具有破坏性。弄乱控制台时,请务必仔细(或更多)检查您的工作,以免弄乱。否则,您可能会发现自己从备份中恢复。实际上,为了额外的安全性,我还是建议您在此之前进行备份。
在Rails console中,执行以下命令,在适当的地方替换和:
我已经稍微重写了代码指令,以便管理员可以更轻松地执行它们,并使用脚本顶部的常量进行参数化,并更轻松地键入/粘贴到 rails 控制台并进行一些注释了解发生了什么。
先根据需要设置参数。
PROJECT_ID=<put your project id here>
USER_NAME='root' # change this if you want to use a different user
p=Project.find PROJECT_ID
u=User.find_by_username(USER_NAME)
确认用户和项目正确,然后尝试正常删除项目:
ProjectDestroyWorker.new.perform(p.id, u.id, {})
您应该会看到从.perform 返回的false(您会看到=> false 打印在控制台中)。确认删除错误是容器ContainerRegistry::Path::InvalidRegistryPathError
p.delete_error
# => # "ContainerRegistry::Path::InvalidRegistryPathError"
如果您确认删除错误,您可以继续执行项目组件的单独销毁,不包括容器注册表以及清理内容:
service = ::Projects::DestroyService.new(p, u)
service.send(:log_destroy_event)
service.send(:trash_relation_repositories!)
service.send(:trash_project_repositories!)
service.send(:destroy_web_hooks!)
service.send(:destroy_project_bots!)
service.send(:destroy_ci_records!)
p.destroy_dependent_associations_in_batches(exclude: [:container_repositories, :snippets])
Projects::UnlinkForkService.new(p, u).execute
p.leave_pool_repository
p.destroy!
service.system_hook_service.execute_hooks_for(p, :destroy)
u.invalidate_personal_projects_count