Create GitLab Achievement (Badging/Award) System
In https://gitlab.com/gitlab-org/gitlab/-/issues/374017 we identified that we would like to be able to award/recognize leading organizations (on their user profiles).
After bouncing some ideas around, it was clear that other open source projects would have similar requirements, and it would benefit everyone if we build something into the platform to support recognition.
This epic aims to capture/discuss the solution we are looking to build.
* As we already have the concept of [badges](https://docs.gitlab.com/ee/user/project/badges.html), to avoid confusion we are going to call them: Achievements (thanks @bwill)
* Achievements will consist of: A name, a description and an avatar/image
* We may also add a "revokeable" property to distinguish between; awards which once earned live forever (for example... 1st merged mr) vs those which are only valid for a period of time (for example... leading organization)
* We may also consider adding a "multiple" property which allows the same badge to be awarded multiple times
* Achievements will be created at namespace level (which means they can be created for groups or projects)
* Achievements will be awarded to users
* Achievements will be displayed on user profiles (if the user opts in - ideally on an achievement by achievement basis)
* Bonus points if we can create a shareable embed code for each or all user achievements
* The API should be prioritized, so we can get something out ASAP
* A CRUD interface for both the achievements and awarding the achievements will follow
Remember, iteration is one of GitLab values, and we will be looking to delivery a minimum viable solution which we can then iterate on.
epic