GraphQL: Add RunnerJobCountResolver
What does this MR do and why?
NOTE: This MR has no changelog because the fields being added to GraphQL are all marked as alpha. The goal is to allow some frontend code to be added without having users tie us to this exact API for the time being.
This MR adds a statuses
argument to the CiRunner.jobCount
field, by way of a dedicated GraphQL resolver. This allows filtering the counts given the list of statuses. If no statuses are specified, the total count of jobs is returned, as before.
Part of #377324 (closed) and #416763 (closed)
Screenshots or screen recordings
Screenshots are required for UI changes, and strongly recommended for all other merge requests.
Before | After |
---|---|
How to set up and validate locally
Numbered steps to set up and validate the change are strongly suggested.
-
Go to the shell in your GDK
gitlab
directory and runbundle exec rake "gitlab:seed:runner_fleet"
. This will seed your GDK with some runners and jobs required for testing this MR. -
Enter the following query:
{ runners(type: INSTANCE_TYPE, last: 5) { count nodes { id failedJobs: jobCount(statuses: [FAILED]) successfulJobs: jobCount(statuses: [SUCCESS]) unfinishedJobs: jobCount(statuses: [PENDING, RUNNING]) } } }
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.