Add GraphQL Client
What does this MR do and why?
This MR adds a GraphQL client to triage ops for use in processors.
This is an MVC client - not quite fully featured (doesn't observe rate limits, and/or pagination).
I had to use the namespace Triage::GraphqlQuery
as GraphQL
was getting confused between this class and the upstream library.
The Schema query is cached (and shared by any users) so we don't have to run the expensive (and slow) schema query regularly. I've chosen a day (86400 seconds) as a sensible default, but this could be tweaked (and indeed overridden by an implementing class)
Expected impact & dry-runs
No current impact expected - this is simply adding a GraphQL client to be used in subsequent features.
Action items
-
If adding environment variables for reactive processors, update config/triage-web.yaml
and.gitlab/ci/triage-web.yml
-
(If applicable) Add documentation to the handbook pages for Triage Operations => - (If applicable) Identify the affected groups and how to communicate to them:
-
/cc @ person_or_group
=> -
Relevant Slack channels => -
Engineering week-in-review
-
Edited by Raimund Hook