Create sidebar container in Apollo
Summary
This is the first step in standardizing the sidebar. We already use Vuex on the epic page sidebar and all the components there are written in Vue. New refactors should use GraphQL though, so we should build this container using Apollo instead of Vuex.
Improvements
We currently have a mashup of sidebar solutions. This will give us one standard container that all pages with a sidebar can use, making it easier to reason about, reducing maintenance time and ease at which new components can be added.
Risks
- We can't use this sidebar on pages until components use GraphQL
- Strategy is for us to use GraphQL instead of REST for refactors. As we build out components we can learn what attributes need to be added to our GraphQL APIs
- We haven't committed to using Apollo in place of Vuex
- This will help us gather data on whether we want to make that commitment or not. And if we decide that we want to continue use of Vuex, we can go back to the current Vuex implementation.
Involved components
/ee/gitlab/ee/app/assets/javascripts/epic/