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:

Screenshots or screen recordings

Click to expand
item design discussion link display
overall https://gitlab.com/gitlab-org/gitlab/-/issues/538219#note_2484016807 image
general non privileged https://gitlab.com/gitlab-org/gitlab/-/issues/538219#note_2484190894 image
general privileged https://gitlab.com/gitlab-org/gitlab/-/issues/538219#note_2484190894 image
section: code https://gitlab.com/gitlab-org/gitlab/-/issues/538219#note_2484050626 image
section: project https://gitlab.com/gitlab-org/gitlab/-/issues/538219#note_2484084501 https://gitlab.com/-/project/278964/uploads/e169a4b1ac76c6374bfe5a4d8a181484/Screenshot_2025-05-05_at_1.06.58_PM.png
section: plan https://gitlab.com/gitlab-org/gitlab/-/issues/538219#note_2484168930 image
section: secure https://gitlab.com/gitlab-org/gitlab/-/issues/538219#note_2484176061 image
mobile https://gitlab.com/gitlab-org/gitlab/-/issues/538219 Screenshot_2025-05-06_at_9.03.11_AM
privileged functional https://gitlab.com/gitlab-org/gitlab/-/issues/538219 Screen_Recording_2025-05-06_at_9.04.07_AM
non privileged function https://gitlab.com/gitlab-org/gitlab/-/issues/538219#note_2484190894 Screen_Recording_2025-05-06_at_9.06.00_AM
invite https://gitlab.com/gitlab-org/gitlab/-/issues/538219#note_2484084501 Screen_Recording_2025-05-06_at_9.10.04_AM

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
  1. Setup gdk to simulate SaaS - https://docs.gitlab.com/ee/development/ee_features.html#simulate-a-saas-instance and restart GDK
  2. In rails console enable the feature flag
    Feature.enable(:learn_gitlab_redesign)
  3. Create a new group and project.
  4. In rails console, onboard that group that was just created
    ::Onboarding::Progress.onboard(Group.last)
  5. In the gitlab admin UI, edit the group to be on an ultimate trial plan(edit button from http://gdk.test:3000/admin/groups)
  6. In rails console(bundle exec rails c), change the trial, trial start and end date for the group
    Group.last.gitlab_subscription.update_columns(trial_starts_on: Date.today, trial_ends_on: 30.days.from_now, trial: true)
  7. 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

Edited by Doug Stull

Merge request reports

Loading