Skip to content

Convert Releases index page to Apollo Client [RUN ALL RSPEC] [RUN AS-IF-FOSS]

What does this MR do?

Updates the Releases page (namespace/project/-/releases) to use Apollo Client to manage GraphQL requests instead of manually managing the requests using a Vuex store.

Why?

  • Apollo Client is our preferred approach for state management
  • This page is very simple - it's mostly a read-only page - so it doesn't benefit from the boilerplate of a Vuex store
  • Moving to Apollo Client will make it simpler to implement some performance optimizations in the future

What doesn't this MR do?

This MR does not fully re-implement the Releases page. A few features have been omitted which will be implemented in follow-up MRs before the feature flag is enabled. These features are:

  • Pagination
  • Sorting

Feature flag

This new functionality is hidden behind a releases_index_apollo_client feature flag, which is disabled by default.

Rollout issue: #331006 (closed)

Screenshots

Before After
image image

See the note above regarding missing features.

Edited by Nathan Friend

Merge request reports