Skip to main content

Uso de GitHub Codespaces con la CLI de GitHub

Puedes trabajar con GitHub Codespaces directamente desde la línea de comandos mediante gh, la interfaz de línea de comandos de GitHub.

Acerca de la GitHub CLI

GitHub CLI es una herramienta de código abierto para usar GitHub desde la línea de comandos del equipo. Cuando trabajas desde la línea de comandos, puedes utilizar el GitHub CLI para ahorrar tiempo y evitar cambiar de contexto. Para más información, consulta "Acerca del CLI de GitHub".

Puedes trabajar con los GitHub Codespaces en el GitHub CLI para:

Instalación de GitHub CLI

A fin de obtener instrucciones de instalación para GitHub CLI, vea el repositorio de GitHub CLI.

Uso de GitHub CLI

Si todavía no lo ha hecho, ejecute gh auth login para autenticarse con la cuenta de GitHub.

Para usar gh a fin de trabajar con GitHub Codespaces, escribe gh codespace SUBCOMMAND o su alias gh cs SUBCOMMAND.

Como ejemplo de una serie de comandos que podrías utilizar para trabajar con los GitHub Codespaces, podrías:

  • Enumere los codespaces actuales a fin de comprobar si tiene uno para un repositorio determinado:
    gh codespace list
  • Cree un codespace para la rama de repositorio necesaria:
    gh codespace create -r github/docs -b main
  • Ejecute SSH en el nuevo codespace:
    gh codespace ssh -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq
  • Reenvíe un puerto a la máquina local:
    gh codespace ports forward 8000:8000 -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq

Comandos gh para GitHub Codespaces

La siguiente sección proporciona comandos de ejemplo para cada una de las operaciones disponibles.

Para obtener una referencia completa de los comandos gh para GitHub Codespaces, incluidos los detalles de todas las opciones disponibles para cada comando, vea "gh codespace" en la ayuda en línea de GitHub CLI. Como alternativa, en la línea de comandos, usa gh codespace --help para obtener ayuda general o gh codespace SUBCOMMAND --help para obtener ayuda con un subcomando específico.

Nota: La marca -c CODESPACE_NAME, que se usa con muchos comandos, es opcional. Si lo omites, se mostrará una lista de codespaces para que elijas de ella.

Lista todos tus codespaces

gh codespace list

La lista incluye el nombre único de cada codespace, que puede usar en otros comandos gh codespace.

Un asterisco al final del nombre de la rama de un codespace indica que hay cambios no confirmados o no insertados en ese codespace.

Crea un codespace nuevo

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

Para obtener más información, vea «Creación de un codespace para un repositorio».

Ver detalles de un codespace

gh codespace view

Después de ejecutar este comando, se te pedirá que elijas uno de los codespacees existentes. Se muestra entonces la siguiente información:

  • Nombre del codespace
  • Estado (por ejemplo, "Disponible" o "Apagado")
  • Repositorio
  • Estado de Git
  • Ruta de acceso al archivo de configuración del contenedor de desarrollo usado para crear el codespace
  • Tipo de máquina
  • Tiempo de espera inactividad
  • Fecha y hora en que se creó el codespace
  • Período de retención

Para más información, consulta la "referencia de la CLI de GitHub".

Detener un codespace

gh codespace stop -c CODESPACE-NAME

Para obtener más información, vea «Análisis en profundidad de GitHub Codespaces».

Borrar un codespace

gh codespace delete -c CODESPACE-NAME

Para obtener más información, vea «Borrar un codespace».

Cambiar el nombre de un codespace

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

Para obtener más información, vea «Cambio del nombre de un codespace».

Recompilación de un codespace

gh codespace rebuild

Para efectuar una recompilación completa, agrega --full al final de este comando. Para obtener más información, vea «Recompilación del contenedor en un codespace».

Si usas este comando para recompilar un codespace, se usa el archivo devcontainer.json que está guardado actualmente en el sistema del codespace. Esto sucede independientemente de si el estado actual del archivo se ha guardado o no en el control de código fuente. Para obtener más información, vea «Introducción a los contenedores dev».

Ingresar por SSH a un codespace

Para ejecutar comandos en la máquina remota del codespace, desde tu terminal, puedes ingresar por SSH al codespace.

gh codespace ssh -c CODESPACE-NAME

Nota: El codespace al que te conectes debe ejecutar un servidor SSH. La imagen de contenedor de dev predeterminada incluye un servidor SSH, que se inicia automáticamente. Si los codespaces no se crean a partir de la imagen predeterminada, puedes instalar e iniciar un servidor SSH agregando lo siguiente al objeto features en el archivo devcontainer.json.

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


Para obtener más información sobre el archivo devcontainer.json y la imagen de contenedor predeterminada, consulta "Introducción a los contenedores dev".

GitHub Codespaces crea automáticamente una clave SSH local para proporcionar una experiencia de autenticación sin problemas. Para obtener más información sobre cómo conectarse con SSH, consulta gh codespace ssh.

Abrir un codespace en Visual Studio Code

gh codespace code -c CODESPACE-NAME

Debes tener VS Code instalados en la máquina local. Para obtener más información, vea «Uso de GitHub Codespaces en Visual Studio Code».

Apertura de un codespace en JupyterLab

gh codespace jupyter -c CODESPACE-NAME

La aplicación JupyterLab debe estar instalada en el codespace que estás abriendo. La imagen de contenedor dev predeterminada incluye JupyterLab, por lo que los codespaces creados a partir de la imagen predeterminada siempre lo tendrán instalado. Para más información sobre la imagen predeterminada, consulta "Introducción a los contenedores dev" y el repositorio de devcontainers/images. Si no usa la imagen predeterminada en la configuración del contenedor de desarrollo, puedes instalar JupyterLab agregando la característica ghcr.io/devcontainers/features/python al archivo devcontainer.json. Debes incluir la opción "installJupyterlab": true. Para obtener más información, consulta el archivo Léame de la característica python, en el repositorio devcontainers/features.

Copia un archivo de/hacia un codespace

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

Use el prefijo remote: en un nombre de archivo o directorio para indicar que está en el codespace. Como sucede con el comando cp de UNIX, el primer argumento especifica el origen y, el último, el destino. Si el destino es un directorio, puedes especificar fuentes múltiples. Use la marca -r (recursiva) si alguno de los orígenes es un directorio.

La ubicación de los archivos y directorios en el codespace es relativa al directorio principal del usuario remoto.

Ejemplos

  • Copie un archivo de la máquina local en el directorio $HOME de un codespace:

    gh codespace cp myfile.txt remote:

  • Copia un archivo al directorio en el que un repositorio esté marcado en un codespace:

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

  • Copia un archivo desde un codespace hacia el directorio actual en la máquina local:

    gh codespace cp remote:myfile.txt .

  • Copie tres archivos locales en el directorio $HOME/temp de un codespace:

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

  • Copia tres archivos desde un codespace hacia el directorio de trabajo actual en la máquina local:

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

  • Copie un directorio local en el directorio $HOME de un codespace:

    gh codespace cp -r mydir remote:

  • Copia un directorio de un codespace a la máquina local, cambiando el nombre de directorio:

    gh codespace cp -r remote:mydir mydir-localcopy

Para más información sobre el comando gh codespace cp, incluidas las marcas adicionales que puede usar, vea el manual de GitHub CLI.

Modificar los puertos en un codespace

Puedes reenviar un puerto en un codespace a un puerto local. El puerto permanece reenviado siempre que el proceso se esté ejecutando. Para detener el reenvío del puerto, presione Control+C.

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

Para ver detalles de los puertos reenviados, escriba gh codespace ports y elija un codespace.

Puedes configurar la visibilidad de un puerto reenviado. Existen tres ajustes de visibilidad:

  • private: solo es visible para usted. Este es el ajuste predeterminado cuando reenvías un puerto.
  • org: visible para los miembros de la organización propietaria del repositorio.
  • public: visible para cualquiera que conozca la URL y el número de puerto.
gh codespace ports visibility CODESPACE-PORT:private|org|public -c CODESPACE-NAME

Puedes configurar la visibilidad para varios puertos con un solo comando. Por ejemplo:

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

Para obtener más información, vea «Reenviar puertos en tu codespace».

Acceder a las bitácoras de un codespace

Puedes ver la bitácora de creación de un codespace. Después de ingresar este comando, se te pedirá ingresar la frase de acceso de tu llave SSH.

gh codespace logs -c CODESPACE-NAME

Para más información sobre el registro de creación, consulta "Registros de GitHub Codespaces".

Acceso remoto a recursos

Puede usar la extensión GitHub CLI para crear un puente entre un codespace y la máquina local, de modo que el codespace pueda acceder a cualquier recurso remoto al que se pueda acceder desde la máquina. Para obtener más información sobre el uso de la extensión, vea "Uso de GitHub CLI para acceder a recursos remotos".

Nota: La extensión GitHub CLI se encuentra actualmente en versión preliminar pública y está sujeta a cambios.

Cambiar el tipo de máquina de un codespace

gh codespace edit -m MACHINE-TYPE-NAME

Para más información, consulta la pestaña "GitHub CLI" de "Cambiar el tipo de máquina de tu codespace".