# Создание пространства кода для репозитория

Вы можете создать codespace для ветви в репозитории для разработки онлайн.

## Создание пространства кода для репозитория

Пространство кода можно создать на GitHub, в Visual Studio Codeили с помощью GitHub CLI. Используйте вкладки в этой статье, чтобы отобразить инструкции по каждому из этих способов создания пространства кода.

Вы можете использовать GitHub Codespaces в вашей личной учетной записи GitHub с квотой бесплатного использования, включенной каждый месяц для учетных записей в планах Free и Pro. Вы можете продолжать использовать GitHub Codespaces за пределами ежемесячно включенного хранилища и использования вычислений, предоставив сведения о платеже и установив ограничение расходов. См [. раздел AUTOTITLE](/ru/billing/managing-billing-for-your-products/managing-billing-for-github-codespaces/about-billing-for-github-codespaces).

Организации могут разрешить членам и внешний участник совместной работы создавать и использовать пространства кода за счет организации. Дополнительные сведения см. в разделе [Выбор владельцев и оплаты пространств кода в вашей организации](/ru/codespaces/managing-codespaces-for-your-organization/choosing-who-owns-and-pays-for-codespaces-in-your-organization).

Возможность создавать пространства кода из репозиториев, принадлежащих организации, зависит от нескольких факторов, в том числе видимости репозитория и параметров организации или родительского предприятия. Дополнительные сведения см. в разделе [Устранение неполадок при создании и удалении codespace](/ru/codespaces/troubleshooting/troubleshooting-creation-and-deletion-of-codespaces#no-access-to-create-a-codespace).

Если вы запускаете новый проект, вам может потребоваться создать пространство кода из шаблона и опубликовать в репозитории на GitHub позже. Дополнительные сведения см. в разделе [Создание пространства кода на основе шаблона](/ru/codespaces/developing-in-a-codespace/creating-a-codespace-from-a-template).

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

Вы можете увидеть все доступные пространства кода, созданные на странице "Ваши пространства кода". Чтобы отобразить эту страницу, в левом верхнем углу GitHubвыберите <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-three-bars" aria-label="three bars icon" role="img"><path d="M1 2.75A.75.75 0 0 1 1.75 2h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 2.75Zm0 5A.75.75 0 0 1 1.75 7h12.5a.75.75 0 0 1 0 1.5H1.75A.75.75 0 0 1 1 7.75ZM1.75 12h12.5a.75.75 0 0 1 0 1.5H1.75a.75.75 0 0 1 0-1.5Z"></path></svg>, а затем выберите **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-codespaces" aria-label="codespaces" role="img"><path d="M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z"></path><path d="M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path></svg> Codespaces**. Это позволит вам [github.com/codespaces](https://github.com/codespaces).

### Процесс создания пространства кода

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

* Шаг 1. Виртуальная машина и хранилище назначаются вашей среде codespace.
* Шаг 2. Создается контейнер и клонируется репозиторий.
* Шаг 3. Вы можете подключиться к codespace.
* Шаг 4. Для codespace выполняется настройка после создания.

Дополнительные сведения о том, что происходит при создании пространства кода, см. в разделе [Подробные сведения о GitHub Codespaces](/ru/codespaces/about-codespaces/deep-dive).

Дополнительные сведения о жизненном цикле пространства кода см. в разделе [Общие сведения о жизненном цикле пространства кода](/ru/codespaces/about-codespaces/understanding-the-codespace-lifecycle).

Если вы хотите использовать перехватчики Git для пространства кода, необходимо настроить перехватчики с помощью `devcontainer.json` скриптов жизненного цикла, таких как `postCreateCommand`. Они выполняются на шаге 4 выше. Сведения о скриптах жизненного цикла см [. в спецификации](https://containers.dev/implementors/json_reference/#lifecycle-scripts) контейнеров разработки на веб-сайте "Контейнеры разработки". Так как контейнер разработки для пространства кода создается после клонированного репозитория, любой [каталог](https://git-scm.com/docs/git-init#_template_directory) шаблонов Git, настроенный в образе контейнера разработки, не будет применяться к вашему пространству кода. Вместо этого после создания codespace необходимо установить перехватчики.

Можно изменять код, отлаживать его и использовать команды Git при разработке в codespace с помощью VS Code. Дополнительные сведения см. в [документации по VS Code](https://code.visualstudio.com/docs).

Чтобы ускорить создание пространства кода, администраторы репозитория могут включить предварительные сборки GitHub Codespaces для репозитория. Дополнительные сведения см. в разделе [О готовых сборках GitHub Codespaces](/ru/codespaces/prebuilding-your-codespaces/about-github-codespaces-prebuilds).

## Создание пространства кода для репозитория

<div class="ghd-tool webui">

1. На GitHubперейдите на главную страницу репозитория.

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

   ![Снимок экрана: раскрывающееся меню развернутой ветви, в котором перечислены различные ветви. Раскрывающееся меню "магистраль", отображаемое значком ветви, описывается оранжевым цветом.](/assets/images/help/codespaces/branch-drop-down.png)

3. Нажмите кнопку **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg> Code** , а затем перейдите на вкладку **"Пространства** кода".

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

   ![Снимок экрана: диалоговое окно "Пространства кода". Сообщение, показывающее, кто будет платить за пространство кода, выделено темно-оранжевым контуром.](/assets/images/help/codespaces/who-will-pay.png)

4. Создайте кодовое пространство с параметрами по умолчанию или настройте расширенные параметры:

   * ```
          **Использование параметров по умолчанию**
     ```

     Чтобы создать пространство кода с помощью параметров по умолчанию, щелкните <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="Create a codespace on BRANCH" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg>. <br/><br/>

   * ```
          **Настройка дополнительных параметров**
     ```

     Чтобы настроить дополнительные параметры для кодового пространства, например другой тип компьютера или конкретный файл `devcontainer.json`, выполните следующие действия:

     1. В правом верхнем углу **вкладки Codespaces** выберите <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-kebab-horizontal" aria-label="Codespace " role="img"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg> и нажмите кнопку **"Создать с параметрами**".

        ![Снимок экрана: раскрывающийся список параметров на вкладке "Codespaces" с выделенным параметром "Создать с параметрами".](/assets/images/help/codespaces/default-machine-type.png)

     2. На странице параметров пространства кода выберите предпочитаемые параметры в раскрывающихся меню.

        ![Снимок экрана: страница расширенных параметров с кнопками "Ветвь", "Конфигурация контейнера разработки", "Регион" и "Тип компьютера".](/assets/images/help/codespaces/advanced-options.png)

        На странице параметров также могут отображаться имена одного или нескольких секретов, которые рекомендуется создать в параметрах Codespaces. Дополнительные сведения см. в разделе ["Рекомендуемые секреты](#recommended-secrets)".

        > \[!NOTE]
        >
        > * Чтобы ускорить создание кодового пространства для этого репозитория и ветви, можно добавить страницу параметров можно в закладки.
        > * Страница <https://github.com/codespaces/new> позволяет быстро создать кодовое пространство для любого репозитория и ветви. Чтобы быстро открыть эту страницу, введите `codespace.new` в адресную строку браузера.
        > * Дополнительные сведения о файлах конфигурации контейнера разработки см. в разделе [Основные сведения о контейнерах разработки](/ru/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers).
        > * Дополнительные сведения о типах компьютеров см. в разделе [Изменение типа компьютера для codespace](/ru/codespaces/customizing-your-codespace/changing-the-machine-type-for-your-codespace#about-machine-types).
        > * Выбор доступных типов машин может быть ограничен рядом факторов. Они могут включать политику, настроенную для вашей организации, или минимальную спецификацию типа компьютера для репозитория. Дополнительные сведения см. в разделе \[AUTOTITLE и [Ограничение доступа к типам компьютеров](/ru/codespaces/managing-codespaces-for-your-organization/restricting-access-to-machine-types)]\(/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/setting-a-minimum-specification-for-codespace-machines).

     3. Щелкните **Create codespace** (Создать codespace).

## Рекомендуемые секреты

Имена определяемых пользователем секретов могут отображаться на странице расширенных параметров при создании пространства кода. Это произойдет, если рекомендуемые секреты были указаны в выбранной конфигурации контейнера разработки. Дополнительные сведения см. в разделе [Указание рекомендуемых секретов для репозитория](/ru/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/specifying-recommended-secrets-for-a-repository).

<img src="/assets/images/help/codespaces/recommended-secrets.png" style="max-height:50rem" alt='Screenshot of the "Create codespace" page with four recommended secrets highlighted with a dark orange outline.' />

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

Если ввести значение рекомендуемого секрета, секрет будет доступен в новом пространстве кода. При нажатии кнопки **"Создать пространство** кода" секрет также добавляется в личные параметры для Codespaces, поэтому при создании пространства кода для этого репозитория вам не потребуется ввести значение секрета в будущем.

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

Если вы хотите изменить значение предварительно выбранного секрета, можно сделать это из личных параметров для Codespaces на [github.com/settings/codespaces](https://github.com/settings/codespaces). Дополнительные сведения см. в разделе [Управление секретами, специфичными для ваших аккаунтов, для GitHub Codespaces](/ru/codespaces/managing-your-codespaces/managing-your-account-specific-secrets-for-github-codespaces).

</div>

<div class="ghd-tool vscode">

После подключения учетной записи на GitHub к расширению GitHub Codespaces можно создать новое пространство кода. Дополнительные сведения о расширении GitHub Codespaces см. в [разделе VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=GitHub.codespaces).

1. В VS Codeв строке действий щелкните значок удаленного обозревателя.

   ![Снимок экрана: панель действий. Значок боковой панели "Удаленный обозреватель" (прямоугольник, наложенный кругом), выделен оранжевым контуром.](/assets/images/help/codespaces/click-remote-explorer-icon-vscode.png)

   > \[!NOTE]
   > Если удаленный обозреватель не отображается в строке действий:
   >
   > 1. Откройте палитру команд. Например, нажмите клавиши <kbd>SHIFT</kbd>+<kbd>COMMAND</kbd>+<kbd>P</kbd> (Mac) или <kbd>CTRL</kbd>+<kbd>SHIFT</kbd>+<kbd>P</kbd> (Windows/Linux).
   > 2. Введите `details`.
   > 3. Щелкните **Codespaces: сведения**.

2. Наведите указатель мыши на боковую панель "Удаленный обозреватель" и щелкните <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="plus icon" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg>.

   ![Снимок экрана: боковая панель "Удаленный обозреватель" для GitHub Codespaces. Подсказка "Create New Codespace" отображается рядом с кнопкой знака плюса.](/assets/images/help/codespaces/create-codespace-vscode.png)

3. В текстовом поле введите имя репозитория, в который вы хотите разработать, а затем выберите его.

   ![Снимок экрана: "octo-org/he", введенный в текстовое поле, и список четырех репозиториев, начинающихся с этой строки.](/assets/images/help/codespaces/choose-repository-vscode.png)

   Сообщение отображается в правой части последующих запросов, сообщающих о том, кто будет платить за пространство кода.

   ![Снимок экрана: запрос на ветвь с сообщением "Использование, оплачиваемое концентратором".](/assets/images/help/codespaces/who-will-pay-vscode.png)

4. Щелкните ветвь, в которой нужно выполнить разработку.

5. Если появится запрос на выбор файла конфигурации контейнера разработки, выберите файл из списка.

6. Щелкните тип компьютера, в котором нужно выполнить разработку.

   > \[!NOTE]
   > Выбор доступных типов машин может быть ограничен рядом факторов. Они могут включать политику, настроенную для вашей организации, или минимальную спецификацию типа компьютера для репозитория. Дополнительные сведения см. в разделе \[AUTOTITLE и [Ограничение доступа к типам компьютеров](/ru/codespaces/managing-codespaces-for-your-organization/restricting-access-to-machine-types)]\(/codespaces/setting-up-your-project-for-codespaces/configuring-dev-containers/setting-a-minimum-specification-for-codespace-machines).

</div>

<div class="ghd-tool cli">

> \[!NOTE]
> Дополнительные сведения о GitHub CLIсм. в разделе [О GitHub CLI](/ru/github-cli/github-cli/about-github-cli).

Чтобы создать codespace, используйте подкоманду `gh codespace create`.

```shell
gh codespace create
```

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

Или же можно использовать флаги для указания некоторых или всех параметров:

```shell
gh codespace create -r OWNER/REPO -b BRANCH --devcontainer-path PATH -m MACHINE-TYPE
```

Замените в этом примере `owner/repo` идентификатором репозитория. Замените `branch` именем ветви или полным хэшем SHA фиксации, которую вы хотите сначала извлечь в codespace. Если флаг `-r` используется без флага `b`, codespace создается из ветви по умолчанию.

Замените `path` на путь к файлу конфигурации контейнера разработки, который планируется использовать для нового пространства кода. Если этот флаг пропущен, и доступно несколько файлов контейнера разработки, вам будет предложено выбрать один из списка. Дополнительные сведения о файле конфигурации контейнера разработки см. в разделе [Основные сведения о контейнерах разработки](/ru/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/introduction-to-dev-containers).

Замените `machine-type` допустимым идентификатором для доступного типа компьютера. Идентификаторы — это строки, такие как `basicLinux32gb` и `standardLinux32gb`. Тип доступных компьютеров зависит от репозитория, вашей личной учетной записи и расположения. При вводе недопустимого или недоступного типа компьютера, доступные типы отображаются в сообщении об ошибке. Если этот флаг пропущен, и доступно несколько типов компьютеров, вам будет предложено выбрать один из списка.

Подробные сведения о параметрах этой команды см. в [руководстве по GitHub CLI](https://cli.github.com/manual/gh_codespace_create).

</div>

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

* [Открытие существующего пространства кода](/ru/codespaces/developing-in-a-codespace/opening-an-existing-codespace)
* [Упрощение быстрого создания и возобновления пространства кода](/ru/codespaces/setting-up-your-project-for-codespaces/setting-up-your-repository/facilitating-quick-creation-and-resumption-of-codespaces)
* [Конечные точки REST API для организаций Codespaces](/ru/rest/codespaces/organizations)