Перейти до основного вмісту

Playzones API

Керування Playzone — підключеними GitHub-репозиторіями, що надають вихідний код для ваших середовищ.

Ендпоінти

МетодШляхСкоупОпис
GET/api/playzonesplayzones:readСписок всіх Playzone
GET/api/playzones/with_docker_composeplayzones:readPlayzone з виявленим Compose-файлом
GET/api/playzones/:idplayzones:readОтримати один Playzone
POST/api/playzonesplayzones:writeСтворити новий Playzone
POST/api/playzones/attachplayzones:writeПідключити репозиторій через GitHub App
PATCH/api/playzones/:idplayzones:writeОновити Playzone
DELETE/api/playzones/:idplayzones:deleteВидалити Playzone
POST/api/playzones/:id/syncplayzones:writeЗапустити синхронізацію (оновити гілки та Compose-файл)
GET/api/playzones/:id/branchesplayzones:readСписок гілок
GET/api/playzones/:id/env_defaultsplayzones:readОтримати змінні за замовчуванням з .env.example

Список Playzone

GET /api/playzones

Відповідь:

[
{
"id": 1,
"name": "my-app",
"github_url": "https://github.com/org/my-app",
"private": false,
"default_branch": "main",
"status": "active",
"last_synced_at": "2025-01-20T14:00:00Z",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-20T14:00:00Z"
}
]

Підключити через GitHub App

POST /api/playzones/attach

Підключає репозиторій, виявлений через інтеграцію GitHub App. Якщо Playzone вже існує, він ділиться з гравцем, що запитує.

Тіло запиту:

{
"repo_full_name": "org/my-app"
}

Створити Playzone

POST /api/playzones

Тіло запиту:

{
"playzone": {
"name": "my-app",
"github_url": "https://github.com/org/my-app",
"default_branch": "main",
"private": true,
"credentials": "ghp_your_personal_access_token"
}
}
Приватні репозиторії

Приватні репозиторії вимагають або Personal Access Token у полі credentials, або активну інсталяцію GitHub App.


Список гілок

GET /api/playzones/:id/branches?query=feat&limit=20

Параметри:

ПараметрТипЗа замовчуваннямОпис
querystringФільтр гілок за назвою (нечутливий до регістру підрядок)
limitinteger20Максимальна кількість гілок (максимум: 50)

Відповідь:

{
"branches": [
{ "name": "main", "default": true },
{ "name": "feature/auth", "default": false },
{ "name": "feature/api", "default": false }
]
}

Отримати змінні за замовчуванням

GET /api/playzones/:id/env_defaults?branch=main&env_file_path=.env.example

Повертає розпарсені пари ключ-значення з файлу .env.example на вказаній гілці.

Параметри:

ПараметрТипОбовʼязковийОпис
branchstringТакГілка для зчитування env-файлу
env_file_pathstringНіНестандартний шлях до env-файлу (за замовчуванням: .env.example)

Відповідь:

{
"defaults": {
"DATABASE_URL": "postgres://localhost/dev",
"RAILS_ENV": "development",
"SECRET_KEY_BASE": "$$secret(64)"
},
"sensitive_keys": ["SECRET_KEY_BASE", "DATABASE_URL"]
}

Синхронізувати Playzone

POST /api/playzones/:id/sync

Запускає асинхронну синхронізацію — оновлює індекс гілок та Docker Compose файл з GitHub.

{
"message": "Sync scheduled"
}