Move project GitLab Duo settings out of pages

What does this MR do and why?

This MR started as a pure move of the shared Duo readiness rows out of pages/projects/shared/permissions/. This lets the upcoming group readiness section reuse them instead of duplicating code.

During review, the maintainer asked why duo_readiness_card.vue stayed in pages/, and noted that pages/ should hold only initialization code, not components. This keeps CODEOWNERS and module boundaries clear. So this MR now moves the whole project GitLab Duo settings app out of pages/. This matches how the group and admin GitLab Duo settings already work.

  • Root component and init: ai/settings/pages/gitlab_duo_settings.vue and ai/settings/init_gitlab_duo_settings.js
  • Child components (file exclusions, dependency-bump profile modal): ai/settings/components/
  • Readiness pieces (shared rows, project card, agent configuration row): ai/settings/readiness/
  • Auto-remediation queries (owned by Software Composition Analysis, only used here): ai/settings/graphql/queries/ and ai/settings/graphql/mutations/
  • Duo help paths and setting IDs move to ~/ai/constants.js; the shared project_setting_row.vue moves to ~/projects/settings/components/

References

Screenshots or screen recordings

This MR does not change behaviour, template, copy, or style. The readiness card renders the same as before.

Before After
630146-before 630146-after

How to set up and validate locally

  1. Enable the flag for your user: Feature.enable(:duo_agent_readiness_settings, User.find_by_username('root'))
  2. Open a project.
  3. Go to Settings > General.
  4. Expand the GitLab Duo section.
  5. Confirm the section renders and saves the same as on master.

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.

Edited by Mike Wronski

Merge request reports

Loading
Loading