Add Vuex action to fetch dependencies via GraphQL
Context
As a first step to migrate the frontend for the group-level dependency list, we decided to fetch data from GraphQL.
This can be done on a Vuex-action level (here), which allows making the change with a small potential impact and also applying a feature flag nicely.
graph TD
B{Feature Flag enabled?}
B -->|Yes| C[GraphQL Action]
B -->|No| D[Existing REST Action]
C --> E[GraphQL Query]
E --> F[Process GraphQL Response]
F --> G[Update Store]
D --> H[REST API Call]
H --> I[Process REST Response]
I --> G
G --> J[Update UI]
subgraph "New Implementation"
C
E
F
end
subgraph "Existing Implementation"
D
H
I
end
Implementation Plan
- Add GraphQL query to fetch group-level dependencies
- Add new Vuex action to https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/assets/javascripts/dependencies/store/modules/list/actions.js that uses apollo-client and the above-mentioned action to fetch the data
- Add a feature flag
- If the feature flag is enabled: Use the new action instead of the current one (
fetchDependencies
)
Edited by David Pisek