Codespaces

Developing in the Clouds

Cloud hosted development environments accessible from anywhere

GitHub Codespaces within an Organisation

GitHub Codespaces provides each member of your Organisation a unique development environment based off a repository branch.

GitHub Codespaces in an organisation

Providing access to Codespaces

As an organisation owner or admin you can make some choices to enable codespaces for your organisation.

GitHub Codespaces is always available in an organisation's public repositories, and any user can create a codespace from these repositories. If your organization is on a GitHub Free plan, GitHub Codespaces is always available in your organisation's private repositories too, and any users with access to these repositories can create a codespace at their own expense.

If you're the owner or admin of an organisation on a GitHub Team or GitHub Enterprise Cloud plan, you can choose whether to enable or disable GitHub Codespaces in your organisation's private repositories. If you enable GitHub Codespaces in these repositories, you can choose whether to enable for all users or for a selection of members and collaborators.

If you have enabled GitHub Codespaces in private repositories for at least some users, you can choose to pay for these users' usage of GitHub Codespaces across all repositories in your organisation.

GitHub Codespaces docs have more information about this at Choosing who owns and pays for codespaces in your organisation

Dev Container

When a Codespace is created it is hosted by GitHub in a Docker container, running on a virtual machine. This docker container can be the default GitHub one or you can define a dev container by adding a devcontainer.json to your repository. Defining a dev container is explained by GitHub at Introduction to dev containers

Customising further using

You can run your codespace on a choice of remote machine types that can be defined by choosing the machine type on setup or in the dev container. However you can further customise your working environment by using the below features

.dotfile

You can personalise your GitHub Codespaces by using a dotfiles repository on GitHub or by using Settings Sync for your account.

This is covered in the GitHub Docs at Personalizing GitHub Codespaces for your account

VS Code Addins

VS Code Addins can be a great way to provide extra features within your code editor. You are free to define VS Code Addins on a per user or per repository basis.

If you have enabled Settings Sync then the same addins are available on your desktop VS Code and you GitHub Codespaces.

However if your repository benefits from having certain addins available then this can be configured as required for the repository

Settings Sync is defined in the GitHub Docs at Personalizing GitHub Codespaces for your account

Environment secrets

You can add development environment secrets to your personal account that you want to use in your codespaces.

However Development environment secrets allow you to store sensitive information in your organization or repository for use with GitHub Codespaces. To manage development environment secrets for GitHub Codespaces for an organization, you must be an organization owner.

This is covered in the GitHub Docs at Managing development environment secrets for your repository or organization

Each user has options

A great thing about GitHub Codespaces is that it provides a standard working environment but the user can still choose to work in the code editor that they are happy using. You can develop code in a Codespace using your choice of tool:

  • A command shell, via an SSH connection initiated using GitHub CLI.
  • One of the JetBrains IDEs, via the JetBrains Gateway.
  • The Visual Studio Code desktop application.
  • A browser-based version of Visual Studio Code.

Other Cloud Development Environments

JasmineDesign Development Workspace

Please see our Writing Code at JasmineDesign for a full list of available environments.