Authorize 4 Hosted Runners GraphQL types for fine-grained tokens

Summary

A fine-grained personal access token is denied the GitLab Dedicated hosted runner usage types below: they declare no authorize_granular_token directive and are still listed in config/authz/graphql/authorization_todo.txt, so ciDedicatedHostedRunnerUsage gives the token no nodes and ciDedicatedHostedRunnerFilters gives it null, even when its user is an administrator of the Dedicated instance who reads them with a legacy token.

As agreed in !267273 (comment 4195231927), I will send this domain's types in one merge request, which closes this issue.

Proposal

  • read_dedicated_hosted_runner_usage on the instance for CiDedicatedHostedRunnerUsage and CiDedicatedHostedRunnerFilters, the permission both already check for the user, which only an administrator of a GitLab Dedicated instance has.
  • CiDeletedRunner is returned only by CiDedicatedHostedRunnerFilters.deletedRunners, so it declares the permission its parent checks (parent_authorizes:), with a spec for that parent.
  • CiDeletedNamespace declares read_dedicated_hosted_runner_usage on the instance itself, because NamespaceUnion returns it next to Namespace, which has its own directive.

This adds read_dedicated_hosted_runner_usage as an assignable permission on the instance, offered to administrators only. The permission is already in GlobalPolicy, with no definition or assignable permission yet.

Related to #593878.

I found this while working on gitlab-mcp-server.

Edited by José M. Requena Plens