Add Quick start section for learn gitlab redesign
What does this MR do and why?
This merge request adds a new "Quick start" feature to Get started, creating a guided onboarding experience for users. The implementation includes a UI with expandable sections showing various tasks users can complete to get familiar with GitLab's workflow. Tasks are organized into categories like "Set up your code," "Configure a project," "Plan and execute work," and "Secure your deployment," with visual indicators showing completion status. The UI also includes a progress bar tracking overall completion.
The code adds policy rules to control who can invite members to a project based on membership lock settings, and introduces a presenter class to organize and display the onboarding tasks. Each task has attributes like title, tracking label, URL, and completion status, with some tasks being disabled if the user lacks sufficient permissions. The interface also highlights features available in GitLab Ultimate trial, encouraging users to try ultimate features.
Specifics/notes:
-
changes are behind a feature flag
-
handles basic page structure for use in further work items in https://gitlab.com/gitlab-org/gitlab/-/issues/537653
-
add percentage bar
-
add sections with actions and basic functionality per designs. See design discussions in https://gitlab.com/gitlab-org/gitlab/-/issues/538219
-
a lot of core functionality is mimicked and improved upon at times from
ee/app/assets/javascripts/pages/projects/learn_gitlab/components/learn_gitlab.vue -
items not handled in this MR, but will be in subsequent:
- invite completion update task completed status and percentage w/o page refresh as done in learn gitlab
- free version of page
-
see https://gitlab.com/gitlab-org/gitlab/-/issues/537653 and more specifically https://gitlab.com/gitlab-org/gitlab/-/issues/538219
Screenshots or screen recordings
Click to expand
How to set up and validate locally
Note: This is covered by feature spec in this MR and jest as much as possible.
Click to expand
- Setup gdk to simulate SaaS - https://docs.gitlab.com/ee/development/ee_features.html#simulate-a-saas-instance and restart GDK
- In rails console enable the feature flag
Feature.enable(:learn_gitlab_redesign) - Create a new group and project.
- In rails console, onboard that group that was just created
::Onboarding::Progress.onboard(Group.last) - In the gitlab admin UI, edit the group to be on an ultimate trial plan(edit button from
http://gdk.test:3000/admin/groups) - In rails console(
bundle exec rails c), change the trial, trial start and end date for the groupGroup.last.gitlab_subscription.update_columns(trial_starts_on: Date.today, trial_ends_on: 30.days.from_now, trial: true) - Go to the get started path for the group/project: For instance,
http://gdk.test:3000/logan225-group/logan225-project/-/get_started
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Related to #537653






