Explore topics: find topic by case insensitive name for detail page
What does this MR do and why?
This MR is the 4. step of #351871 (closed).
When the background migration in !81503 (merged) is completed (3. step), the topic names are case insensitive unique. That's because the background migration in !81503 (merged) merges topics with the same name but different upper/lower case:
Topic | URL of detail page | Result after background migration |
---|---|---|
html |
https://gitlab.com/explore/projects/topics/html | Topic is kept, detail page still works |
HTML |
https://gitlab.com/explore/projects/topics/HTML | Topic is deleted, detail page results in a 404
|
Html |
https://gitlab.com/explore/projects/topics/Html | Topic is deleted, detail page results in a 404
|
As a result, the URL of deleted topics results in a 404. But it would be more convenient if the URL redirects to the kept topic instead. So this MR ensures that the detail page still displays the remaining topic regardless of the upper/lower case in the URL.
/cc @bufferoverflow
How to set up and validate locally
- Create a topic
topic1
via the Admin Area (see docs) or the project settings (see docs). - Visit the detail page of the topic: http://localhost:3000/explore/projects/topics/topic1
- Visit the detail page of the topic with other upper/lower case: http://localhost:3000/explore/projects/topics/TOPIC1
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.