Overview
When you create a codespace for a repository you are typically offered a choice of available machine types. Each machine type has a different level of resources. For more information, see "Changing the machine type for your codespace."
If your project needs a certain level of compute power, you can configure GitHub Codespaces so that only machine types that meet these requirements are available for people to select. You configure this in the devcontainer.json file.
Important: Access to some machine types may be restricted at the organization level. Typically this is done to prevent people choosing higher resourced machines that are billed at a higher rate. If your repository is affected by an organization-level policy for machine types you should make sure you don't set a minimum specification that would leave no available machine types for people to choose. For more information, see "Restricting access to machine types."
Setting a minimum machine specification
-
Codespaces for your repository are configured in the
devcontainer.jsonfile. If your repository does not already contain adevcontainer.jsonfile, add one now. See "Add a dev container to your project." -
Edit the
devcontainer.jsonfile, adding ahostRequirementsproperty such as this:JSON "hostRequirements": { "cpus": 8, "memory": "8gb", "storage": "32gb" }You can specify any or all of the options:
cpus,memory, andstorage.To check the specifications of the Codespaces machine types that are currently available for your repository, step through the process of creating a codespace until you see the choice of machine types. For more information, see "Creating a codespace."
-
Save the file and commit your changes to the required branch of the repository.
Now when you create a codespace for that branch of the repository you will only be able to select machine types that match or exceed the resources you've specified.


