Replace personal namespaces with groups
## Problem In GitLab, we have the concept of personal namespaces. In a personal namespace, you have personal projects and snippets. This does not line up with the rest of GitLab. We should explore getting rid of personal namespaces altogether. Instead, when a user is created, a private group is created at the top level of the instance, and the user is the `OWNER` of that private group. That private group is just a normal group. The user could change it to a public group if they wanted to. So they can keep that group for personal uses, or they can start inviting other people to participate in it. The benefit here is that now personal use cases is just a simple group. We don't have to re-invent things like issue boards and labels, which folks have been wanting: * https://gitlab.com/gitlab-org/gitlab/-/issues/26888+ * https://gitlab.com/gitlab-org/gitlab/-/issues/18073+ I don't think this means we need to radically change the profile pages though. Those pages can remain. Just the personal projects and snippets sections/pages should probably be removed/redirected. This should be our long-term goal. We would need to consider how to migrate existing personal projects and snippets of users. ## Proposal Every gitlab `User` `has_one :namespace` which is the personal namespace. This is determined by the `namespace.type = Namespaces::UserNamespace.sti_name`. We can convert to a `Group` by changing the `type` value to `'Group'`. There may be other pieces required to fully establish a `Group`. Clues will be provided in `Group` model callback hooks, `Groups::CreateService`, and maybe any triggers. We will need to check that User vs Group does not include any special handling for routes. ## Open Questions 1. This will have pricing/tier implications. Should that private group have all features on GitLab.com? Probably should be a basic Core group to start off with and you can pay to add higher tiers. 2. Determine how this concept fits within [Organizations](https://handbook.gitlab.com/handbook/engineering/architecture/design-documents/organization/).
epic