Skip to main content

Подробные сведения о GitHub Codespaces

Узнайте, как работает GitHub Codespaces.

GitHub Codespaces — это современная облачная среда разработки, которая использует контейнер для предоставления популярных языков, инструментов и служебных программ для разработки. GitHub Codespaces также можно настроить, что позволяет создать настраиваемую среду разработки для проекта. Настроив пользовательскую среду разработки для проекта, вы получите воспроизводимую конфигурацию кодового пространства для всех пользователей проекта.

Создание кодового пространства

Кодовое пространство можно создавать в нескольких точках входа:

  • Из шаблона GitHub или любого репозитория шаблонов в GitHub.com для запуска нового проекта
  • Из ветви в репозитории для работы с новыми функциями
  • Из открытого запроса на вытягивание для изучения работы в процессе выполнения
  • Из фиксации в журнале репозитория для изучения ошибки в определенный момент времени

codespace можно создать на веб-сайте GitHub.com, в Visual Studio Code или с помощью GitHub CLI.

Кодовое пространство может быть временным, если вам нужно протестировать что-то или вернуться в то же кодовое пространство для выполнения более долгосрочных задач.

Дополнительные сведения см. в разделах Создание codespace для репозитория, Создание пространства кода из шаблона и Открытие существующего пространства кода.

Примечание. Вы можете создать несколько codespace для каждого репозитория или даже для каждой ветви. Однако количество создаваемых сред codespace ограничено, как и количество одновременно выполняемых сред codespace. Если вы достигнете максимального количества сред codespace и попытаетесь создать еще одну среду, появится сообщение о том, что необходимо удалить существующую среду codespace, прежде чем создать новую.

Процесс создания codespace

При создании codespace различные шаги выполняются в фоновом режиме, прежде чем codespace становится доступным для вас.

Шаг 1. Кодовому пространству назначаются виртуальная машина и хранилище

При создании codespace выполняется неглубокий клон репозитория или репозитория шаблонов, если вы создаете codespace на основе шаблона. Репозиторий клонируется в виртуальную машину Linux, которая является как выделенной, так и частной. Выделение виртуальной машины обеспечит вам полный набор вычислительных ресурсов, доступных на этом компьютере. При необходимости это также позволит вам получить полный корневой доступ к контейнеру.

Шаг 2. Создается контейнер

GitHub Codespaces использует контейнер в качестве среды разработки. Этот контейнер создается на основе конфигураций, которые можно определить в devcontainer.json файле и, при необходимости, в Файле Dockerfile. Если вы создаете пространство кода из пустого шаблона GitHub или из репозитория без devcontainer.json файла, GitHub Codespaces использует образ по умолчанию, который имеет множество языков и сред выполнения. Дополнительные сведения см. в статье Общие сведения о контейнерах разработки. Дополнительные сведения о том, что содержит образ по умолчанию, см. в репозитории microsoft/vscode-dev-containers .

Примечание. Если вы хотите использовать перехватчики Git в кодовом пространстве и применить что-то из каталога шаблонов Git к своему кодовому пространству, перехватчики необходимо настроить при выполнении шага 4 после того, как будет создан контейнер.

Поскольку репозиторий клонируется на виртуальную машину узла до создания контейнера, никакое содержимое каталога шаблонов Git не будет применяться в вашем кодовом пространстве, пока вы не настроите перехватчики в файле конфигурации devcontainer.json с помощью postCreateCommand в шаге 4. Дополнительные сведения см. в разделе Шаг 4. Настройка после создания.

Шаг 3. Подключение к кодовому пространству

После создания контейнера и выполнения любой другой инициализации вы будете подключены к своему кодовому пространству. К нему можно подключиться с помощью:

Шаг 4. Настройка после создания

После подключения к codespace автоматическая установка может продолжить сборку на основе конфигурации, указанной в devcontainer.json файле. Могут быть выполнены команды postCreateCommand и postAttachCommand.

Если вы хотите использовать перехватчики Git в codespace, настройте перехватчики с помощью devcontainer.json скриптов жизненного цикла, таких как postCreateCommand. Дополнительные сведения см. в справочнике по devcontainer.json в документации по VS Code.

Если у вас есть общедоступный репозиторий файлов с точкой для GitHub Codespaces, его можно включить для использования с новыми кодовыми пространствами. Если он включен, файлы с точкой будут клонированы в контейнер и будет вызван скрипт установки. Дополнительные сведения см. в разделе Персонализация GitHub Codespaces для вашей учетной записи.

Наконец, если вы создали codespace из репозитория, весь журнал репозитория копируется с помощью полного клона. Если вы создали codespace на основе шаблона, полный журнал репозитория шаблонов не сохраняется; Вместо этого, если вы не используете пустой шаблон, вы начнете с начальной фиксации для содержимого репозитория шаблонов.

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

Жизненный цикл Codespaces

Сохранение файлов в кодовом пространстве

Сохраняйте изменения в файлах обычным способом в зависимости от используемого редактора.

Если вы работаете с codespaces в Visual Studio Code, вы можете включить автоматическое сохранение , чтобы обеспечить постоянное сохранение изменений.

Закрытие или остановка кодового пространства

Codespace будет продолжать работать, пока вы используете его, но время ожидания будет истекать после периода бездействия. Изменения файлов в выходных данных редактора и терминала считаются действиями, поэтому время ожидания codespace не истекает, если выходные данные терминала продолжаются. Время ожидания бездействия по умолчанию составляет 30 минут. Вы можете определить личный параметр времени ожидания для создаваемых codespace, но это может быть отказано в политике времени ожидания организации. Дополнительные сведения см. в статье "Настройка периода ожидания для Codespaces".

Если время ожидания codespace будет прекращено, но его можно перезапустить на вкладке браузера (если вы использовали codespace в браузере), из VS Code или из списка codespace в https://github.com/codespaces.

Чтобы остановить codespace, вы можете

  • В браузере в списке codespaces в https://github.com/codespacesщелкните многоточие (...) справа от codespace, которое нужно остановить, и нажмите кнопку Остановить codespace.
  • В VS Code: откройте Visual Studio Code Command Palette (например, нажав клавиши CTRL+SHIFT+ВВОД (Windows/Linux) или SHIFT+Command+P (Mac) и Codespaces: stop нажмите клавишу ВВОД.
  • В клиенте JetBrains нажмите кнопку остановки в верхней части окна инструментов GitHub Codespaces. Дополнительные сведения см. на вкладке JetBrains IDEs статьи Остановка и запуск codespace.
  • В окне терминала используйте команду gh codespace stopGitHub CLI . Дополнительные сведения см. в разделе Использование GitHub Codespaces с GitHub CLI.

Если выйти из codespace без выполнения команды stop (например, закрыв вкладку браузера) или оставить codespace без взаимодействия, пространство codespace и его выполняемые процессы будут продолжаться в течение периода времени ожидания бездействия.

При закрытии или остановке кодового пространства все незафиксированные изменения сохраняются, пока вы не подключитесь к кодовому пространству еще раз.

Запуск приложения

Переадресация портов обеспечивает доступ к TCP-портам, работающим в кодовом пространстве. Например, если веб-приложение выполняется через порт 4000 в кодовом пространстве, можно настроить автоматическую переадресацию этого порта с тем, чтобы приложение было доступно из браузера.

Переадресация портов определяет, какие порты будут вам доступны с удаленного компьютера. Даже если вы не переадресуете порт, он будет по-прежнему доступен другим процессам, выполняемым в самом кодовом пространстве.

Схема, показывающая, как работает переадресация портов в кодовом пространстве

Когда приложение, работающее в GitHub Codespaces, выводит порт в консоль, GitHub Codespaces обнаруживает шаблон URL-адреса localhost и автоматически перенаправит порт. Чтобы открыть порт в браузере, щелкните URL-адрес в окне терминала или ссылку во всплывающем уведомлении, которое появится в правом нижнем углу VS Code. По умолчанию GitHub Codespaces пересылает порт по протоколу HTTP. Дополнительные сведения о переадресации портов см. в разделе Переадресация портов в кодовом пространстве.

Порты могут переадресовываться автоматически, но не являются общедоступными в Интернете. По умолчанию все порты являются частными, но любой порт можно сделать доступным для вашей организации или общедоступным, а затем предоставить к нему доступ по URL-адресу. Дополнительные сведения см. в разделе Общий доступ к порту.

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

Фиксация и отправка изменений

Git устанавливается по умолчанию в codespace, поэтому вы можете использовать существующий рабочий процесс Git. Вы можете работать с Git в codespace через терминал или с помощью функций управления версиями VS Code или JetBrains.

Если вы работаете с существующим репозиторием, вы можете создать codespace из любой ветви, фиксации или запроса на вытягивание в репозитории или переключиться на новую или существующую ветвь из активного codespace. Поскольку среда GitHub Codespaces предназначена для временного использования, она может служить изолированной средой для экспериментов, проверки запроса на вытягивание, созданного членом команды, или устранения конфликтов слияния.

Если у вас есть доступ только на чтение к репозиторию, вы можете создать codespace для репозитория при условии, что вы можете создать его вилку. При фиксации из codespace GitHub Codespaces автоматически создает вилку репозитория или связывает codespace с существующей вилкой, если она уже есть для вышестоящего репозитория.

Если вы работаете в codespace, созданном на основе шаблона, Git устанавливается по умолчанию, но вам потребуется опубликовать codespace в удаленном репозитории, чтобы сохранить работу и поделиться ею с другими пользователями. Если вы начинаете с пустого шаблона GitHub, необходимо сначала инициализировать рабочую область в качестве репозитория Git (например, введя git init), чтобы начать использовать систему управления версиями в codespace.

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

Примечание. Фиксации из кодового пространства будут соотнесены с именем и общедоступный адресом электронной почты, настроенным в https://github.com/settings/profile. Токен, ограниченный репозиторием, включается в среду как GITHUB_TOKEN, а для проверки подлинности используются учетные данные GitHub.

Персонализация codespace с помощью расширений или подключаемых модулей

Вы можете добавить подключаемые модули и расширения в codespace, чтобы персонализировать интерфейс в JetBrains и VS Code соответственно.

Расширения VS Code

Если вы работаете с codespace в классическом приложении VS Code или веб-клиенте, вы можете добавить любые необходимые расширения из Visual Studio Code Marketplace. Сведения о том, как модули работают в GitHub Codespaces, см. в разделах Поддержка удаленной разработки и GitHub Codespaces документации по VS Code.

Если вы уже используете VS Code, вы можете использовать синхронизацию параметров для автоматической синхронизации расширений, параметров, тем и сочетаний клавиш между локальным экземпляром и любыми создаваемыми вами пространствами кода.

Подключаемые модули JetBrains

Если вы работаете с codespace в интегрированной среде разработки JetBrains, вы можете добавить подключаемые модули из JetBrains Marketplace.

  1. Щелкните Клиент JetBrains, а затем — Параметры.

  2. В диалоговом окне Параметры щелкните Подключаемые модули на узле , чтобы установить подключаемый модуль в полной интегрированной среде разработки JetBrains, которая работает удаленно, или Подключаемые модули , чтобы установить подключаемый модуль на локальном клиенте, например для изменения темы пользовательского интерфейса.

  3. Перейдите на вкладку Marketplace .

    Снимок экрана: вкладка Marketplace для "Подключаемые модули на узле"

  4. Щелкните Установить рядом с требуемым подключаемым модулем.

Дополнительные материалы