Roll out vue3_migration.yml to remaining Vue pages

What does this MR do and why?

Migrates the remaining vue3_migrate_* feature flags to the co-located vue3_migration.yml metadata format introduced in !234347 (merged) (this MR is stacked on top of it).

Note: Learn more about the vue3_migration.yml file at: https://docs.gitlab.com/development/fe_guide/vue3_migration/#option-1-recommended-migrate-your-page-entrypoint-using-a-feature-flag-and-vue3_migrationyml

How

For each affected page entrypoint this MR:

  • Adds a vue3_migration.yml with status: rollout next to the index.js.
  • Simplifies the entrypoint to a single Vue 2 import + init call, removing the gon.features?.vue3Migrate* branch and the dynamic ?vue3 import.
  • Removes the matching push_frontend_feature_flag(:vue3_migrate_*, …) from the controller.

Flags covered:

  • vue3_migrate_work_items
  • vue3_migrate_pipelines
  • vue3_migrate_admin_runners
  • vue3_migrate_compliance_center

Flags left to cover:

  • vue3_migrate_repository (I was after before I opened this MR, will be migrated separately)

The flag YAML definitions in config/feature_flags/beta/ are not changed.

Local verification

FF off FF on (Vue 3 is enabled)
Screenshot_2026-07-30_at_12.21.59 Screenshot_2026-07-30_at_12.21.25

Current stats

scripts/frontend/vue3_migration_stats.mjs (to be merged separately) shows the number of entrypoints migrations:

$ node scripts/frontend/vue3_migration_stats.mjs
Total page entrypoints:           573
With vue3_migration.yml:          19 (3.3%)
Remaining (no vue3_migration.yml): 554

By status:
  rollout    19

By feature flag:
  vue3_migrate_admin_runners      5
  vue3_migrate_compliance_center  2
  vue3_migrate_jobs               3
  vue3_migrate_pipelines          2
  vue3_migrate_work_items         7

MRs

Introduce vue3_migration.yml config file (!234347 - merged)
you are here! Roll out vue3_migration.yml to remaining Vue pages (!236797 - merged)

How to test

  1. Make sure the corresponding feature flag is disabled. The page should render the Vue 2 bundle unchanged.
  2. Enable the flag (for example Feature.enable(:vue3_migrate_admin_runners)). The page should now load the .vue3 sibling chunk and render under Vue 3, with no source change required.
  3. Disable the flag again. The page should return to Vue 2 without a reload of the assets cache.
  • Builds on !234347 (merged) (infrastructure + first rollout for vue3_migrate_jobs).
Edited by Miguel Rincon

Merge request reports

Loading