Skip to main content

Como usar o GitHub Codespaces com a CLI do GitHub

Você pode trabalhar com o GitHub Codespaces diretamente de sua linha de comando usando gh, a interface de linha de comando GitHub Enterprise Cloud.

Sobre a GitHub CLI

A GitHub CLI é uma ferramenta de código aberto para uso do GitHub na linha de comando do computador. Quando você está trabalhando na linha de comando, você pode usar GitHub CLI para economizar tempo e evitar mudar o contexto. Para saber mais, confira Sobre o a CLI do GitHub.

É possível trabalhar com o GitHub Codespaces na GitHub CLI para fazer o seguinte:

Como instalar a GitHub CLI

Para obter instruções de instalação para GitHub CLI, veja o repositório GitHub CLI.

Como usar a GitHub CLI

Se você ainda não fez isso, execute gh auth login para se autenticar com sua conta do GitHub.

Para usar gh a fim de trabalhar com o GitHub Codespaces, digite gh codespace SUBCOMMAND ou o alias gh cs SUBCOMMAND dele.

Como exemplo de uma série de comandos que você pode usar para trabalhar com GitHub Codespaces, você pode:

  • Liste seus codespaces atuais para verificar se você tem um codespace para um repositório específico:
    gh codespace list
  • Crie um codespace para o branch do repositório necessário:
    gh codespace create -r github/docs -b main
  • Use o SSH no novo codespace:
    gh codespace ssh -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq
  • Encaminhe uma porta para o computador local:
    gh codespace ports forward 8000:8000 -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq

Comandos gh do GitHub Codespaces

As seções abaixo fornecem exemplos de comandos para cada uma das operações disponíveis.

Para ver uma referência completa de comandos gh do GitHub Codespaces, incluindo detalhes de todas as opções disponíveis para cada comando, confira a ajuda online da GitHub CLI para gh codespace. Como alternativa, na linha de comando, use gh codespace --help para ajuda geral ou gh codespace SUBCOMMAND --help para ajuda com um subcomando específico.

Note

O sinalizador -c CODESPACE_NAME, usado com muitos comandos, é opcional. Se você omitir, será exibida uma uma lista de codespaces para você escolher.

Listar todos os seus codespaces

gh codespace list

A lista inclui o nome exclusivo de cada codespace, que você pode usar em outros comandos gh codespace.

Um asterisco no final do nome do branch de um codespace indica que há nele alterações não confirmadas ou não enviadas por push.

Criar um novo codespace

gh codespace create -r OWNER/REPO_NAME [-b BRANCH]

Para saber mais, confira Como criar um codespace para um repositório.

Exibir detalhes de um codespace

gh codespace view

Depois de executar esse comando, você será solicitado a escolher um de seus codespaces existentes. As informações a seguir são exibidas:

  • Nome do codespace.
  • Estado (por exemplo, "Disponível" ou "Desligamento")
  • Repositório
  • Status do Git
  • Caminho para o arquivo de configuração de contêiner de desenvolvimento usado para criar o codespace
  • Tipo de computador
  • Tempo limite de ociosidade
  • Data e hora em que o codespace foi criado.
  • Período de retenção

Para obter mais informações, confira a referência da CLI do GitHub.

Parar um codespace

gh codespace stop -c CODESPACE-NAME

Para saber mais, confira Aprofundamento de GitHub Codespaces.

Excluir um codespace

gh codespace delete -c CODESPACE-NAME

Para saber mais, confira Excluir um codespace.

Renomear um codespace

gh codespace edit -c CODESPACE-NAME -d 'DISPLAY-NAME'

Para saber mais, confira Como renomear um codespace.

Recompilar um codespace

gh codespace rebuild

Para executar uma recompilação completa, adicione --full no final deste comando. Para saber mais, confira Como recompilar o contêiner em um codespace.

Quando você usa esse comando para recompilar um codespace, ele usa o arquivo devcontainer.json que está atualmente salvo no sistema do codespace. Isso acontece independentemente de o estado atual do arquivo ter sido salvo ou não no controle do código-fonte. Para saber mais, confira Introdução aos contêineres de desenvolvimento.

SSH em um codespace

Para executar comandos na máquina de codespace remoto, a partir do seu terminal, você pode fazer SSH no codespace.

gh codespace ssh -c CODESPACE-NAME

Note

O codespace ao qual você se conecta precisa estar executando um servidor SSH. A imagem de contêiner de desenvolvimento padrão inclui um servidor SSH, que é iniciado automaticamente. Se os codespaces não forem criados com base na imagem padrão, você poderá instalar e iniciar um servidor SSH adicionando o seguinte ao objeto features no arquivo devcontainer.json.

"features": {
// ...
"ghcr.io/devcontainers/features/sshd:1": {
"version": "latest"
},
// ...
}

Para obter mais informações sobre o arquivo devcontainer.json e a imagem de contêiner padrão, confira Introdução aos contêineres de desenvolvimento.

O GitHub Codespaces cria uma chave SSH local automaticamente para oferecer uma experiência de autenticação perfeita. Para obter mais informações de como se conectar ao SSH, confira gh codespace ssh.

Abrir um codespace em Visual Studio Code

gh codespace code -c CODESPACE-NAME

É necessário ter o VS Code instalado no computador local. Para saber mais, confira Como usar o GitHub Codespaces no Visual Studio Code.

Abrir um codespace no JupyterLab

gh codespace jupyter -c CODESPACE-NAME

O aplicativo JupyterLab deve ser instalado no codespace que você está abrindo. A imagem de contêiner de desenvolvimento padrão inclui o JupyterLab, portanto, os codespaces criados com base na imagem padrão sempre terão o JupyterLab instalado. Para obter mais informações sobre a imagem padrão, confira “Introdução aos contêineres de desenvolvimento” e o repositório devcontainers/images. Se você não estiver usando a imagem padrão na configuração do contêiner de desenvolvimento, instale o JupyterLab adicionando o recurso ghcr.io/devcontainers/features/python ao arquivo devcontainer.json. Você deve incluir a opção "installJupyterlab": true. Para obter mais informações, confira o README do recurso python, no repositório devcontainers/features.

Copiar um arquivo de/para um codespace

gh codespace cp [-r] SOURCE(S) DESTINATION

Use o prefixo remote: em um nome de arquivo ou de diretório para indicar que ele está no codespace. Assim como no comando UNIX cp, o primeiro argumento especifica a origem e o último especifica o destino. Se o destino for um diretório, você poderá especificar várias fontes. Use o sinalizador -r (recursivo) se uma das fontes for um diretório.

O local dos arquivos e diretórios no codespace é relativo ao diretório principal do usuário remoto.

Exemplos

  • Copie um arquivo do computador local para o diretório $HOME de um codespace:

    gh codespace cp myfile.txt remote:

  • Copiar um arquivo para o diretório no qual se faz o check-out de um repositório em um codespace:

    gh codespace cp myfile.txt remote:/workspaces/REPOSITORY-NAME

  • Copiarum arquivo de um código para o diretório atual na máquina local:

    gh codespace cp remote:myfile.txt .

  • Copie três arquivos locais para o diretório $HOME/temp de um codespace:

    gh codespace cp a1.txt a2.txt a3.txt remote:temp

  • Copie três arquivos de um codespace para o diretório de trabalho atual na máquina local:

    gh codespace cp remote:a1.txt remote:a2.txt remote:a3.txt .

  • Copie um diretório local para o diretório $HOME de um codespace:

    gh codespace cp -r mydir remote:

  • Copiar o diretório de um codespace para a máquina local, alterando o nome do diretório:

    gh codespace cp -r remote:mydir mydir-localcopy

Para obter mais informações sobre o comando gh codespace cp, incluindo sinalizadores adicionais que você pode usar, confira o manual da GitHub CLI.

Modificar portas em um codespace

Você pode encaminhar uma porta em um codespace para uma porta local. A porta será encaminhada enquanto o processo estiver em execução. Para interromper o encaminhamento da porta, pressione Control+C.

gh codespace ports forward CODESPACE-PORT_NAME:LOCAL-PORT-NAME -c CODESPACE-NAME

Para ver os detalhes das portas encaminhadas, insira gh codespace ports e escolha um codespace.

Você pode definir a visibilidade de uma porta encaminhada. Há três configurações de visibilidade:

  • private – Visível somente para você. Essa é a configuração padrão quando você encaminha uma porta.
  • org – Visível para os membros da organização que é o proprietário do repositório.
  • public – Visível para qualquer pessoa que conheça a URL e o número da porta.
gh codespace ports visibility CODESPACE-PORT:private|org|public -c CODESPACE-NAME

Você pode definir a visibilidade de várias portas com um comando. Por exemplo:

gh codespace ports visibility 80:private 3000:public 3306:org -c CODESPACE-NAME

Para saber mais, confira Encaminhar portas no seu código.

Acessar registros de codespaces

Você pode ver o registro de criação de um codespace. Depois de entrar neste comando será solicitado que você digite a senha da sua chave SSH.

gh codespace logs -c CODESPACE-NAME

Para saber mais sobre o log de criação, confira Logs do GitHub Codespaces.

Acessar recursos remotos

Você pode usar a extensão GitHub CLI para criar uma ponte entre um codespace e seu computador local, e o codespace possa acessar qualquer recurso remoto que esteja acessível em seu computador. Para obter mais informações sobre como usar a extensão, confira Como usar dados GitHub CLI para acessar recursos remotos.

Note

A extensão da GitHub CLI está atualmente em versão prévia pública e sujeita a alterações.

Alterar o tipo de computador de um codespace

gh codespace edit -m MACHINE-TYPE-NAME

Para saber mais, confira a guia "GitHub CLI" de Alterando o tipo de máquina para seu codespace.