Найти в Дзене
ChurcHehe HeheВики

GitHub Codespaces — это облачная среда разработки, позволяющая писать, запускать и отлаживать код прямо в браузере или через VS Code, без не

GitHub Codespaces — это **облачная среда разработки**, позволяющая писать, запускать и отлаживать код прямо в браузере или через VS Code, без необходимости локальных установок. Вот пошаговое руководство по использованию:

---

### 🔧 **1. Создание Codespace**

- **Из репозитория GitHub**:

Откройте нужный репозиторий → кнопка **`Code`** → вкладка **`Codespaces`** → **`Create codespace`**. Пространство создастся на текущей ветке .

- **Из шаблона**:

На странице [github.com/codespaces](https://github.com/codespaces) выберите **`Use this template`** → настройте окружение .

- **Для Pull Request**:

Откройте PR → вкладка **`Code`** → **`Codespaces`** → создайте пространство для проверки изменений .

---

### 🌐 **2. Подключение к Codespace**

- **В браузере**: Пространство откроется автоматически после создания. Интерфейс — VS Code в облаке .

- **Через VS Code**:

1. Установите расширение **GitHub Codespaces** из Marketplace .

2. Войдите в GitHub через расширение.

3. В **Remote Explorer** выберите нужное пространство → нажмите иконку подключения .

---

### ⚙️ **3. Настройка окружения**

Codespaces использует **контейнеры разработки (devcontainers)**. Чтобы кастомизировать среду:

1. Добавьте в репозиторий файл `.devcontainer/devcontainer.json`.

2. Укажите в нём:

- **Образ Docker** (например, `"image": "mcr.microsoft.com/devcontainers/python:3.10"`).

- **Расширения VS Code** (например, `"extensions": ["ms-python.python"]`).

- **Порты** для доступа к приложению (например, `"forwardPorts": [8000]`) .

```json

{

"name": "Python Project",

"image": "mcr.microsoft.com/devcontainers/python:3.10",

"forwardPorts": [8000],

"postCreateCommand": "pip install -r requirements.txt",

"customizations": {

"vscode": {

"extensions": ["ms-python.python", "esbenp.prettier-vscode"]

}

}

}

```

При создании Codespace конфигурация применится автоматически .

---

### 🚀 **4. Работа в Codespace**

- **Терминал**: Встроенный терминал поддерживает все Linux-команды (например, `npm start`).

- **Запуск приложений**:

Сервер на порту 8000? Codespaces перенаправит его и предоставит **публичный URL** во вкладке **`Ports`** .

- **Сохранение данных**:

Все файлы сохраняются автоматически. Даже при остановке пространства данные не удаляются .

---

### 💡 **5. Управление ресурсами**

- **Выбор машины**:

В VS Code: **Command Palette** → **`Codespaces: Change Machine Type`** → укажите конфигурацию (от 2 до 32 ядер) .

- **Остановка**:

Закройте вкладку браузера или в VS Code выполните: **Command Palette** → **`Codespaces: Stop`**.

- **Удаление**:

В [github.com/codespaces](https://github.com/codespaces) нажмите **`...`** → **`Delete`** .

---

### ⚠️ **6. Важные ограничения**

- **Стоимость**:

- Бесплатно: **60 часов/мес** на машине с 2 ядрами .

- Дальше: **$0.18/час** за 2 ядра. Полный прайс — в [документации](https://docs.github.com/ru/codespaces/overview#billing-for-codespaces) .

- **Таймаут**:

При бездействии Codespace останавливается через **30 минут** (настраивается) .

- **Доступ к портам**:

Только явно указанные в `devcontainer.json` порты открыты для внешнего доступа .

---

### 🛠 **7. Пример: запуск Python-проекта**

1. Создайте Codespace для репозитория с файлом `devcontainer.json` (пример выше).

2. В терминале выполните:

```bash

uvicorn main:app --reload # запуск FastAPI

```

3. Во вкладке **`Ports`** найдите URL для порта **8000** → откройте его в браузере .

---

### 💎 **Итог: когда использовать?**

- ✅ **Нет мощного ПК/ноутбука** (работа на планшете или слабом устройстве).

- ✅ **Быстрый старт** без установки Python/Node.js/Docker.

- ✅ **Командная разработка** с идентичным окружением у всех.

- ❌ **Офлайн-работа** или проекты с гигабайтами данных.

> ⚡ **Совет**: Для образования (GitHub Classroom) Codespaces предоставляет **бесплатные 180 часов/мес** .

Начните с [официального Quickstart](https://docs.github.com/ru/codespaces/quickstart) или шаблона [FastAPI + Postgres](https://github.com/Azure-Samples/msdocs-fastapi-postgres-codespace) .