# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for GitHub Actions Self-Hosted Runners API version: 1.0.0 extends: openapi/github-actions-self-hosted-runners-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 11 - target: $.paths['/repos/{owner}/{repo}/actions/runners'].get update: x-apievangelist-phrasing: intent: List a repository's self-hosted runners effect: read questions: - Which self-hosted runners are registered to my repository and are they online? - Can I find a repository runner by its name? instructions: - text: List the self-hosted runners registered to {owner}/{repo}. slots: owner: path.owner repo: path.repo - text: Find the runner named {name} in {owner}/{repo}. slots: name: query.name owner: path.owner repo: path.repo method: generated generated: '2026-09-26' - target: $.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}'].get update: x-apievangelist-phrasing: intent: Get details of one self-hosted runner effect: read questions: - Is a specific self-hosted runner online and busy right now? - What operating system and labels does a given runner report? instructions: - text: Get self-hosted runner {runner_id} in {owner}/{repo}. slots: runner_id: path.runner_id owner: path.owner repo: path.repo - text: Check the status and OS of runner {runner_id}. slots: runner_id: path.runner_id method: generated generated: '2026-09-26' - target: $.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}'].delete update: x-apievangelist-phrasing: intent: Force-remove a self-hosted runner from a repo effect: destructive questions: - How do I force the removal of a dead runner that no longer exists on the machine? - Can I deregister a self-hosted runner from my repository through the API? instructions: - text: Force-remove runner {runner_id} from {owner}/{repo}. slots: runner_id: path.runner_id owner: path.owner repo: path.repo - text: Delete the offline self-hosted runner {runner_id}. slots: runner_id: path.runner_id method: generated generated: '2026-09-26' - target: $.paths['/repos/{owner}/{repo}/actions/runners/downloads'].get update: x-apievangelist-phrasing: intent: List runner application downloads effect: read questions: - Where do I download the runner application binary for Linux, macOS or Windows? - What runner software packages are available to install on my own machine? instructions: - text: List the runner application binaries I can download for {owner}/{repo}. slots: owner: path.owner repo: path.repo - text: Get the download URL of the runner package for my OS and architecture. method: generated generated: '2026-09-26' - target: $.paths['/repos/{owner}/{repo}/actions/runners/registration-token'].post update: x-apievangelist-phrasing: intent: Get a token to register a new runner effect: write questions: - How do I get the token the config script needs to register a self-hosted runner? - What do I need before adding a new runner machine to my repository? instructions: - text: Create a runner registration token for {owner}/{repo}. slots: owner: path.owner repo: path.repo - text: Give me a token to register a new self-hosted runner on {repo}. slots: repo: path.repo method: generated generated: '2026-09-26' - target: $.paths['/repos/{owner}/{repo}/actions/runners/remove-token'].post update: x-apievangelist-phrasing: intent: Get a token to unregister a runner effect: write questions: - Which token does the config script need to cleanly remove a runner from my repository? - How do I unregister a self-hosted runner from the machine it runs on? instructions: - text: Create a runner remove token for {owner}/{repo}. slots: owner: path.owner repo: path.repo - text: Give me a token to unregister a self-hosted runner from {repo}. slots: repo: path.repo method: generated generated: '2026-09-26' - target: $.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}/labels'].get update: x-apievangelist-phrasing: intent: List the labels on a self-hosted runner effect: read questions: - What labels does a self-hosted runner have that jobs can target with runs-on? - Which custom and default labels are attached to one of my runners? instructions: - text: List the labels on runner {runner_id} in {owner}/{repo}. slots: runner_id: path.runner_id owner: path.owner repo: path.repo - text: Show which runs-on labels runner {runner_id} answers to. slots: runner_id: path.runner_id method: generated generated: '2026-09-26' - target: $.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}/labels'].put update: x-apievangelist-phrasing: intent: Replace all custom labels on a runner effect: write questions: - How do I overwrite a runner's custom labels with a completely new set? - Can I reset a runner's labels to an exact list in one call? instructions: - text: Replace the custom labels on runner {runner_id} in {owner}/{repo} with {labels}. slots: runner_id: path.runner_id owner: path.owner repo: path.repo labels: requestBody.labels - text: Set runner {runner_id}'s labels to exactly {labels}, dropping the old ones. slots: runner_id: path.runner_id labels: requestBody.labels method: generated generated: '2026-09-26' - target: $.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}/labels'].post update: x-apievangelist-phrasing: intent: Add custom labels to a runner effect: write questions: - How do I tag a self-hosted runner with an extra label like gpu without losing its existing ones? - Can I append new labels to a runner? instructions: - text: Add labels {labels} to runner {runner_id} in {owner}/{repo}. slots: labels: requestBody.labels runner_id: path.runner_id owner: path.owner repo: path.repo - text: Append the label {labels} to runner {runner_id}, keeping its current labels. slots: labels: requestBody.labels runner_id: path.runner_id method: generated generated: '2026-09-26' - target: $.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}/labels'].delete update: x-apievangelist-phrasing: intent: Clear every custom label from a runner effect: destructive questions: - How do I strip all custom labels off a runner and leave only the defaults? - Can I wipe a runner's custom labels in one go? instructions: - text: Remove all custom labels from runner {runner_id} in {owner}/{repo}. slots: runner_id: path.runner_id owner: path.owner repo: path.repo - text: Clear every custom label on runner {runner_id}. slots: runner_id: path.runner_id method: generated generated: '2026-09-26' - target: $.paths['/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}'].delete update: x-apievangelist-phrasing: intent: Remove one custom label from a runner effect: destructive questions: - How do I take a single label off a self-hosted runner? - Can I drop one custom label while keeping the runner's other labels? instructions: - text: Remove the label {name} from runner {runner_id} in {owner}/{repo}. slots: name: path.name runner_id: path.runner_id owner: path.owner repo: path.repo - text: Untag runner {runner_id} from label {name} only. slots: runner_id: path.runner_id name: path.name method: generated generated: '2026-09-26'