Get rid of "Migrate to GitLab CI/CD from Jenkins" banner

Problem to solve

GitLab keeps showing a Migrate to GitLab CI/CD from Jenkins banner on every Merge Request.

image

How can we get rid of it?

  • The banner occupies valuable screen area which could be used for useful information
  • It’s OK to show such a banner to admins but not to end users of a paid subscription
  • It’s OK to show a banner once. After closing the banner, it should not reappear all the time, e.g., after reloading the page or navigating to a different MR
  • Migrating to a different CI is an important business decision, which should not be driven by slapping a banner into users’ faces
  • Migrating to a different CI takes time, during which banners shouldn’t be slapped into users’ faces

Steps to reproduce

The banner appears whenever I look at a merge request. I have not found a configuration option to turn it off, and the release notes don’t document that this banner was added.

Versions

Self-managed GitLab Enterprise Edition v17.1.1-ee

References

GitLab forum

Proposal

Make these banner dismissible per project per user.

Technical proposal

  • Add another checkbox to -> application_settings -> ci_cd haml file called migrate_jenkins_banner
  • Add the same migrate_jenkins_banner attribute to the ApplicationSettings helper and model to have the new setting available for configuration
  • Expose the new attribute so it's available on the REST API
  • Create a migration to add the new attribute as a column. Example migration for the ApplicationSettings table
  • Create tests similar to the ones made for the suggest_pipeline_enabled attribute.
    • https://gitlab.com/gitlab-org/gitlab/-/blob/master/spec/features/admin/admin_settings_spec.rb
    • https://gitlab.com/gitlab-org/gitlab/-/blob/master/spec/features/merge_request/user_sees_suggest_pipeline_spec.rb
    • https://gitlab.com/gitlab-org/gitlab/-/blob/master/spec/requests/api/settings_spec.rb
  • Add the missing isDismissedMigrateJenkins data attribute to the MRWidgetOptions component
    • The MRWidget store must be initialized with the correspondent attribute
    • The MergeRequestWidgetEntity will need to have a new field exposed similar to the is_dismissed_suggest_pipeline. Tests for the entity also need to included
  • Only show the Jenkins banner if the Admin setting is turned on and the pipeline has a valid Jenkins pipeline
Edited Oct 04, 2024 by Jose Ivan Vargas
Assignee Loading
Time tracking Loading