1. Packages
  2. Github Provider
  3. API Docs
  4. ActionsHostedRunner
GitHub v6.11.0 published on Wednesday, Jan 21, 2026 by Pulumi
github logo
GitHub v6.11.0 published on Wednesday, Jan 21, 2026 by Pulumi

    This resource allows you to create and manage GitHub-hosted runners within your GitHub organization. You must have admin access to an organization to use this resource.

    GitHub-hosted runners are fully managed virtual machines that run your GitHub Actions workflows. Unlike self-hosted runners, GitHub handles the infrastructure, maintenance, and scaling.

    Example Usage

    Basic Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as github from "@pulumi/github";
    
    const example = new github.ActionsRunnerGroup("example", {
        name: "example-runner-group",
        visibility: "all",
    });
    const exampleActionsHostedRunner = new github.ActionsHostedRunner("example", {
        name: "example-hosted-runner",
        image: {
            id: "2306",
            source: "github",
        },
        size: "4-core",
        runnerGroupId: example.id,
    });
    
    import pulumi
    import pulumi_github as github
    
    example = github.ActionsRunnerGroup("example",
        name="example-runner-group",
        visibility="all")
    example_actions_hosted_runner = github.ActionsHostedRunner("example",
        name="example-hosted-runner",
        image={
            "id": "2306",
            "source": "github",
        },
        size="4-core",
        runner_group_id=example.id)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-github/sdk/v6/go/github"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := github.NewActionsRunnerGroup(ctx, "example", &github.ActionsRunnerGroupArgs{
    			Name:       pulumi.String("example-runner-group"),
    			Visibility: pulumi.String("all"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = github.NewActionsHostedRunner(ctx, "example", &github.ActionsHostedRunnerArgs{
    			Name: pulumi.String("example-hosted-runner"),
    			Image: &github.ActionsHostedRunnerImageArgs{
    				Id:     pulumi.String("2306"),
    				Source: pulumi.String("github"),
    			},
    			Size:          pulumi.String("4-core"),
    			RunnerGroupId: example.ID(),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Github = Pulumi.Github;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Github.ActionsRunnerGroup("example", new()
        {
            Name = "example-runner-group",
            Visibility = "all",
        });
    
        var exampleActionsHostedRunner = new Github.ActionsHostedRunner("example", new()
        {
            Name = "example-hosted-runner",
            Image = new Github.Inputs.ActionsHostedRunnerImageArgs
            {
                Id = "2306",
                Source = "github",
            },
            Size = "4-core",
            RunnerGroupId = example.Id,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.github.ActionsRunnerGroup;
    import com.pulumi.github.ActionsRunnerGroupArgs;
    import com.pulumi.github.ActionsHostedRunner;
    import com.pulumi.github.ActionsHostedRunnerArgs;
    import com.pulumi.github.inputs.ActionsHostedRunnerImageArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new ActionsRunnerGroup("example", ActionsRunnerGroupArgs.builder()
                .name("example-runner-group")
                .visibility("all")
                .build());
    
            var exampleActionsHostedRunner = new ActionsHostedRunner("exampleActionsHostedRunner", ActionsHostedRunnerArgs.builder()
                .name("example-hosted-runner")
                .image(ActionsHostedRunnerImageArgs.builder()
                    .id("2306")
                    .source("github")
                    .build())
                .size("4-core")
                .runnerGroupId(example.id())
                .build());
    
        }
    }
    
    resources:
      example:
        type: github:ActionsRunnerGroup
        properties:
          name: example-runner-group
          visibility: all
      exampleActionsHostedRunner:
        type: github:ActionsHostedRunner
        name: example
        properties:
          name: example-hosted-runner
          image:
            id: '2306'
            source: github
          size: 4-core
          runnerGroupId: ${example.id}
    

    Advanced Usage with Optional Parameters

    import * as pulumi from "@pulumi/pulumi";
    import * as github from "@pulumi/github";
    
    const advanced = new github.ActionsRunnerGroup("advanced", {
        name: "advanced-runner-group",
        visibility: "selected",
    });
    const advancedActionsHostedRunner = new github.ActionsHostedRunner("advanced", {
        name: "advanced-hosted-runner",
        image: {
            id: "2306",
            source: "github",
        },
        size: "8-core",
        runnerGroupId: advanced.id,
        maximumRunners: 10,
        publicIpEnabled: true,
    });
    
    import pulumi
    import pulumi_github as github
    
    advanced = github.ActionsRunnerGroup("advanced",
        name="advanced-runner-group",
        visibility="selected")
    advanced_actions_hosted_runner = github.ActionsHostedRunner("advanced",
        name="advanced-hosted-runner",
        image={
            "id": "2306",
            "source": "github",
        },
        size="8-core",
        runner_group_id=advanced.id,
        maximum_runners=10,
        public_ip_enabled=True)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-github/sdk/v6/go/github"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		advanced, err := github.NewActionsRunnerGroup(ctx, "advanced", &github.ActionsRunnerGroupArgs{
    			Name:       pulumi.String("advanced-runner-group"),
    			Visibility: pulumi.String("selected"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = github.NewActionsHostedRunner(ctx, "advanced", &github.ActionsHostedRunnerArgs{
    			Name: pulumi.String("advanced-hosted-runner"),
    			Image: &github.ActionsHostedRunnerImageArgs{
    				Id:     pulumi.String("2306"),
    				Source: pulumi.String("github"),
    			},
    			Size:            pulumi.String("8-core"),
    			RunnerGroupId:   advanced.ID(),
    			MaximumRunners:  pulumi.Int(10),
    			PublicIpEnabled: pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Github = Pulumi.Github;
    
    return await Deployment.RunAsync(() => 
    {
        var advanced = new Github.ActionsRunnerGroup("advanced", new()
        {
            Name = "advanced-runner-group",
            Visibility = "selected",
        });
    
        var advancedActionsHostedRunner = new Github.ActionsHostedRunner("advanced", new()
        {
            Name = "advanced-hosted-runner",
            Image = new Github.Inputs.ActionsHostedRunnerImageArgs
            {
                Id = "2306",
                Source = "github",
            },
            Size = "8-core",
            RunnerGroupId = advanced.Id,
            MaximumRunners = 10,
            PublicIpEnabled = true,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.github.ActionsRunnerGroup;
    import com.pulumi.github.ActionsRunnerGroupArgs;
    import com.pulumi.github.ActionsHostedRunner;
    import com.pulumi.github.ActionsHostedRunnerArgs;
    import com.pulumi.github.inputs.ActionsHostedRunnerImageArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var advanced = new ActionsRunnerGroup("advanced", ActionsRunnerGroupArgs.builder()
                .name("advanced-runner-group")
                .visibility("selected")
                .build());
    
            var advancedActionsHostedRunner = new ActionsHostedRunner("advancedActionsHostedRunner", ActionsHostedRunnerArgs.builder()
                .name("advanced-hosted-runner")
                .image(ActionsHostedRunnerImageArgs.builder()
                    .id("2306")
                    .source("github")
                    .build())
                .size("8-core")
                .runnerGroupId(advanced.id())
                .maximumRunners(10)
                .publicIpEnabled(true)
                .build());
    
        }
    }
    
    resources:
      advanced:
        type: github:ActionsRunnerGroup
        properties:
          name: advanced-runner-group
          visibility: selected
      advancedActionsHostedRunner:
        type: github:ActionsHostedRunner
        name: advanced
        properties:
          name: advanced-hosted-runner
          image:
            id: '2306'
            source: github
          size: 8-core
          runnerGroupId: ${advanced.id}
          maximumRunners: 10
          publicIpEnabled: true
    

    Notes

    • This resource is organization-only and cannot be used with individual accounts.
    • The image field cannot be changed after the runner is created. Changing it will force recreation of the runner.
    • The size field can be updated to scale the runner up or down as needed.
    • Image IDs for GitHub-owned images are numeric strings (e.g., “2306” for Ubuntu Latest 24.04), not names like “ubuntu-latest”.
    • Deletion of hosted runners is asynchronous. The provider will poll for up to 10 minutes (configurable via timeouts) to confirm deletion.
    • Runner creation and updates may take several minutes as GitHub provisions the infrastructure.
    • Static public IPs are subject to account limits. Check your organization’s limits before enabling.

    Getting Available Images and Sizes

    To get a list of available images:

    curl -H "Authorization: Bearer YOUR_TOKEN" \
         -H "Accept: application/vnd.github+json" \
         https://api.github.com/orgs/YOUR_ORG/actions/hosted-runners/images/github-owned
    

    To get available machine sizes:

    curl -H "Authorization: Bearer YOUR_TOKEN" \
         -H "Accept: application/vnd.github+json" \
         https://api.github.com/orgs/YOUR_ORG/actions/hosted-runners/machine-sizes
    

    Create ActionsHostedRunner Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new ActionsHostedRunner(name: string, args: ActionsHostedRunnerArgs, opts?: CustomResourceOptions);
    @overload
    def ActionsHostedRunner(resource_name: str,
                            args: ActionsHostedRunnerArgs,
                            opts: Optional[ResourceOptions] = None)
    
    @overload
    def ActionsHostedRunner(resource_name: str,
                            opts: Optional[ResourceOptions] = None,
                            image: Optional[ActionsHostedRunnerImageArgs] = None,
                            runner_group_id: Optional[int] = None,
                            size: Optional[str] = None,
                            image_gen: Optional[bool] = None,
                            image_version: Optional[str] = None,
                            maximum_runners: Optional[int] = None,
                            name: Optional[str] = None,
                            public_ip_enabled: Optional[bool] = None)
    func NewActionsHostedRunner(ctx *Context, name string, args ActionsHostedRunnerArgs, opts ...ResourceOption) (*ActionsHostedRunner, error)
    public ActionsHostedRunner(string name, ActionsHostedRunnerArgs args, CustomResourceOptions? opts = null)
    public ActionsHostedRunner(String name, ActionsHostedRunnerArgs args)
    public ActionsHostedRunner(String name, ActionsHostedRunnerArgs args, CustomResourceOptions options)
    
    type: github:ActionsHostedRunner
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args ActionsHostedRunnerArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args ActionsHostedRunnerArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args ActionsHostedRunnerArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ActionsHostedRunnerArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ActionsHostedRunnerArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var actionsHostedRunnerResource = new Github.ActionsHostedRunner("actionsHostedRunnerResource", new()
    {
        Image = new Github.Inputs.ActionsHostedRunnerImageArgs
        {
            Id = "string",
            SizeGb = 0,
            Source = "string",
        },
        RunnerGroupId = 0,
        Size = "string",
        ImageGen = false,
        ImageVersion = "string",
        MaximumRunners = 0,
        Name = "string",
        PublicIpEnabled = false,
    });
    
    example, err := github.NewActionsHostedRunner(ctx, "actionsHostedRunnerResource", &github.ActionsHostedRunnerArgs{
    	Image: &github.ActionsHostedRunnerImageArgs{
    		Id:     pulumi.String("string"),
    		SizeGb: pulumi.Int(0),
    		Source: pulumi.String("string"),
    	},
    	RunnerGroupId:   pulumi.Int(0),
    	Size:            pulumi.String("string"),
    	ImageGen:        pulumi.Bool(false),
    	ImageVersion:    pulumi.String("string"),
    	MaximumRunners:  pulumi.Int(0),
    	Name:            pulumi.String("string"),
    	PublicIpEnabled: pulumi.Bool(false),
    })
    
    var actionsHostedRunnerResource = new ActionsHostedRunner("actionsHostedRunnerResource", ActionsHostedRunnerArgs.builder()
        .image(ActionsHostedRunnerImageArgs.builder()
            .id("string")
            .sizeGb(0)
            .source("string")
            .build())
        .runnerGroupId(0)
        .size("string")
        .imageGen(false)
        .imageVersion("string")
        .maximumRunners(0)
        .name("string")
        .publicIpEnabled(false)
        .build());
    
    actions_hosted_runner_resource = github.ActionsHostedRunner("actionsHostedRunnerResource",
        image={
            "id": "string",
            "size_gb": 0,
            "source": "string",
        },
        runner_group_id=0,
        size="string",
        image_gen=False,
        image_version="string",
        maximum_runners=0,
        name="string",
        public_ip_enabled=False)
    
    const actionsHostedRunnerResource = new github.ActionsHostedRunner("actionsHostedRunnerResource", {
        image: {
            id: "string",
            sizeGb: 0,
            source: "string",
        },
        runnerGroupId: 0,
        size: "string",
        imageGen: false,
        imageVersion: "string",
        maximumRunners: 0,
        name: "string",
        publicIpEnabled: false,
    });
    
    type: github:ActionsHostedRunner
    properties:
        image:
            id: string
            sizeGb: 0
            source: string
        imageGen: false
        imageVersion: string
        maximumRunners: 0
        name: string
        publicIpEnabled: false
        runnerGroupId: 0
        size: string
    

    ActionsHostedRunner Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The ActionsHostedRunner resource accepts the following input properties:

    Image ActionsHostedRunnerImage
    Image configuration for the hosted runner. Cannot be changed after creation. Block supports:
    RunnerGroupId int
    The ID of the runner group to assign this runner to.
    Size string
    Machine size for the hosted runner (e.g., "4-core", "8-core"). Can be updated to scale the runner. To list available sizes, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/machine-sizes.
    ImageGen bool
    Whether this runner should be used to generate custom images. Cannot be changed after creation.
    ImageVersion string
    The version of the runner image to deploy. This is only relevant for runners using custom images.
    MaximumRunners int
    Maximum number of runners to scale up to. Runners will not auto-scale above this number. Use this setting to limit costs.
    Name string
    Name of the hosted runner. Must be between 1 and 64 characters and may only contain alphanumeric characters, '.', '-', and '_'.
    PublicIpEnabled bool
    Whether to enable static public IP for the runner. Note there are account limits. To list limits, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/limits. Defaults to false.
    Image ActionsHostedRunnerImageArgs
    Image configuration for the hosted runner. Cannot be changed after creation. Block supports:
    RunnerGroupId int
    The ID of the runner group to assign this runner to.
    Size string
    Machine size for the hosted runner (e.g., "4-core", "8-core"). Can be updated to scale the runner. To list available sizes, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/machine-sizes.
    ImageGen bool
    Whether this runner should be used to generate custom images. Cannot be changed after creation.
    ImageVersion string
    The version of the runner image to deploy. This is only relevant for runners using custom images.
    MaximumRunners int
    Maximum number of runners to scale up to. Runners will not auto-scale above this number. Use this setting to limit costs.
    Name string
    Name of the hosted runner. Must be between 1 and 64 characters and may only contain alphanumeric characters, '.', '-', and '_'.
    PublicIpEnabled bool
    Whether to enable static public IP for the runner. Note there are account limits. To list limits, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/limits. Defaults to false.
    image ActionsHostedRunnerImage
    Image configuration for the hosted runner. Cannot be changed after creation. Block supports:
    runnerGroupId Integer
    The ID of the runner group to assign this runner to.
    size String
    Machine size for the hosted runner (e.g., "4-core", "8-core"). Can be updated to scale the runner. To list available sizes, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/machine-sizes.
    imageGen Boolean
    Whether this runner should be used to generate custom images. Cannot be changed after creation.
    imageVersion String
    The version of the runner image to deploy. This is only relevant for runners using custom images.
    maximumRunners Integer
    Maximum number of runners to scale up to. Runners will not auto-scale above this number. Use this setting to limit costs.
    name String
    Name of the hosted runner. Must be between 1 and 64 characters and may only contain alphanumeric characters, '.', '-', and '_'.
    publicIpEnabled Boolean
    Whether to enable static public IP for the runner. Note there are account limits. To list limits, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/limits. Defaults to false.
    image ActionsHostedRunnerImage
    Image configuration for the hosted runner. Cannot be changed after creation. Block supports:
    runnerGroupId number
    The ID of the runner group to assign this runner to.
    size string
    Machine size for the hosted runner (e.g., "4-core", "8-core"). Can be updated to scale the runner. To list available sizes, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/machine-sizes.
    imageGen boolean
    Whether this runner should be used to generate custom images. Cannot be changed after creation.
    imageVersion string
    The version of the runner image to deploy. This is only relevant for runners using custom images.
    maximumRunners number
    Maximum number of runners to scale up to. Runners will not auto-scale above this number. Use this setting to limit costs.
    name string
    Name of the hosted runner. Must be between 1 and 64 characters and may only contain alphanumeric characters, '.', '-', and '_'.
    publicIpEnabled boolean
    Whether to enable static public IP for the runner. Note there are account limits. To list limits, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/limits. Defaults to false.
    image ActionsHostedRunnerImageArgs
    Image configuration for the hosted runner. Cannot be changed after creation. Block supports:
    runner_group_id int
    The ID of the runner group to assign this runner to.
    size str
    Machine size for the hosted runner (e.g., "4-core", "8-core"). Can be updated to scale the runner. To list available sizes, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/machine-sizes.
    image_gen bool
    Whether this runner should be used to generate custom images. Cannot be changed after creation.
    image_version str
    The version of the runner image to deploy. This is only relevant for runners using custom images.
    maximum_runners int
    Maximum number of runners to scale up to. Runners will not auto-scale above this number. Use this setting to limit costs.
    name str
    Name of the hosted runner. Must be between 1 and 64 characters and may only contain alphanumeric characters, '.', '-', and '_'.
    public_ip_enabled bool
    Whether to enable static public IP for the runner. Note there are account limits. To list limits, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/limits. Defaults to false.
    image Property Map
    Image configuration for the hosted runner. Cannot be changed after creation. Block supports:
    runnerGroupId Number
    The ID of the runner group to assign this runner to.
    size String
    Machine size for the hosted runner (e.g., "4-core", "8-core"). Can be updated to scale the runner. To list available sizes, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/machine-sizes.
    imageGen Boolean
    Whether this runner should be used to generate custom images. Cannot be changed after creation.
    imageVersion String
    The version of the runner image to deploy. This is only relevant for runners using custom images.
    maximumRunners Number
    Maximum number of runners to scale up to. Runners will not auto-scale above this number. Use this setting to limit costs.
    name String
    Name of the hosted runner. Must be between 1 and 64 characters and may only contain alphanumeric characters, '.', '-', and '_'.
    publicIpEnabled Boolean
    Whether to enable static public IP for the runner. Note there are account limits. To list limits, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/limits. Defaults to false.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the ActionsHostedRunner resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    LastActiveOn string
    Timestamp (RFC3339) when the runner was last active.
    MachineSizeDetails List<ActionsHostedRunnerMachineSizeDetail>
    Detailed specifications of the machine size:
    Platform string
    Platform of the runner (e.g., "linux-x64", "win-x64").
    PublicIps List<ActionsHostedRunnerPublicIp>
    List of public IP ranges assigned to this runner (only if public_ip_enabled is true):
    Status string
    Current status of the runner (e.g., "Ready", "Provisioning").
    Id string
    The provider-assigned unique ID for this managed resource.
    LastActiveOn string
    Timestamp (RFC3339) when the runner was last active.
    MachineSizeDetails []ActionsHostedRunnerMachineSizeDetail
    Detailed specifications of the machine size:
    Platform string
    Platform of the runner (e.g., "linux-x64", "win-x64").
    PublicIps []ActionsHostedRunnerPublicIp
    List of public IP ranges assigned to this runner (only if public_ip_enabled is true):
    Status string
    Current status of the runner (e.g., "Ready", "Provisioning").
    id String
    The provider-assigned unique ID for this managed resource.
    lastActiveOn String
    Timestamp (RFC3339) when the runner was last active.
    machineSizeDetails List<ActionsHostedRunnerMachineSizeDetail>
    Detailed specifications of the machine size:
    platform String
    Platform of the runner (e.g., "linux-x64", "win-x64").
    publicIps List<ActionsHostedRunnerPublicIp>
    List of public IP ranges assigned to this runner (only if public_ip_enabled is true):
    status String
    Current status of the runner (e.g., "Ready", "Provisioning").
    id string
    The provider-assigned unique ID for this managed resource.
    lastActiveOn string
    Timestamp (RFC3339) when the runner was last active.
    machineSizeDetails ActionsHostedRunnerMachineSizeDetail[]
    Detailed specifications of the machine size:
    platform string
    Platform of the runner (e.g., "linux-x64", "win-x64").
    publicIps ActionsHostedRunnerPublicIp[]
    List of public IP ranges assigned to this runner (only if public_ip_enabled is true):
    status string
    Current status of the runner (e.g., "Ready", "Provisioning").
    id str
    The provider-assigned unique ID for this managed resource.
    last_active_on str
    Timestamp (RFC3339) when the runner was last active.
    machine_size_details Sequence[ActionsHostedRunnerMachineSizeDetail]
    Detailed specifications of the machine size:
    platform str
    Platform of the runner (e.g., "linux-x64", "win-x64").
    public_ips Sequence[ActionsHostedRunnerPublicIp]
    List of public IP ranges assigned to this runner (only if public_ip_enabled is true):
    status str
    Current status of the runner (e.g., "Ready", "Provisioning").
    id String
    The provider-assigned unique ID for this managed resource.
    lastActiveOn String
    Timestamp (RFC3339) when the runner was last active.
    machineSizeDetails List<Property Map>
    Detailed specifications of the machine size:
    platform String
    Platform of the runner (e.g., "linux-x64", "win-x64").
    publicIps List<Property Map>
    List of public IP ranges assigned to this runner (only if public_ip_enabled is true):
    status String
    Current status of the runner (e.g., "Ready", "Provisioning").

    Look up Existing ActionsHostedRunner Resource

    Get an existing ActionsHostedRunner resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: ActionsHostedRunnerState, opts?: CustomResourceOptions): ActionsHostedRunner
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            image: Optional[ActionsHostedRunnerImageArgs] = None,
            image_gen: Optional[bool] = None,
            image_version: Optional[str] = None,
            last_active_on: Optional[str] = None,
            machine_size_details: Optional[Sequence[ActionsHostedRunnerMachineSizeDetailArgs]] = None,
            maximum_runners: Optional[int] = None,
            name: Optional[str] = None,
            platform: Optional[str] = None,
            public_ip_enabled: Optional[bool] = None,
            public_ips: Optional[Sequence[ActionsHostedRunnerPublicIpArgs]] = None,
            runner_group_id: Optional[int] = None,
            size: Optional[str] = None,
            status: Optional[str] = None) -> ActionsHostedRunner
    func GetActionsHostedRunner(ctx *Context, name string, id IDInput, state *ActionsHostedRunnerState, opts ...ResourceOption) (*ActionsHostedRunner, error)
    public static ActionsHostedRunner Get(string name, Input<string> id, ActionsHostedRunnerState? state, CustomResourceOptions? opts = null)
    public static ActionsHostedRunner get(String name, Output<String> id, ActionsHostedRunnerState state, CustomResourceOptions options)
    resources:  _:    type: github:ActionsHostedRunner    get:      id: ${id}
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Image ActionsHostedRunnerImage
    Image configuration for the hosted runner. Cannot be changed after creation. Block supports:
    ImageGen bool
    Whether this runner should be used to generate custom images. Cannot be changed after creation.
    ImageVersion string
    The version of the runner image to deploy. This is only relevant for runners using custom images.
    LastActiveOn string
    Timestamp (RFC3339) when the runner was last active.
    MachineSizeDetails List<ActionsHostedRunnerMachineSizeDetail>
    Detailed specifications of the machine size:
    MaximumRunners int
    Maximum number of runners to scale up to. Runners will not auto-scale above this number. Use this setting to limit costs.
    Name string
    Name of the hosted runner. Must be between 1 and 64 characters and may only contain alphanumeric characters, '.', '-', and '_'.
    Platform string
    Platform of the runner (e.g., "linux-x64", "win-x64").
    PublicIpEnabled bool
    Whether to enable static public IP for the runner. Note there are account limits. To list limits, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/limits. Defaults to false.
    PublicIps List<ActionsHostedRunnerPublicIp>
    List of public IP ranges assigned to this runner (only if public_ip_enabled is true):
    RunnerGroupId int
    The ID of the runner group to assign this runner to.
    Size string
    Machine size for the hosted runner (e.g., "4-core", "8-core"). Can be updated to scale the runner. To list available sizes, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/machine-sizes.
    Status string
    Current status of the runner (e.g., "Ready", "Provisioning").
    Image ActionsHostedRunnerImageArgs
    Image configuration for the hosted runner. Cannot be changed after creation. Block supports:
    ImageGen bool
    Whether this runner should be used to generate custom images. Cannot be changed after creation.
    ImageVersion string
    The version of the runner image to deploy. This is only relevant for runners using custom images.
    LastActiveOn string
    Timestamp (RFC3339) when the runner was last active.
    MachineSizeDetails []ActionsHostedRunnerMachineSizeDetailArgs
    Detailed specifications of the machine size:
    MaximumRunners int
    Maximum number of runners to scale up to. Runners will not auto-scale above this number. Use this setting to limit costs.
    Name string
    Name of the hosted runner. Must be between 1 and 64 characters and may only contain alphanumeric characters, '.', '-', and '_'.
    Platform string
    Platform of the runner (e.g., "linux-x64", "win-x64").
    PublicIpEnabled bool
    Whether to enable static public IP for the runner. Note there are account limits. To list limits, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/limits. Defaults to false.
    PublicIps []ActionsHostedRunnerPublicIpArgs
    List of public IP ranges assigned to this runner (only if public_ip_enabled is true):
    RunnerGroupId int
    The ID of the runner group to assign this runner to.
    Size string
    Machine size for the hosted runner (e.g., "4-core", "8-core"). Can be updated to scale the runner. To list available sizes, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/machine-sizes.
    Status string
    Current status of the runner (e.g., "Ready", "Provisioning").
    image ActionsHostedRunnerImage
    Image configuration for the hosted runner. Cannot be changed after creation. Block supports:
    imageGen Boolean
    Whether this runner should be used to generate custom images. Cannot be changed after creation.
    imageVersion String
    The version of the runner image to deploy. This is only relevant for runners using custom images.
    lastActiveOn String
    Timestamp (RFC3339) when the runner was last active.
    machineSizeDetails List<ActionsHostedRunnerMachineSizeDetail>
    Detailed specifications of the machine size:
    maximumRunners Integer
    Maximum number of runners to scale up to. Runners will not auto-scale above this number. Use this setting to limit costs.
    name String
    Name of the hosted runner. Must be between 1 and 64 characters and may only contain alphanumeric characters, '.', '-', and '_'.
    platform String
    Platform of the runner (e.g., "linux-x64", "win-x64").
    publicIpEnabled Boolean
    Whether to enable static public IP for the runner. Note there are account limits. To list limits, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/limits. Defaults to false.
    publicIps List<ActionsHostedRunnerPublicIp>
    List of public IP ranges assigned to this runner (only if public_ip_enabled is true):
    runnerGroupId Integer
    The ID of the runner group to assign this runner to.
    size String
    Machine size for the hosted runner (e.g., "4-core", "8-core"). Can be updated to scale the runner. To list available sizes, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/machine-sizes.
    status String
    Current status of the runner (e.g., "Ready", "Provisioning").
    image ActionsHostedRunnerImage
    Image configuration for the hosted runner. Cannot be changed after creation. Block supports:
    imageGen boolean
    Whether this runner should be used to generate custom images. Cannot be changed after creation.
    imageVersion string
    The version of the runner image to deploy. This is only relevant for runners using custom images.
    lastActiveOn string
    Timestamp (RFC3339) when the runner was last active.
    machineSizeDetails ActionsHostedRunnerMachineSizeDetail[]
    Detailed specifications of the machine size:
    maximumRunners number
    Maximum number of runners to scale up to. Runners will not auto-scale above this number. Use this setting to limit costs.
    name string
    Name of the hosted runner. Must be between 1 and 64 characters and may only contain alphanumeric characters, '.', '-', and '_'.
    platform string
    Platform of the runner (e.g., "linux-x64", "win-x64").
    publicIpEnabled boolean
    Whether to enable static public IP for the runner. Note there are account limits. To list limits, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/limits. Defaults to false.
    publicIps ActionsHostedRunnerPublicIp[]
    List of public IP ranges assigned to this runner (only if public_ip_enabled is true):
    runnerGroupId number
    The ID of the runner group to assign this runner to.
    size string
    Machine size for the hosted runner (e.g., "4-core", "8-core"). Can be updated to scale the runner. To list available sizes, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/machine-sizes.
    status string
    Current status of the runner (e.g., "Ready", "Provisioning").
    image ActionsHostedRunnerImageArgs
    Image configuration for the hosted runner. Cannot be changed after creation. Block supports:
    image_gen bool
    Whether this runner should be used to generate custom images. Cannot be changed after creation.
    image_version str
    The version of the runner image to deploy. This is only relevant for runners using custom images.
    last_active_on str
    Timestamp (RFC3339) when the runner was last active.
    machine_size_details Sequence[ActionsHostedRunnerMachineSizeDetailArgs]
    Detailed specifications of the machine size:
    maximum_runners int
    Maximum number of runners to scale up to. Runners will not auto-scale above this number. Use this setting to limit costs.
    name str
    Name of the hosted runner. Must be between 1 and 64 characters and may only contain alphanumeric characters, '.', '-', and '_'.
    platform str
    Platform of the runner (e.g., "linux-x64", "win-x64").
    public_ip_enabled bool
    Whether to enable static public IP for the runner. Note there are account limits. To list limits, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/limits. Defaults to false.
    public_ips Sequence[ActionsHostedRunnerPublicIpArgs]
    List of public IP ranges assigned to this runner (only if public_ip_enabled is true):
    runner_group_id int
    The ID of the runner group to assign this runner to.
    size str
    Machine size for the hosted runner (e.g., "4-core", "8-core"). Can be updated to scale the runner. To list available sizes, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/machine-sizes.
    status str
    Current status of the runner (e.g., "Ready", "Provisioning").
    image Property Map
    Image configuration for the hosted runner. Cannot be changed after creation. Block supports:
    imageGen Boolean
    Whether this runner should be used to generate custom images. Cannot be changed after creation.
    imageVersion String
    The version of the runner image to deploy. This is only relevant for runners using custom images.
    lastActiveOn String
    Timestamp (RFC3339) when the runner was last active.
    machineSizeDetails List<Property Map>
    Detailed specifications of the machine size:
    maximumRunners Number
    Maximum number of runners to scale up to. Runners will not auto-scale above this number. Use this setting to limit costs.
    name String
    Name of the hosted runner. Must be between 1 and 64 characters and may only contain alphanumeric characters, '.', '-', and '_'.
    platform String
    Platform of the runner (e.g., "linux-x64", "win-x64").
    publicIpEnabled Boolean
    Whether to enable static public IP for the runner. Note there are account limits. To list limits, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/limits. Defaults to false.
    publicIps List<Property Map>
    List of public IP ranges assigned to this runner (only if public_ip_enabled is true):
    runnerGroupId Number
    The ID of the runner group to assign this runner to.
    size String
    Machine size for the hosted runner (e.g., "4-core", "8-core"). Can be updated to scale the runner. To list available sizes, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/machine-sizes.
    status String
    Current status of the runner (e.g., "Ready", "Provisioning").

    Supporting Types

    ActionsHostedRunnerImage, ActionsHostedRunnerImageArgs

    Id string
    The image ID. For GitHub-owned images, use numeric IDs like "2306" for Ubuntu Latest 24.04. To get available images, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/images/github-owned.
    SizeGb int
    The size of the image in gigabytes.
    Source string
    The image source. Valid values are "github", "partner", or "custom". Defaults to "github".
    Id string
    The image ID. For GitHub-owned images, use numeric IDs like "2306" for Ubuntu Latest 24.04. To get available images, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/images/github-owned.
    SizeGb int
    The size of the image in gigabytes.
    Source string
    The image source. Valid values are "github", "partner", or "custom". Defaults to "github".
    id String
    The image ID. For GitHub-owned images, use numeric IDs like "2306" for Ubuntu Latest 24.04. To get available images, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/images/github-owned.
    sizeGb Integer
    The size of the image in gigabytes.
    source String
    The image source. Valid values are "github", "partner", or "custom". Defaults to "github".
    id string
    The image ID. For GitHub-owned images, use numeric IDs like "2306" for Ubuntu Latest 24.04. To get available images, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/images/github-owned.
    sizeGb number
    The size of the image in gigabytes.
    source string
    The image source. Valid values are "github", "partner", or "custom". Defaults to "github".
    id str
    The image ID. For GitHub-owned images, use numeric IDs like "2306" for Ubuntu Latest 24.04. To get available images, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/images/github-owned.
    size_gb int
    The size of the image in gigabytes.
    source str
    The image source. Valid values are "github", "partner", or "custom". Defaults to "github".
    id String
    The image ID. For GitHub-owned images, use numeric IDs like "2306" for Ubuntu Latest 24.04. To get available images, use the GitHub API: GET /orgs/{org}/actions/hosted-runners/images/github-owned.
    sizeGb Number
    The size of the image in gigabytes.
    source String
    The image source. Valid values are "github", "partner", or "custom". Defaults to "github".

    ActionsHostedRunnerMachineSizeDetail, ActionsHostedRunnerMachineSizeDetailArgs

    CpuCores int
    Number of CPU cores.
    Id string
    Machine size identifier.
    MemoryGb int
    Amount of memory in gigabytes.
    StorageGb int
    Amount of storage in gigabytes.
    CpuCores int
    Number of CPU cores.
    Id string
    Machine size identifier.
    MemoryGb int
    Amount of memory in gigabytes.
    StorageGb int
    Amount of storage in gigabytes.
    cpuCores Integer
    Number of CPU cores.
    id String
    Machine size identifier.
    memoryGb Integer
    Amount of memory in gigabytes.
    storageGb Integer
    Amount of storage in gigabytes.
    cpuCores number
    Number of CPU cores.
    id string
    Machine size identifier.
    memoryGb number
    Amount of memory in gigabytes.
    storageGb number
    Amount of storage in gigabytes.
    cpu_cores int
    Number of CPU cores.
    id str
    Machine size identifier.
    memory_gb int
    Amount of memory in gigabytes.
    storage_gb int
    Amount of storage in gigabytes.
    cpuCores Number
    Number of CPU cores.
    id String
    Machine size identifier.
    memoryGb Number
    Amount of memory in gigabytes.
    storageGb Number
    Amount of storage in gigabytes.

    ActionsHostedRunnerPublicIp, ActionsHostedRunnerPublicIpArgs

    Enabled bool
    Whether this IP range is enabled.
    Length int
    Subnet length.
    Prefix string
    IP address prefix.
    Enabled bool
    Whether this IP range is enabled.
    Length int
    Subnet length.
    Prefix string
    IP address prefix.
    enabled Boolean
    Whether this IP range is enabled.
    length Integer
    Subnet length.
    prefix String
    IP address prefix.
    enabled boolean
    Whether this IP range is enabled.
    length number
    Subnet length.
    prefix string
    IP address prefix.
    enabled bool
    Whether this IP range is enabled.
    length int
    Subnet length.
    prefix str
    IP address prefix.
    enabled Boolean
    Whether this IP range is enabled.
    length Number
    Subnet length.
    prefix String
    IP address prefix.

    Import

    Hosted runners can be imported using the runner ID:

    $ pulumi import github:index/actionsHostedRunner:ActionsHostedRunner example 123456
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    GitHub pulumi/pulumi-github
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the github Terraform Provider.
    github logo
    GitHub v6.11.0 published on Wednesday, Jan 21, 2026 by Pulumi
      Meet Neo: Your AI Platform Teammate