Add vue3_migrate_repo_settings flag and migrate repository settings pages

What does this MR do and why?

Adds the vue3_migrate_repo_settings feature flag (beta, actor-based, default_enabled: false) and opts three page entrypoints into the Vue 3 migration by adding vue3_migration.yml files with status: rollout.

This is flag 6 of 7 in the migration series (epic: gitlab-org#23084). These are low-traffic config forms.

Follow-up MRs under this same flag will add yml entries for admin/application_settings/repository, EE admin/application_settings/templates, and EE admin/push_rules. A separate MR handles EE projects/path_locks, which has zero Vue.

Entrypoints in this MR

File Notes
config/feature_flags/beta/vue3_migrate_repo_settings.yml New beta flag, default_enabled: false, actor-based
app/assets/javascripts/pages/projects/settings/repository/show/vue3_migration.yml Vue apps: MirrorTableRoot, BranchRulesAppRoot, DefaultBranchSelectorRoot, RemoveBlobsRoot, RedactTextRoot, DeployKeysAppRoot
ee/app/assets/javascripts/pages/projects/settings/repository/show/vue3_migration.yml Must be identical to the CE file because the EE index.js overrides the CE one; enforced by spec/lib/gitlab/vue3_migration_files_spec.rb. EE overlay adds WebBasedCommitSigningSettings plus plain-JS-only code (EEMirrorRepos, protected branches/tags classes — no Vue, no migration risk)
app/assets/javascripts/pages/projects/settings/branch_rules/vue3_migration.yml Vue apps: ViewRoot (branch rules detail, CE+EE via ee_else_ce)

Testing

On projects/settings/repository:

  • Mirror table renders; add and delete a mirror works
  • Branch rules listing renders; clicking a rule opens the detail view
  • Default-branch selector change persists after save and reload
  • Deploy keys: add, disable, enable
  • Remove blobs: submit shows success/error state (no feature spec — manual only)
  • Redact text: submit shows success/error state (no feature spec — manual only)
  • EE: web-based commit signing toggle persists (no feature spec — manual only)

On projects/settings/branch_rules:

  • Create, edit, and delete a rule
  • EE: approval rules and code owners render

Both pages:

  • Console check: no Vue 2 roots left, no @vue/compat warnings
  • bundle exec rspec spec/lib/gitlab/vue3_migration_files_spec.rb passes

References

Edited by Chaoyue Zhao

Merge request reports

Loading
Loading