README or "About" for groups - backend
Over the next two milestones the Manage:Workspace group will also work on adding a README functionality for groups. This will be possible via pinning a particular project in the group as a README project. In %15.8 we will focus on building the backend for this feature.
Problem
When we access a group or a user under https://gitlab.com/groups/namespace
or https://gitlab.com/u/namespace
what we see first is the activity of that user/group. We have tabs to navigate to their projects, groups, personal projects, etc. So far so good. However, we actually don't know anything about that user or that group besides the short description below its name.
Proposal
What if we had the possibility of adding a readme.md
to that welcoming screen? As users, we could describe ourselves and fill the file with information about our work, for example. As group owners, we could provide more information about that group or regarding the projects within, invite people to contribute, adding a contribution guideline, and so on. The content would be up to the user's creativity, as it is for any readme.
As we already have per project, we could have a button to add a ReadMe
file (if we want to do so) to our user and/or group landing page. This file, when created by the user or by the group owner, could be attached to an if
statement of some sort that would display it as default for landing pages. Else
, it would display the user/group activity as it already is by default.
To do so, we would need a new tab called "Read Me" on the user/group home page, before the tabs which are already there.
I mean something like that:
Then, when we navigate to the tab Read Me
we would see something similar as we already do for each project. We would have a button Add ReadMe
(or something like that) which could be placed at the description of the "Read Me" Tab.
I mean something like that:
After creating this ReadMe file the results would be pretty easy to imagine, so I believe I don't need to illustrate that.
Perhaps instead of "Read Me", the tab could be called About
and the file, about.md
.
MVC Implementation Plan
- Pin a particular project in a group as a "ReadMe Project" and display the ReadMe from that project as proposed here. Because groups do not have repositories as of today, going via a project is a good compromise.
- Backend adds an attribute to
Namespace
to reference the project - Frontend adds a field to set the reference, and render the markdown
Availability and Testing
- A new E2E test will be planned as a part of https://gitlab.com/gitlab-org/gitlab/-/issues/382896+ once this feature is complete
- Currently, the "Subgroups and projects" tab is the default selected tab when visiting a group's page. If this changes (ex: README becomes the default tab or content to show), minor changes will be needed for our E2E test framework. In
fabricate!
inqa/qa/resource/group.rb
, we will need to first click on the "Subgroups and projects" tab before proceeding to check if a subgroup exists.
This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.