Skip to content
API beta кезеңінде және алдын ала ескертусіз өзгеруі мүмкін.

Жобалар эндпоинттері

Барлық жоба эндпоинттері /projects астында.

Жоба жасау

POST /projects/

Аутентификация: Қажет

Сұраныс денесі:

json
{
  "name": "My App",
  "description": "My awesome application",
  "is_public": true
}
ӨрісТүріМіндеттіСипаттама
namestringИәЖоба атауы
descriptionstringЖоқЖоба сипаттамасы
is_publicbooleanЖоқАшық немесе жабық (әдепкі: false)

INFO

slug әрқашан жоба атауынан автоматты генерацияланады және сұраныс денесінде көрсету мүмкін емес.

Жауап 201:

json
{
  "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)

Сұраныс денесі (барлығы қосымша):

json
{
  "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:

json
[
  {
    "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)

Сұраныс денесі:

json
{
  "email": "user@example.com",
  "role": "member",
  "permissions": ["can_deploy"]
}
ӨрісТүріМіндеттіСипаттама
emailstringИәҚосылатын пайдаланушының email-і
role"admin" | "member"ЖоқРөл (әдепкі: member)
permissionsstring[]ЖоқРұқсат кілттерінің массиві

Мүшені жаңарту

PATCH /projects/:slug/members/:memberId

Аутентификация: Қажет (owner немесе admin)

Сұраныс денесі:

json
{
  "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)

Сұраныс денесі:

json
{
  "new_owner_id": "new-owner-uuid"
}

Ағымдағы иесі беруден кейін admin болады.


Рұқсаттар

Рұқсаттар тізімі

GET /projects/:slug/permissions

Рұқсат жасау

POST /projects/:slug/permissions

Сұраныс денесі:

json
{
  "key": "can_deploy",
  "display_name": "Can Deploy",
  "description": "Allow deployment to production",
  "is_default": false
}
ӨрісТүріМіндеттіСипаттама
keystringИәБірегей рұқсат идентификаторы
display_namestringИәАдамға оқылатын атау
descriptionstringЖоқРұқсат сипаттамасы
is_defaultbooleanЖоқЖаңа мүшелерге әдепкі бойынша тағайындалсын ба (әдепкі: false)

Рұқсатты жаңарту

PATCH /projects/:slug/permissions/:permissionId

Рұқсатты жою

DELETE /projects/:slug/permissions/:permissionId

Жоба OAuth клиенттері

Клиент жасау

POST /projects/:slug/clients

Сұраныс денесі:

json
{
  "name": "My App OAuth Client",
  "redirect_uri": "https://myapp.com/callback"
}

Клиенттер тізімі

GET /projects/:slug/clients

Жоба шақырулары

Шақырулар тізімі

GET /projects/:slug/invites

Шақыру жасау

POST /projects/:slug/invites

Сұраныс денесі:

json
{
  "email": "user@example.com",
  "role": "member",
  "redirect_url": "https://myapp.com/welcome"
}
ӨрісТүріМіндеттіСипаттама
emailstringИәШақырылатын пайдаланушының email-і
role"admin" | "member"ЖоқРөл (әдепкі: member)
redirect_urlstringЖоқҚабылдағаннан кейін бағыттау URL-і

INFO

Шақырулардың мерзімі 7 күннен кейін аяқталады.

Шақыруды болдырмау

DELETE /projects/:slug/invites/:inviteId

HitKey Service License.