Add support for Categorization functionality (topics) on group and projects

Proposal

Gitlab is currently not offering any flexible way for its users to add categorization information to repositories and groups. Such information would be used to help other people find and contribute to repos by capturing the repository or group's intended purpose, subject area, affinity groups, or other important qualities. And making that information easily searcheable (UI and API).

Users of gitlab can of course add files (e.g. in markdown forma) to the repositories themselves but that's not information which is easily searchable, one would have to clone all repositories to be able to search it. That would induce quite heavy processing for the users and a need to code it all. The gitlab UI, Rest and GraphQL api would not support any of that.

For organizations with thousands of repositories the need for such categorisation information and associated seach functionality is crucial; relying on the hierarchy of groups and repositories is not sufficient. They can only capture one type of categorization while the organization may be interested in multiple. For example a possible hierarchy reflecting the teams in the organization may be created, but then how can one filter for only repositores containing "frontend"? or repositories having with "domain-a" to do? it's not possible. as of now and should be.

This issue won't be specified further here, but I'd like to underline that:

Edited by Florent Legendre