[go: up one dir, main page]

Skip to content

Draft: Add user onboarding trigger

What does this MR do and why?

We know that some users when getting started with GitLab need guidance on what to do. Onboarding in-app is one of the ways we can support that user. Our current onboarding 'Learn GitLab' or 'Getting Started' is currently tied to a project/namespace. The tasks and completion of tasks is shared across anyone who has access to the project. We want our onboarding to be user based to ensure each user has the most appropriate tasks assigned to them and to ensure our onboarding is easily discoverable.

With this change we can know if a user should be eligible for our onboarding experience. That way we only show the experience to new users who travel through onboarding or that we determine should enter our onboarding experience based off other events in the future.

Migration output

up

main: == [advisory_lock_connection] object_id: 139260, pg_backend_pid: 62463
main: == 20250709133522 AddOnboardingExperienceToUsers: migrating ===================
main: -- add_column(:users, :onboarding_experience, :boolean, {:default=>false, :null=>false})
main:    -> 0.0328s
main: == 20250709133522 AddOnboardingExperienceToUsers: migrated (0.0385s) ==========

main: == [advisory_lock_connection] object_id: 139260, pg_backend_pid: 62463
ci: == [advisory_lock_connection] object_id: 139260, pg_backend_pid: 62466
ci: == 20250709133522 AddOnboardingExperienceToUsers: migrating ===================
ci: -- add_column(:users, :onboarding_experience, :boolean, {:default=>false, :null=>false})
ci:    -> 0.0145s
ci: == 20250709133522 AddOnboardingExperienceToUsers: migrated (0.0214s) ==========

ci: == [advisory_lock_connection] object_id: 139260, pg_backend_pid: 62466

down

main: == [advisory_lock_connection] object_id: 139060, pg_backend_pid: 64863
main: == 20250709133522 AddOnboardingExperienceToUsers: reverting ===================
main: -- remove_column(:users, :onboarding_experience, :boolean, {:default=>false, :null=>false})
main:    -> 0.0265s
main: == 20250709133522 AddOnboardingExperienceToUsers: reverted (0.0327s) ==========

main: == [advisory_lock_connection] object_id: 139060, pg_backend_pid: 64863

References

How to set up and validate locally

  1. Setup gdk to simulate SaaS - https://docs.gitlab.com/ee/development/ee_features.html#simulate-a-saas-instance and restart GDK
  2. Sign out. Register as a new user.
  3. Next step select any 'role' and 'Just me' in the welcome form after sign up step.
  4. Choose 'Create a new project'
  5. Click 'Continue'
  6. Click 'Create project'
  7. Verify you get to the onboarding tutorial page.
  8. Click 'End tutorial'

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 #547922

Edited by Serhii Yarynovskyi

Merge request reports

Loading