Skip to content

New user onboarding (Guided Tour)

Martin Wortschack requested to merge mw-onboarding-mvc-tour into master

What does this MR do?

Part 2 of the user onboarding (guided tour) for https://gitlab.com/gitlab-org/gitlab-ce/issues/60093

This MR adds the following:

It wires together changes from the following MRs:

By this, users can start the guided tour on GitLab.com for GitLab CE from the help menu Learn GitLab. In addition, new users (who don't have any projects yet) will be redirected to the welcome page when they visit the dashboard.

This feature is behind the :user_onboarding feature flag and needs to be enabled first.

user_onboarding

Local Setup

Since this feature is behind a feature flag and uses Gitlab CE as the demo project in production, there are a few steps required in order to get this working locally.

  1. Enable feature flag via rails console:
Feature.enable(:user_onboarding)
  1. Make sure to change get_onboarding_demo_project in onboarding_controller.rb to the following:
def get_onboarding_demo_project
  Project.find_by_full_path("gitlab-org/gitlab-test")
end

Also, change user_onboarding_enabled? in ee/app/helpers/ee/application_helper.rb to the following:

def user_onboarding_enabled?
  ::Feature.enabled?(:user_onboarding)
end

For local testing, if you want the onboarding to automatically appear for new users (that have no projects and have not previously dismissed the onboarding), the following patch needs to be made:

ee/app/controllers/ee/dashboard/projects_controller.rb

def show_onboarding_welcome_page?
- return false unless ::Gitlab.com?
  return false if cookies['onboarding_dismissed'] == 'true'

  ::Feature.enabled?(:user_onboarding) && !show_projects?(projects, params)
end

CE Port: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/29927

What are the relevant issue numbers?

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/60093

Does this MR meet the acceptance criteria?

Conformity

Performance and testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Martin Wortschack

Merge request reports