Skip to main content

Использование GitHub Codespaces с GitHub CLI

Вы можете работать с GitHub Codespaces непосредственно из командной строки с помощью gh, интерфейса командной строки GitHub Enterprise Cloud.

Сведения о GitHub CLI

GitHub CLI — это инструмент с открытым исходным кодом для использования GitHub из командной строки компьютера. При работе с командной строкой можно использовать GitHub CLI — это позволит экономить время и не переключать контекст. Дополнительные сведения см. в разделе "Сведения о GitHub CLI".

Вы можете работать с GitHub Codespaces в GitHub CLI:

Установка GitHub CLI

Инструкции по установке для GitHub CLI см. в репозитории GitHub CLI.

Использование GitHub CLI

Если вы еще этого не сделали, выполните gh auth login для проверки подлинности с помощью учетной записи GitHub.

Для работы gh с GitHub Codespaces, введите gh codespace SUBCOMMAND или его псевдоним gh cs SUBCOMMAND.

В качестве примера ряда команд, которые можно использовать для работы с GitHub Codespaces, вы можете:

  • Создать список текущих codespace, чтобы проверить наличие codespace для определенного репозитория:
    gh codespace list
  • Создать новый codespace для требуемой ветви репозитория:
    gh codespace create -r github/docs -b main
  • Выполнения SSH в новом codespace:
    gh codespace ssh -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq
  • Переадресуйте порт на локальный компьютер:
    gh codespace ports forward 8000:8000 -c octocat-literate-space-parakeet-7gwrqp9q9jcx4vq

Команды gh для GitHub Codespaces

В следующих разделах приведены примеры команд для каждой из доступных операций.

Полный справочник по командам gh для GitHub Codespaces, включая сведения обо всех доступных параметрах для каждой команды, см. в справке GitHub CLI для gh codespace. Кроме того, в командной строке используйте gh codespace --help общую справку или gh codespace SUBCOMMAND --help справку по определенному подкомандам.

Note

Флаг -c CODESPACE_NAME , используемый со многими командами, является необязательным. Если он пропущен, отобразится список codespace для выбора.

Перечисление всех codespace

gh codespace list

Список содержит уникальное имя каждого codespace, которое можно использовать в других командах gh codespace.

Звездочка в конце имени ветви для пространства кода указывает на то, что в этом пространстве кода есть незафиксированные или незафиксированные изменения.

Создание нового codespace

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

Дополнительные сведения см. в разделе Создание пространства кода для репозитория.

Просмотр сведений о пространстве кода

gh codespace view

После выполнения этой команды вам будет предложено выбрать одно из существующих пространств кода. Затем отображаются следующие сведения:

  • Имя пространства кода
  • Состояние (например, "Доступно" или "Завершение работы")
  • Репозиторий
  • Состояние Git
  • Путь к файлу конфигурации контейнера разработки, используемому для создания пространства кода
  • Тип компьютера
  • Время ожидания перед переходом в режим простоя
  • Дата и время создания пространства кода
  • Период хранения

Дополнительные сведения см. в справочнике по интерфейсу командной строки GitHub.

Остановка codespace

gh codespace stop -c CODESPACE-NAME

Дополнительные сведения см. в разделе Подробные сведения о GitHub Codespaces.

Удаление codespace

gh codespace delete -c CODESPACE-NAME

Дополнительные сведения см. в разделе Удаление codespace.

Переименование пространства кода

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

Дополнительные сведения см. в разделе Переименование codespace.

Перестроение пространства кода

gh codespace rebuild

Чтобы выполнить полную перестроение, добавьте --full в конце этой команды. Дополнительные сведения см. в разделе Перестроение контейнера в пространстве кода.

При использовании этой команды для перестроения пространства кода используется devcontainer.json файл, который в настоящее время сохраняется в системе пространства кода. Это происходит независимо от того, сохранено ли текущее состояние файла в системе управления версиями. Дополнительные сведения см. в разделе Основные сведения о контейнерах разработки.

Выполнения SSH в codespace

Чтобы выполнить команды на удаленном компьютере с codespace, вы можете выполнить SSH в codespace в терминале.

gh codespace ssh -c CODESPACE-NAME

Note

Пространство кода, к которому вы подключаетесь, должно работать на сервере SSH. Образ контейнера разработки по умолчанию включает сервер SSH, который запускается автоматически. Если пространства кода не создаются на основе образа по умолчанию, можно установить и запустить сервер SSH, добавив следующий features объект в devcontainer.json файл.

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

Дополнительные сведения о файле и образе devcontainer.json контейнера по умолчанию см. в разделе "Основные сведения о контейнерах разработки".

GitHub Codespaces автоматически создает локальный ключ SSH для обеспечения простой проверки подлинности. Дополнительные сведения о подключении с помощью SSH см. в статье gh codespace ssh.

Открытие codespace в Visual Studio Code

gh codespace code -c CODESPACE-NAME

На локальном компьютере должен быть установлен VS Code. Дополнительные сведения см. в разделе Использование GitHub Codespaces в Visual Studio Code.

Открытие codespace в JupyterLab

gh codespace jupyter -c CODESPACE-NAME

Приложение JupyterLab должно быть установлено в открываемом пространстве кода. Образ контейнера разработки по умолчанию включает JupyterLab, поэтому пространства кода, созданные на основе образа по умолчанию, всегда будут установлены JupyterLab. Дополнительные сведения о образе по умолчанию см. в разделе "AUTOTITLE" и репозиторииdevcontainers/images. Если вы не используете образ по умолчанию в конфигурации контейнера разработки, можно установить JupyterLab, добавив ghcr.io/devcontainers/features/python эту функцию в devcontainer.json файл. Этот параметр "installJupyterlab": trueследует включить. Дополнительные сведения см. в разделе README для python функции в репозитории.devcontainers/features

Копирование файла в codespace или из него

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

Используйте префикс remote: в имени файла или каталога, чтобы указать, что он находится в codespace. Как и в случае с командой cp UNIX, первый аргумент указывает источник, а последний — назначение. Если назначение является каталогом, можно указать несколько источников. Используйте флаг (рекурсивный) -r, если какой-либо из источников является каталогом.

Расположение файлов и каталогов в codespace относится к домашнему каталогу удаленного пользователя.

Примеры

  • Скопируйте файл с локального компьютера в каталог $HOME codespace:

    gh codespace cp myfile.txt remote:

  • Скопируйте файл в каталог, в котором репозиторий получен для изменения в codespace:

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

  • Скопируйте файл из codespace в текущий каталог на локальном компьютере:

    gh codespace cp remote:myfile.txt .

  • Скопируйте три локальных файла в каталог $HOME/temp codespace:

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

  • Скопируйте три файла из codespace в текущую рабочую папку на локальном компьютере:

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

  • Скопируйте локальный каталог в каталог $HOME codespace:

    gh codespace cp -r mydir remote:

  • Скопируйте каталог из codespace на локальный компьютер, изменив имя каталога:

    gh codespace cp -r remote:mydir mydir-localcopy

Дополнительные сведения о команде gh codespace cp, включая дополнительные флаги, которые можно использовать, см. в руководстве по GitHub CLI.

Изменение портов в codespace

Вы можете переадресовать порт в codespace на локальный порт. Порт остается переадресованным, пока выполняется процесс. Чтобы остановить переадресацию порта, нажмите клавиши Control+C.

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

Чтобы просмотреть сведения о переадресованных портах, введите gh codespace ports и выберите кодовое пространство.

Вы можете задать видимость переадресованного порта. Существует три варианта видимости.

  • private — объект виден только вам. Это вариант по умолчанию при переадресации порта.
  • org — объект виден членам организации, которой принадлежит репозиторий.
  • public — объект виден всем, кто знает URL-адрес и номер порта.
gh codespace ports visibility CODESPACE-PORT:private|org|public -c CODESPACE-NAME

Задать видимость для нескольких портов можно с помощью одной команды. Например:

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

Дополнительные сведения см. в разделе Переадресация портов в вашем codespace.

Доступ к журналам codespace

Вы можете просматривать журнал создания для codespace. После ввода этой команды появится запрос на ввод парольной фразы для ключа SSH.

gh codespace logs -c CODESPACE-NAME

Дополнительные сведения о журнале создания см. в разделе "Журналы GitHub Codespaces".

Получение доступа к удаленным ресурсам

Вы можете использовать расширение GitHub CLI, чтобы создать мост между codespace и вашим локальным компьютером, чтобы разрешить codespace обращаться к любому удаленному ресурсу, доступному с вашего компьютера. Дополнительные сведения об использовании расширения см. в разделе Использование GitHub CLI для получения доступа к удаленным ресурсам.

Note

Расширение GitHub CLI в настоящее время находится в public preview и подлежит изменению.

Изменение типа компьютера пространства кода

gh codespace edit -m MACHINE-TYPE-NAME

Дополнительные сведения см. на вкладке "GitHub CLI" элемента AUTOTITLE.