- The organization.
- A repository (
owner/name). - One workflow (
.github/workflows/ci.ymlin a repository). - The workflow file, through the routing action’s inputs:
policy, andproviders,max-cores,allowed-os,allowed-arch(x64orx86_64,arm64) andallow-gpu, which can only narrow.
How the levels combine
The workflow file cannot turn AutoPilot on or off, pause it, set provider
limits, or allow a provider or runner shape the organization does not. A job whose default runner is
larger than these limits keeps its default runner.
When the workflow file sets
policy, providers or a runner limit, the run’s
routing decision is marked as set in Git.
Read and change settings
own), the settings in effect
(effective), and the level each effective value comes from
(inherited_from). Reading needs the focus:read scope or the Member role.
Changing settings with PUT on the same path is for organization owners and
admins signed in to CostGraph:
null inherits from the wider level.
Enabled and pause
enabled is on by default and routing runs. Turn it off for the organization,
a repository or a workflow and every job there keeps its own runs-on label
from the next routing request. Set paused_until to a time to do the same
until then. Neither can be set in the workflow file.
Runners
GET /api/v1/tenant/ci/autopilot/labels lists every runner CostGraph knows for
you, grouped by provider: GitHub-hosted runners, runners of providers
integrated with CostGraph (connected, or whose runner jobs CostGraph reads
through your GitHub Actions connection), and labels you set. Pass repository and workflow_path to see a repository or workflow.
Each runner has its state there (allowed, blocked, provider_off when its
provider is not allowed, or outside_limits when the runner limits exclude
it), where it comes from, and the level its setting comes from.
To allow or block several runners at once, PUT a list for one level:
DELETE with label, and the same repository and
workflow_path, removes a setting so the runner inherits again.
Provider limits
/api/v1/tenant/ci/autopilot/providers lists every provider AutoPilot can
route to, the labels proven for it, its limits and what routed jobs use now.
Provider limits are set for the organization. Set them per provider:
A provider at a limit is skipped and the job takes the next best runner, or its
default. Limits are checked when a job is routed, from AutoPilot’s own
estimates; they do not read the provider’s bill and do not stop jobs that are
already running.