Expose search API in GraphQL
Problem to solve
GitLab has a REST search API, but the functionality is not currently available in GraphQL
Further details
Users can GET /api/v4/search?scope=<enum>&search=<string>
to get back a list of things: https://docs.gitlab.com/ce/api/search.html
Group and project search is also available.
Searches are often very specific - we're only interested in one or two fields of the response, and it can be expensive to calculate them all (e.g. https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/9760)
Proposal
Add a GraphQL endpoint
Permissions and Security
All the permissions that apply to the existing search endpoint should also apply to the graphql endpoint. We can get decent surety of this by reimplementing the existing search endpoint in terms of the graphql one, and running the existing tests against them.
Documentation
GraphQL is mostly self-documenting.
What does success look like, and how can we measure that?
Feature parity between the existing search API and a new graphql search API