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

  1. Install Geo by following GDK Geo Easy Installation

  2. Start both GDKs (primary on port 3000, secondary on port 3001):

    # In primary GDK directory
    gdk start
    
    # In secondary GDK directory  
    gdk start
  3. Create a QA access token with admin/api scopes in your primary GDK (http://127.0.0.1:3000/-/user_settings/personal_access_tokens)

  4. 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
  5. Expected result: Both tests pass in ~30 seconds:

    • project repository successfully replicates to secondary Geo site
    • project 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.

Edited by Michael Kozono

Merge request reports

Loading