GraphQL: filters with upgradeStatus in a group context are not filtering by namespace_id

image

This can be narrowed down to the with_upgrade_status scope:

[36] pry(main)> Ci::Runner.belonging_to_group(21).count
   (3.8ms)  SELECT COUNT(*) FROM "ci_runners" INNER JOIN "ci_runner_namespaces" ON "ci_runner_namespaces"."runner_id" = "ci_runners"."id" WHERE "ci_runner_namespaces"."namespace_id" = 21 /*application:console,db_config_name:ci,line:(pry):36:in `__pry__'*/
=> 51
[37] pry(main)> Ci::Runner.belonging_to_group(21).with_upgrade_status(:recommended).count
   (0.5ms)  SELECT COUNT(*) FROM "ci_runners" INNER JOIN "ci_runner_versions" "runner_version" ON "runner_version"."version" = "ci_runners"."version" WHERE "runner_version"."status" = 3 /*application:console,db_config_name:ci,line:(pry):37:in `__pry__'*/
=> 211

(notice the missing WHERE "ci_runner_namespaces"."namespace_id" = 21 in the latter query)

Edited by Pedro Pombeiro