Add GraphQL query for container virtual registry upstream details

What does this MR do and why?

This MR adds GraphQL query for Virtual Registry Container upstreams under the given group to provide a GraphQL equivalent

  • Add virtualRegistriesContainerUpstreams query type

    query {
      virtualRegistriesContainerUpstream(id: "gid://gitlab/VirtualRegistries::Container::Upstream/6") {
        id
        url
        cacheValidityHours
        username
        name
        description
        registriesCount
        registryUpstreams {
          position
          registry {
            id
          }
        }
      }
    }
  • Add Types::VirtualRegistries::Container::UpstreamDetailsType

  • Add virtual_registries_container_upstream in Types::QueryType

References

N/A

Screenshots or screen recordings

N/A

How to set up and validate locally

  1. Switch to this branch 579691-add-graphql-container-virtual-registry-upstream-details-type
  2. Enable feature flag and setup Virtual registry settings
    # Enable container virtual registry
    ::Feature.enable(:container_virtual_registries)
    
    # Create virtual registry setting
    group = Group.find_by(path: 'gitlab-org')
    user = User.find(1)
    VirtualRegistries::Settings::CreateOrUpdateService.new(
      group: group,
      current_user: user,
      params: { enabled: true }
    ).execute
  3. Create virtual registries container upstreams
    group = Group.find 24
    registry = FactoryBot.create(:virtual_registries_container_registry, group: group)
    upstream = FactoryBot.create(:virtual_registries_container_upstream, registries: [registry], name: 'upstream1')
    gid = upstream.to_gid.to_s
  4. Go to Graphql explorer (http://gdk.test:3000/-/graphql-explorer) and test the new query type
     query {
       virtualRegistriesContainerUpstream(id: "gid://gitlab/VirtualRegistries::Container::Upstream/6") { # replace gid you got above
         id
         url
         cacheValidityHours
         username
         name
         description
         registriesCount
         registryUpstreams {
           position
           registry {
             id
           }
         }
       }
     }

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.

Related to #579691

Edited by Sylvia Shen

Merge request reports

Loading