Group-level wiki: Exploration
Problem to solve
Today, you can add documentation/structured information related to a GitLab project via the Wiki feature. On larger GitLab instances, there can be a lot of groups and sub-groups that organize a cluster of GitLab projects.
Right now, there is no straight-forward way to document and share information on Group-level.
Further details
- There have been MR contributions that weren't finished due to the complexity of this feature and the current architecture
- Dependencies to Gitaly, Workhorse and Geo
Proposal
To achieve this, let's implement Wiki on group-level. Setting up a group wiki should be identical to project wikis.
Similar to project-level, group wikis are added via their own repository that is created in the background.
This issue serves as engineering exploration for the ~Platform team and ~"design artifact". The outcome should be an engineering plan/architecture for the follow-up implementation step, as well as a ready UX.
What does success look like, and how can we measure that?
(If no way to measure success, link to an issue that will implement a way to measure this)
Solution
Group overview (with 'Wiki' in menu) | Group wiki empty state | Create home page | Home page | Create a page (generic) |
---|---|---|---|---|
A few imrpovements proposed:
- Add '(Required)' to input labels where needed (Title, Content)
- Update form validation (error messages appear below input fields in error state)
- Change the 'Format' dropdown select to segmented control
- Say 'No pages yet' in the sidebar when there are no pages yet (when creating the home page) and the 'More pages' button needs to be disabled
- Kill the 'Create a page' modal, clicking on the 'New page' button goes straight to the generic 'Create a page' page, put the 'Page slug' input in that page below the title.
- When loading the 'Create a page' page autofocus to 'Title', as users type the title in the 'Page slug' input gets automatically filled in with what is written in 'Title' but in lowercase and '-' instead of spaces. The user can still change this.
- Limit 'Title' and 'Page slug' input fields to
320px
or20rem
- Limit the 'Commit message' input field to
560px
or35rem
We also need to add the toggle below "Permission" group settings, similar to what we are having in project settings, with an additional help description.