Rename GitLab-reserved paths that our users want to use
Description
As seen in https://gitlab.com/gitlab-org/gitlab-ce/issues/25893#note_20964090, some of our users want to use namespace or project paths that are reserved because they conflict with GitLab functionality - user-controlled paths are not segregated from hardcoded paths. A full list of reserved names can be found in these files:
- https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/validators/namespace_validator.rb
- https://gitlab.com/gitlab-org/gitlab-ce/blob/master/app/validators/project_path_validator.rb
As new functionality is introduced into GitLab, more restrictions will be added.
Proposal
Some of these restrictions are more commonly encountered than others. Words that are feasible project or group names, such as 'assets' and 'dashboard' restrict our users more often than words like 'raw' or 'create_dir'.
We can retain the current naming schemes while giving our users more freedom by renaming some GitLab-reserved paths to free them up for our users again. assets
is a clear candidate, as this is a configurable Rails path. It could be /_assets
or /.assets
instead, for instance.
Conclusion
Based on the discussion below, we decided to prefix all GitLab-reserved routes with /-/
. This is currently being done for all newly introduced routes, so there should be no more renames.
But we still need to rename a bunch of existing routes to free up the reserved words that our users might like to use.
For example: https://gitlab.com/gitlab-org/gitlab-ce/issues/33550