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.

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 obter mais informações, confira "Sobre a GitHub CLI".

É 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.

Observação: 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 obter mais informações, confira "Como criar um codespace para um repositório".

Parar um codespace

gh codespace stop -c CODESPACE-NAME

Para ver mais informações, confira "Aprofundamento nos GitHub Codespaces".

Excluir um codespace

gh codespace delete -c CODESPACE-NAME

Para obter mais informações, confira "Como excluir um codespace".

Renomear um codespace

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

Para saber mais, confira "Renomear um codespace".

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

Nota: O codespace ao qual você se conecta precisa estar executando um servidor SSH. A imagem de contêiner 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 saber mais sobre o arquivo devcontainer.json e a imagem de contêiner padrão, confira "Introdução aos contêineres de desenvolvimento".

GitHub Codespaces copia suas chaves SSH no codespace ao criar para uma experiência de autenticação perfeita. É possível que se solicite a senha da sua chave SSH e, após isso, você obterá uma instrução de comando da máquina de codespace remoto.

Se você não tiver nenhuma chave SSH, siga as instruções descritas em "Como gerar uma nova chave SSH e adicioná-la ao ssh-agent".

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 "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 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 ao 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 LEIAME do python recurso, 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 obter mais informações, confira "Como encaminhar portas no seu codespace".

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 ver mais informações 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".

Observação: a extensão GitHub CLI está atualmente na versão beta 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 "Alterar o tipo de computador de um codespace".