Skip to content

Step 1/4: Begin using GraphQL on the Releases page

Nathan Friend requested to merge nfriend-use-graphql-for-releases-page into master

What does this MR do?

Partially updates the project Releases page to fetch its data from the GraphQL endpoint instead of the REST API.

What doesn't this MR do?

This MR does not update the Edit Release page, the New Release page, or the individual Release page to use the GraphQL endpoint. These pages will continue to use the REST API endpoint(s).

In addition, this MR does not implement pagination. In its current form, no pagination controls render (so only the first 20 items are shown). A follow up MR will implement these controls prior to the graphql_releases_page feature flag being enabled.

Feature flag

This functionality requires three feature flags to be enabled:

  1. graphql_releases_page (disabled by default, introduced in this MR), which enables the frontend to query the GraphQL endpoint instead of the REST API.
  2. graphql_release_data (enabled by default in !34937 (merged)), which enables the release data in the GraphQL endpoint, and
  3. graphql_milestone_stats (enabled by default), which adds milestone statistics to the Milestone GraphQL type (used to compute Release statistics like % of issues that are open/closed.)

If any of these flags are disabled, the Releases page will use its current behavior (querying the REST API for data).

Screenshots

This MR makes no visual changes to the releases:

Before (REST endpoint) After (GraphQL endpoint)
image image

The Big PictureTM

This MR is one piece of a larger effort (#214241 (closed)):

  • Step 1 (this MR): Update the frontend to fetch its data from the GraphQL endpoint (without any pagination)
  • Step 2 (!41621 (merged)): Add pagination components (but don't use them yet)
  • Step 3 (!41636 (merged)): Pass data through Vuex store instead of through props
  • Step 4 (!41441 (merged)): Begin using the components from step 2

Each of these steps are dependent on the preceding step.

Edited by Nathan Friend

Merge request reports