Жобалар эндпоинттері
Барлық жоба эндпоинттері /projects астында.
Жоба жасау
POST /projects/Аутентификация: Қажет
Сұраныс денесі:
{
"name": "My App",
"description": "My awesome application",
"is_public": true
}| Өріс | Түрі | Міндетті | Сипаттама |
|---|---|---|---|
name | string | Иә | Жоба атауы |
description | string | Жоқ | Жоба сипаттамасы |
is_public | boolean | Жоқ | Ашық немесе жабық (әдепкі: false) |
INFO
slug әрқашан жоба атауынан автоматты генерацияланады және сұраныс денесінде көрсету мүмкін емес.
Жауап 201:
{
"id": "uuid",
"name": "My App",
"slug": "my-app",
"description": "My awesome application",
"is_public": true,
"owner_id": "user-uuid",
"created_at": "2024-01-01T00:00:00.000Z"
}Жобалар тізімі
GET /projects/Аутентификация: Қажет
Пайдаланушы мүше болып табылатын барлық жобаларды қайтарады.
Жобаны алу
GET /projects/:slugАутентификация: Қажет
Жобаны жаңарту
PATCH /projects/:slugАутентификация: Қажет (owner немесе admin)
Сұраныс денесі (барлығы қосымша):
{
"name": "Updated Name",
"description": "Updated description",
"is_public": false
}Жобаны жою
DELETE /projects/:slugАутентификация: Қажет (тек owner)
Жобаға қосылу
Ашық жобаға қосылу.
POST /projects/:slug/joinАутентификация: Қажет
INFO
Тек ашық жобалар үшін жұмыс істейді. Жабық жобалар үшін шақыруларды пайдаланыңыз.
Жобадан шығу
DELETE /projects/:slug/leaveАутентификация: Қажет
WARNING
Жоба иесі шыға алмайды. Алдымен иелікті беріңіз.
Мүшелер тізімі
GET /projects/:slug/membersАутентификация: Қажет (жоба мүшесі)
Жауап 200:
[
{
"id": "member-uuid",
"user_id": "user-uuid",
"role": "owner",
"user": {
"id": "user-uuid",
"email": "owner@example.com",
"display_name": "Project Owner"
},
"permissions": [],
"created_at": "2024-01-01T00:00:00.000Z"
}
]Мүше қосу
POST /projects/:slug/membersАутентификация: Қажет (owner немесе admin)
Сұраныс денесі:
{
"email": "user@example.com",
"role": "member",
"permissions": ["can_deploy"]
}| Өріс | Түрі | Міндетті | Сипаттама |
|---|---|---|---|
email | string | Иә | Қосылатын пайдаланушының email-і |
role | "admin" | "member" | Жоқ | Рөл (әдепкі: member) |
permissions | string[] | Жоқ | Рұқсат кілттерінің массиві |
Мүшені жаңарту
PATCH /projects/:slug/members/:memberIdАутентификация: Қажет (owner немесе admin)
Сұраныс денесі:
{
"role": "admin",
"permissions": ["can_deploy", "can_edit"]
}INFO
Рұқсаттар UUID-лар емес, жол кілттерін пайдаланады (мысалы, "can_deploy", "editor").
Мүшені алып тастау
DELETE /projects/:slug/members/:memberIdАутентификация: Қажет (owner немесе admin)
Иелікті беру
POST /projects/:slug/transfer-ownershipАутентификация: Қажет (тек owner)
Сұраныс денесі:
{
"new_owner_id": "new-owner-uuid"
}Ағымдағы иесі беруден кейін admin болады.
Рұқсаттар
Рұқсаттар тізімі
GET /projects/:slug/permissionsРұқсат жасау
POST /projects/:slug/permissionsСұраныс денесі:
{
"key": "can_deploy",
"display_name": "Can Deploy",
"description": "Allow deployment to production",
"is_default": false
}| Өріс | Түрі | Міндетті | Сипаттама |
|---|---|---|---|
key | string | Иә | Бірегей рұқсат идентификаторы |
display_name | string | Иә | Адамға оқылатын атау |
description | string | Жоқ | Рұқсат сипаттамасы |
is_default | boolean | Жоқ | Жаңа мүшелерге әдепкі бойынша тағайындалсын ба (әдепкі: false) |
Рұқсатты жаңарту
PATCH /projects/:slug/permissions/:permissionIdРұқсатты жою
DELETE /projects/:slug/permissions/:permissionIdЖоба OAuth клиенттері
Клиент жасау
POST /projects/:slug/clientsСұраныс денесі:
{
"name": "My App OAuth Client",
"redirect_uri": "https://myapp.com/callback"
}Клиенттер тізімі
GET /projects/:slug/clientsЖоба шақырулары
Шақырулар тізімі
GET /projects/:slug/invitesШақыру жасау
POST /projects/:slug/invitesСұраныс денесі:
{
"email": "user@example.com",
"role": "member",
"redirect_url": "https://myapp.com/welcome"
}| Өріс | Түрі | Міндетті | Сипаттама |
|---|---|---|---|
email | string | Иә | Шақырылатын пайдаланушының email-і |
role | "admin" | "member" | Жоқ | Рөл (әдепкі: member) |
redirect_url | string | Жоқ | Қабылдағаннан кейін бағыттау URL-і |
INFO
Шақырулардың мерзімі 7 күннен кейін аяқталады.
Шақыруды болдырмау
DELETE /projects/:slug/invites/:inviteId