Refactor Issue Boards to Use GraphQL
## Why 1. We've decided to take a GraphQL first approach (https://about.gitlab.com/handbook/engineering/#graphql-first) 1. We need to prepare the Issue Boards to become real time as soon as websockets land (https://gitlab.com/gitlab-org/gitlab/issues/21249) ## Proposal 1. An intermediary step logically is to get everything into GraphQL/Apollo so it is easy to introduce Subscriptions (https://www.apollographql.com/docs/graphql-subscriptions/subscriptions-to-schema/) ## Importance 1. This refactoring needs to happen before we add any additional features to Issue Boards so it is fairly mission critical and should be considered blocking every other proposal for Issue Boards. ## Backend GraphQL support for Issue Boards We basically need to replicate the REST issue board API into GraphQL, implementing the proper GraphQL semantics, and any additional endpoints not reflected in the REST API. Since issue boards are supported in both projects and groups, each board action needs to operate in both project and group contexts. I've combined the list - for example, creating the GraphQL for listing project boards and group boards should use the same code, just behave differently based on the context. I'll create any issues based on this assumption - if it looks like it needs to be split into two MRs, I urge the developer to do that. - [x] gitlab#36756 : Query one or all project/group issue boards - [x] gitlab#36760 : Mutation for creating a project/group issue board - [x] gitlab#36762 : Mutation for updating a project/group issue board - [x] gitlab#36763 : Delete a project/group issue board (mutation) - [x] gitlab#36758 : Query one or all lists in an issue board - [x] gitlab#36764 : Mutation for creating a list for an issue board - [x] gitlab#36765 : Mutation for updating a list for an issue board - [x] gitlab#36766 : Mutation for deleting a list for an issue board - [x] gitlab#36770 : Mutation for reordering issues in an issue board - [x] gitlab#36772 : Mutation for creating a new issue within an issue board list - [x] gitlab#36774 : Query for issues associated with an issue board list - [x] probably a couple overlooked ones...
epic