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) .