Skip to content

Early access program tracking by namespace settings

What does this MR do and why?

Early access program tracking by namespace settings

In first iteration early access program tracking will be based on participation of namespace instead of individual user.

Issue: gitlab-org/developer-relations/contributor-success/team-task#511

Changelog: changed

Screenshots or screen recordings

Negative scenario 1

Example check for each existing group that aren't participating:

Screenshot_2024-05-16_at_12.43.35

Negative scenario 2

Example check for each existing group that aren't participating but feature flag is enabled:

Screenshot_2024-05-16_at_12.46.18

Positive scenario

Example check for group that participates in Early access program AND feature flag is enabled:

Screenshot_2024-05-16_at_12.51.04

How to set up and validate locally

Choose project in group and create/update code snippets there.

Negative scenario 1

Example check for each existing user that didn't do anything:

  1. As signed in user go to some owned project page.
  2. On left-sidebar click on Code > Snippets > New snippet.
  3. Create snippet with any code you like.
  4. In rails console check that no tracking event created: EarlyAccessProgram::TrackingEvent.none? should return true.
Negative scenario 2

Example check for each existing group that aren't participating but feature flag is enabled:

  1. In rails console enable feature flag for your user Feature.enable(:early_access_program, User.find(<your-id>))
  2. As signed in user go to some owned project page.
  3. On left-sidebar click on Code > Snippets > New snippet.
  4. Create snippet with any code you like. (optionally you can edit existing one)
  5. In rails console check that no tracking event created: EarlyAccessProgram::TrackingEvent.none? should return true.
Positive scenario

Example check for group that participates in Early access program AND feature flag is enabled:

  1. In rails console enable feature flag for your user Feature.enable(:early_access_program, User.find(<your-id>))
  2. In rails console mark your group as Early access program participant by Group.find(<your-id>).namespace_settings.update!(early_access_program_participant: true)
  3. As signed in user go to a project of this group.
  4. On left-sidebar click on Code > Snippets > New snippet.
  5. Create snippet with any code you like. (optionally you can edit existing one)
  6. In rails console check that no tracking event created: EarlyAccessProgram::TrackingEvent.none? should return false.
  7. See list of tracking events by typing EarlyAccessProgram::TrackingEvent.all in rails console.
Edited by Rostyslav Safonov

Merge request reports