Draft: [FixPipeline] https://gitlab.com/gitlab-org/gitlab/-/pipelines/2721834060
Summary of Changes
I identified and fixed three issues causing the CI pipeline failures:
1. ee/app/assets/javascripts/packages_and_registries/artifact_registry/graphql/typedefs.graphql
Problem: The file defined a local PageInfo type that already exists in the global GitLab GraphQL schema. When the Apollo schema loader merged them, it threw a "Type already exists" error.
Fix: Removed the duplicate type PageInfo { ... } block (6 lines). The pageInfo: PageInfo! field in ArtifactRegistryRepositoryConnection can reference the globally-defined PageInfo type directly.
2. ee/app/assets/javascripts/packages_and_registries/artifact_registry/repositories/list/repositories_list.vue
Problem: The goToPage method spread undefined cursor values into the route query object: { ...this.$route.query, before, after }. In Vue Router 4 (used in Vue 3 mode), undefined query params are not dropped — they remain as undefined keys, causing the route query to not update as expected. This broke the paging tests and the live-region reannounce test.
Fix: Replaced the spread with explicit conditional assignment/deletion — only set after or before in the query object if the value is not undefined, and explicitly delete the opposite key to ensure only one direction is active at a time.
3. jest.config.base.js
Problem: The Jest transform pattern for SVG files was '^.+\\.(svg|gif|png|mp4)$', which does not match imports using the Vite/webpack ?url query suffix (e.g., docker.svg?url). In Vue 2 mode, the Jest resolver strips ?url before the transform runs, but in Vue 3 mode the transform receives the original path with ?url still appended, so it falls through to babel-jest which can't parse SVG content and returns undefined. This caused REPOSITORY_FORMAT_LOGOS values to be undefined, making the :src attribute absent in the rendered <img> element.
Fix: Updated the transform pattern to '^.+\\.(svg|gif|png|mp4)(\\?url)?$' so it also matches ?url-suffixed SVG imports. The static_file_transformer.js already handles the ?url suffix correctly (it splits on ? when extracting the basename).
Files Modified
ee/app/assets/javascripts/packages_and_registries/artifact_registry/graphql/typedefs.graphqlee/app/assets/javascripts/packages_and_registries/artifact_registry/repositories/list/repositories_list.vuejest.config.base.js
Fixes failing pipeline
Session 5933603
Powered by Duo Fix Pipeline flow