Ask to change where CI runs (needs approval)
request_ci_placement_changeRequest approval to set or remove a repository's CI runner variable, previewing moved jobs, target runners, cost impact, and policy checks before an owner approves and runs it.
Instructions
Ask to change where one repository's CI runs by setting or removing one repo Actions variable that its workflows read in runs-on (ADR 0037). Only LINUX_RUNNER and RUNNER_ may be changed; value is one runner label, or null to remove the variable so jobs use the workflow's fallback (usually GitHub-hosted). Mushi builds the change itself from a fresh preview: the jobs that move and the ones that stay (pinned to GitHub, main-branch and Dependabot runs), the target runners and their wait, the cost change, and the variable's current value, which the change must still match when it runs. Your organization's CI policy is checked now and again when it runs: no paid GitHub-hosted minutes on private repos when that rule is on, repos managed by an external controller are refused, standby runners are never a target. This only creates a request: a team owner or admin approves it in the console and runs it there within an hour; this tool can never approve or run it, and Mushi never changes runner labels or registrations. Confirm with the user first. Returns { id, status: "pending_approval", payloadSha256, preview }, or an error with the reason (VARIABLE_NOT_ALLOWED, POLICY_NO_PAID_HOSTED, EXTERNAL_CONTROLLER, POLICY_STANDBY_TARGET, VARIABLE_UNREADABLE, NO_CHANGE) and the preview. Write.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | owner/repo, connected to the project | |
| value | Yes | One runner label, or null to remove the variable | |
| reason | No | Why, shown to the approver | |
| variable | Yes | LINUX_RUNNER or RUNNER_<WORKFLOW> | |
| projectId | No | Project UUID — defaults to the server-configured project (`project_id` is accepted too.) |