Skip to content

Persist pipeline creation status across page reloads using GraphQL subscriptions

What does this MR do and why?

Implements real-time pipeline creation status tracking for merge request pipelines using GraphQL subscriptions. This replaces the temporary client-side skeleton loader with persistent, server-backed creation request data that survives page reloads.

Closes #568346

Changes

Backend

  • Added pipelineCreationRequests field to MergeRequestType that returns all pipeline creation requests from Redis
  • Created Subscriptions::Ci::PipelineCreationRequestsUpdated GraphQL subscription
  • Added GraphqlTriggers.ci_pipeline_creation_requests_updated to trigger subscription updates
  • Modified MergeRequests::CreatePipelineService to trigger subscription after both sync and async pipeline creation

Frontend

  • Added GraphQL query getPipelineCreationRequests to fetch creation requests on page load
  • Added GraphQL subscription ciPipelineCreationRequestsUpdated for real-time updates in legacy_pipelines_table_wrapper.vue
  • Auto-refreshes pipeline table when in-progress requests complete
  • Added error alert that displays when pipeline creation fails

Screenshots or screen recordings

Real-time skeleton loader update on success

Screen_Recording_2025-10-07_at_06.13.10

Pipeline creation failed on reload

PipelineCreationFailed

Pipeline creation loader still active for long running requests

PipelineLoaderPostReload

How to set up and validate locally

  1. Navigate to any merge request with a .gitlab-ci.yml file: http://gdk.test:3000/[project]/-/merge_requests/[iid]/pipelines
  2. Click "Run Pipeline" button
  3. Observe:
    • Button becomes disabled with loading state
    • Skeleton loader appears in pipelines table
  4. Refresh the page while pipeline is being created
  5. Verify:
    • Skeleton loader persists after reload
    • Button remains disabled
    • Once pipeline creation completes, table auto-refreshes with new pipeline
    • Button becomes enabled again

MR acceptance checklist

This MR has been evaluated against the MR acceptance checklist.

Edited by Sahil Sharma

Merge request reports

Loading