Geo E2E tests: Validate Git repo and LFS object replication
What does this MR do and why?
Updates the Geo http_push_spec to validate Git repository replication using GraphQL queries instead of UI-based checks. This enables the spec to work with Unified URL Geo configurations where primary and secondary sites share the same external URL.
The original spec relied on navigating to the secondary site's UI to verify repository replication. This doesn't work with Unified URL configurations because the UI content is always served from the primary.
Part of #410238 (closed)
How to set up and validate locally
-
Install Geo by following GDK Geo Easy Installation
-
Start both GDKs (primary on port 3000, secondary on port 3001):
# In primary GDK directory gdk start # In secondary GDK directory gdk start -
Create a QA access token with admin/api scopes in your primary GDK (http://127.0.0.1:3000/-/user_settings/personal_access_tokens)
-
Run the spec from the
qa/directory:cd qa export GITLAB_QA_ACCESS_TOKEN="<your-token>" bundle exec bin/qa QA::EE::Scenario::Test::Geo \ --primary-address http://127.0.0.1:3000 \ --secondary-address http://127.0.0.1:3001 \ --without-setup \ qa/specs/features/ee/browser_ui/12_systems/geo/http_push_spec.rb -
Expected result: Both tests pass in ~30 seconds:
project repository successfully replicates to secondary Geo siteproject repository with LFS successfully replicates to secondary Geo site
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.