Add sorting options and count to Maven virtual registries
🛠️ What does this MR do and why?
Currently, users can only use Maven virtual registry via API but not UI.
To be able to build the UI, we need to add sorting options for MavenVirtualRegistryType.
In this MR, we:
- Add
sortargument and accept 4 options to sort the results.- 4 options:
UPDATED_DESC,UPDATED_ASC,NAME_DESC,NAME_ASC
- 4 options:
- Expose
countfield
🗄️ Database migrations
⬆️ Migration up
gdk rails db:migrate:main ok | 23s | system node
main: == [advisory_lock_connection] object_id: 147260, pg_backend_pid: 28880
main: == 20250812103704 AddIndexVirtualRegistriesPackagesMavenRegistryOnGroupIdAndUpdatedAt: migrating
main: -- transaction_open?(nil)
main: -> 0.0000s
main: -- view_exists?(:postgres_partitions)
main: -> 0.0178s
main: -- index_exists?(:virtual_registries_packages_maven_registries, [:group_id, :updated_at], {:name=>:index_virtual_reg_pkgs_mvn_reg_on_group_id_and_updated_at, :algorithm=>:concurrently})
main: -> 0.0018s
main: -- execute("SET statement_timeout TO 0")
main: -> 0.0003s
main: -- add_index(:virtual_registries_packages_maven_registries, [:group_id, :updated_at], {:name=>:index_virtual_reg_pkgs_mvn_reg_on_group_id_and_updated_at, :algorithm=>:concurrently})
main: -> 0.0031s
main: -- execute("RESET statement_timeout")
main: -> 0.0004s
main: == 20250812103704 AddIndexVirtualRegistriesPackagesMavenRegistryOnGroupIdAndUpdatedAt: migrated (0.0380s)
main: == [advisory_lock_connection] object_id: 147260, pg_backend_pid: 28880
⬇️ Migration down
gdk rails db:migrate:down:main VERSION=20250812103704
main: == [advisory_lock_connection] object_id: 147740, pg_backend_pid: 28074
main: == 20250812103704 AddIndexVirtualRegistriesPackagesMavenRegistryOnGroupIdAndUpdatedAt: reverting
main: -- transaction_open?(nil)
main: -> 0.0000s
main: -- view_exists?(:postgres_partitions)
main: -> 0.0263s
main: -- indexes(:virtual_registries_packages_maven_registries)
main: -> 0.0031s
main: -- execute("SET statement_timeout TO 0")
main: -> 0.0003s
main: -- remove_index(:virtual_registries_packages_maven_registries, {:algorithm=>:concurrently, :name=>:index_virtual_reg_pkgs_mvn_reg_on_group_id_and_updated_at})
main: -> 0.0018s
main: -- execute("RESET statement_timeout")
main: -> 0.0003s
main: == 20250812103704 AddIndexVirtualRegistriesPackagesMavenRegistryOnGroupIdAndUpdatedAt: reverted (0.0464s)
main: == [advisory_lock_connection] object_id: 147740, pg_backend_pid: 28074
References
Screenshots or screen recordings
N/A
How to set up and validate locally
- Switch to this branch
535634-virtual-registry-sorting-option - Run migration
gdk rails db:migrate:main - Open another terminal and setup
GROUP_ID,GITLAB_URLandTOKEN - Create Maven virtual registry under the group, you can change the name and create the second one for later test
curl --request POST \ --header "PRIVATE-TOKEN: ${TOKEN}" \ --header "Content-Type: application/json" \ --header "Accept: application/json" \ --data '{"name": "test-virtual-registry-2", "description": "Test virtual registry 2"}' \ --url "${GITLAB_URL}/api/v4/groups/${GROUP_ID}/-/virtual_registries/packages/maven/registries" - Go to GraphQL UI: http://gdk.test:3000/-/graphql-explorer
query { group(fullPath: "gitlab-org") { mavenVirtualRegistries(sort: NAME_DESC, first: 1) { count nodes { id name } } } }
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 #535634