Перейти к содержанию

Проблемы проектов


Описание структур JSON-объектов

Проблема
Поле Тип Описание
id String Уникальный UUID проблемы
localId String Локальный ID проблемы
description String Описание проблемы
title String Название проблемы
status Set(Status) Статус проблемы
assigneUsers Set(User) Список ответственных пользователей
labels Set(Label) Список лейблов проблемы
projectAlias String Псевдоним проекта
userAlias String Псевдоним владельца проекта
updatedAt LocalDateTime Время последнего обновления проблемы
createdAt LocalDateTime Время создания проблемы
updatedBy User Информация о последнем пользователе, обновившем проблему

Статус проблемы
Поле Тип Описание
id String UUID статуса
title String Название статуса
hash String Хэш статуса
alias String Псевдоним статуса
ownerAlias String Псевдоним владельца статуса
color String Название цвета статуса
hexColor String Код цвета
icon String Иконка проблемы
isDeleted Boolean Удален ли статус

Лейбл
Поле Тип Описание
id String UUID лейбла
hexColor String Код цвета лейбла
title String Название лейбла
description String Описание лейбла
isTextLight Boolean Определяет цвет названия лейбла. true обозначает белый цвет, false обозначает черный цвет

Пользователь
Поле Тип Описание
id String Уникальный UUID пользователя
username String Псевдоним пользователя
name String Имя пользователя
surname String Фамилия пользователя
fullName String Полное имя пользователя
avatar String Ссылка на аватар пользователя
cover String Ссылка на фон пользователя

Связь с проблемой
Поле Тип Описание
targetIssueUuid String UUID связанной проблемы
targetIssueName String Название связанной проблемы
targetProjectAlias String Псевдоним проекта, в котором расположена связанная проблема
targetOwnerAlias String Псевдоним владельца проекта, в котором расположена связанная проблема
targetIssueLocalId Long Локальный ID связанной проблемы
issueRelationType String Тип связи. Возможные варианты представлены в таблице

Тип связи Значение
HIERARCHY_FORWARD Дочерняя для проблемы
HIERARCHY_REVERSE Родительская для проблемы
AFFECTS_REVERSE Влияет на проблему
AFFECTS_FORWARD Затронута в проблеме
DUPLICATE_FORWARD Дубликат от проблемы
DUPLICATE_REVERSE Дублируется в проблеме
SHARED_PARAMETER_REFERENCED_BY_FORWARD Ссылка от проблемы
SHARED_PARAMETER_REFERENCED_BY_REVERSE Ссылается на проблему
RELATED Связана с проблемой
DEPENDENCY_FORWARD Преемник для проблемы
DEPENDENCY_REVERSE Предшественник для проблемы
TESTED_BY_FORWARD Тестируется в проблеме
TESTED_BY_REVERSE Тестирует проблему
SHARED_STEP_REFERENCED_BY_FORWARD Тестовый случай для проблемы
SHARED_STEP_REFERENCED_BY_REVERSE Общие шаги для проблемы

Файл
Поле Тип Описание
uploadFileUuid String UUID файла
filePath String Относительный путь, по которому сохранен файл на файловой системе
webFilePath String Относительный путь, по которому файл доступен для скачивания
fileName String Название файла
fileSize String Размер файла
uploadDate LocalDate Дата загрузки файла

Методы для проблем

Ознакомиться с функционалом проблем можно здесь

Получение проблемы

GET /project/{ownerAlias}/{projectAlias}/issue/{localId}

Запрос возвращает проблему проекта по ее локальному номеру.

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта, проблема которого будет возвращена
projectAlias String Псевдоним проекта, проблема которого будет возвращена
localId Long Локальный ID проблемы, которая будет возвращена

Responses

STATUS 200 - Проблема успешно возвращена.

Пример ответа
    
{
    "id": "522d58b6-aaaa-aaaa-aaaa-a3ccba39032b",
    "localId": 19,
    "description": "Пример описания",
    "title": "Пример названия",
    "status": {
        "id": "COMPLETED",
        "title": "Завершена",
        "hash": null,
        "alias": null,
        "ownerAlias": null,
        "color": "success",
        "hexColor": "28A745",
        "icon": null,
        "isDeleted": false
    },
    "assignedUsers": [
        {
            "id": "8473a25a-aaaa-aaaa-aaaa-3e5c9e0a4b51",
            "username": "USER",
            "name": "user",
            "surname": "name",
            "fullName": "user name",
            "avatar": "https://gitflic.ru/upload/img/6da34d10-aaaa-aaaa-aaaa-19b7e2151276.jpg",
            "cover": "/upload/img/3b7780f1-aaaa-aaaa-aaaa-97e55d7bbdbb.jpg"
        }
    ],
    "labels": [
        {
            "id": "c3e20e76-aaaa-aaaa-aaaa-0846de71cfc3",
            "hexColor": "F58A07",
            "title": "ошибка",
            "description": "Ошибка в новой фиче",
            "isTextLight": false
        }
    ],
    "projectAlias": "test_project",
    "userAlias": "USER",
    "updatedAt": "14 минут назад",
    "createdAt": "1 месяц назад",
    "updatedBy": {
        "id": "8473a25a-aaaa-aaaa-aaaa-3e5c9e0a4b51",
        "username": "USER",
        "name": "user",
        "surname": "name",
        "fullName": "user name",
        "avatar": "https://gitflic.ru/upload/img/6da34d10-aaaa-aaaa-aaaa-19b7e2151276.jpg",
        "cover": "/upload/img/3b7780f1-aaaa-aaaa-aaaa-97e55d7bbdbb.jpg"
    }
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Получение списка проблем

GET /project/{ownerAlias}/{projectAlias}/issue

Запрос возвращает список проблем проекта, есть возможность настройки количества отображаемых объектов на странице

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта, список проблем которого будет возвращен
projectAlias String Псевдоним проекта, список проблем которого будет возвращен

Responses

STATUS 200 Список проблем успешно возвращен.

Пример ответа
    
{
    "_embedded": {
        "issueModelList": [
            {
                "id": "522d58b6-aaaa-aaaa-aaaa-a3ccba39032b",
                "localId": 19,
                "description": "Пример описания",
                "title": "Пример названия",
                "status": {
                    "id": "COMPLETED",
                    "title": "Завершена",
                    "hash": null,
                    "alias": null,
                    "ownerAlias": null,
                    "color": "success",
                    "hexColor": "28A745",
                    "icon": null,
                    "isDeleted": false
                },
                "assignedUsers": [
                    {
                        "id": "8473a25a-aaaa-aaaa-aaaa-3e5c9e0a4b51",
                        "username": "USER",
                        "name": "user",
                        "surname": "name",
                        "fullName": "user name",
                        "avatar": "https://gitflic.ru/upload/img/6da34d10-aaaa-aaaa-aaaa-19b7e2151276.jpg",
                        "cover": "/upload/img/3b7780f1-aaaa-aaaa-aaaa-97e55d7bbdbb.jpg"
                    }
                ],
                "labels": [
                    {
                        "id": "c3e20e76-aaaa-aaaa-aaaa-0846de71cfc3",
                        "hexColor": "F58A07",
                        "title": "ошибка",
                        "description": "Ошибка в новой фиче",
                        "isTextLight": false
                    }
                ],
                "projectAlias": "test_project",
                "userAlias": "USER",
                "updatedAt": "14 минут назад",
                "createdAt": "1 месяц назад",
                "updatedBy": {
                    "id": "8473a25a-aaaa-aaaa-aaaa-3e5c9e0a4b51",
                    "username": "USER",
                    "name": "user",
                    "surname": "name",
                    "fullName": "user name",
                    "avatar": "https://gitflic.ru/upload/img/6da34d10-aaaa-aaaa-aaaa-19b7e2151276.jpg",
                    "cover": "/upload/img/3b7780f1-aaaa-aaaa-aaaa-97e55d7bbdbb.jpg"
                }
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Создание проблемы

POST /project/{ownerAlias}/{projectAlias}/issue

Запрос создает проблему по параметрам и возвращает ее

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта, в котором будет создана проблема
projectAlias String Псевдоним проекта, в котором будет создана проблема

Request

Поддерживаемый формат JSON

Структура тела POST-запроса:

Параметр Тип Описание
title String Название проблемы (обязательный параметр)
description String Описание проблемы (обязательный параметр)
status IssueStatus Статус проблемы. Принимает список параметров id, которые могут иметь следующие значения: OPEN, IN_PROGRESS, CLOSED или COMPLETED
assignedUsers Set(User) Список пользователей, которые являются ответственными. Принимает список параметров id
labels Set(Label) Список лейблов. Принимает список параметров id

Пример JSON объекта

{
    "title": "Пример названия",
    "description": "Пример описания",
    "assignedUsers": [
        {
            "id": "fe9e9812-aaaa-aaaa-aaaa-63cd21e53210"
        }
    ],
    "labels": [
        {
            "id": "c3e20e76-aaaa-aaaa-aaaa-0846de71cfc3"
        }
    ],
    "status":
        {
           "id": "OPEN"
        }
}

Responses

STATUS 200 Проблема успешно создана.

Пример ответа
    
{
    "id": "522d58b6-aaaa-aaaa-aaaa-a3ccba39032b",
    "localId": 19,
    "description": "Пример описания",
    "title": "Пример названия",
    "status": {
        "id": "OPEN",
        "title": "Новая",
        "hash": null,
        "alias": null,
        "ownerAlias": null,
        "color": "info",
        "hexColor": "17A2B8",
        "icon": null,
        "isDeleted": false
    },
    "assignedUsers": [
        {
            "id": "fe9e9812-aaaa-aaaa-aaaa-63cd21e53210",
            "username": "USER",
            "name": "user",
            "surname": "name",
            "fullName": "user name",
            "avatar": "https://gitflic.ru/upload/img/6da34d10-aaaa-aaaa-aaaa-19b7e2151276.jpg",
            "cover": "/upload/img/3b7780f1-aaaa-aaaa-aaaa-97e55d7bbdbb.jpg"
        }
    ],
    "labels": [
        {
            "id": "c3e20e76-aaaa-aaaa-aaaa-0846de71cfc3",
            "hexColor": "F58A07",
            "title": "ошибка",
            "description": "Ошибка в новой фиче",
            "isTextLight": false
        }
    ],
    "projectAlias": "test_project",
    "userAlias": "USER",
    "updatedAt": "14 минут назад",
    "createdAt": "1 месяц назад",
    "updatedBy": {
        "id": "8473a25a-aaaa-aaaa-aaaa-3e5c9e0a4b51",
        "username": "USER",
        "name": "user",
        "surname": "name",
        "fullName": "user name",
        "avatar": "https://gitflic.ru/upload/img/6da34d10-aaaa-aaaa-aaaa-19b7e2151276.jpg",
        "cover": "/upload/img/3b7780f1-aaaa-aaaa-aaaa-97e55d7bbdbb.jpg"
    }
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Редактирование проблемы

PUT /project/{ownerAlias}/{projectAlias}/issue/{localId}/edit

Запрос редактирует проблему проекта по параметрам и возвращает ее

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта, в котором находится проблема
projectAlias String Псевдоним проекта, в котором находится проблема
localId Long Локальный ID проблемы, которая будет изменена

Request

Поддерживаемый формат JSON

Структура тела PUT-запроса:

Параметр Тип Описание
title String Название проблемы (обязательный параметр)
description String Описание проблемы (обязательный параметр)
status IssueStatus Статус проблемы. Принимает список параметров id, которые могут иметь следующие значения: OPEN, IN_PROGRESS, CLOSED или COMPLETED
assignedUsers Set(User) Список пользователей, которые являются ответственными. Принимает список параметров id
labels Set(Label) Список лейблов. Принимает список параметров id

Пример JSON объекта

{
    "title": "Пример названия",
    "description": "Пример описания",
    "assignedUsers": [
        {
            "id": "fe9e9812-aaaa-aaaa-aaaa-63cd21e53210"
        }
    ],
    "labels": [
        {
            "id": "c3e20e76-aaaa-aaaa-aaaa-0846de71cfc3"
        }
    ],
    "status":
        {
           "id": "OPEN"
        }
}

Responses

STATUS 200 Проблема успешно изменена.

Пример ответа
    
{
    "id": "522d58b6-aaaa-aaaa-aaaa-a3ccba39032b",
    "localId": 19,
    "description": "Пример описания",
    "title": "Пример названия",
    "status": {
        "id": "OPEN",
        "title": "Новая",
        "hash": null,
        "alias": null,
        "ownerAlias": null,
        "color": "info",
        "hexColor": "17A2B8",
        "icon": null,
        "isDeleted": false
    },
    "assignedUsers": [
        {
            "id": "fe9e9812-aaaa-aaaa-aaaa-63cd21e53210",
            "username": "USER",
            "name": "user",
            "surname": "name",
            "fullName": "user name",
            "avatar": "https://gitflic.ru/upload/img/6da34d10-aaaa-aaaa-aaaa-19b7e2151276.jpg",
            "cover": "/upload/img/3b7780f1-aaaa-aaaa-aaaa-97e55d7bbdbb.jpg"
        }
    ],
    "labels": [
        {
            "id": "c3e20e76-aaaa-aaaa-aaaa-0846de71cfc3",
            "hexColor": "F58A07",
            "title": "ошибка",
            "description": "Ошибка в новой фиче",
            "isTextLight": false
        }
    ],
    "projectAlias": "test_project",
    "userAlias": "USER",
    "updatedAt": "14 минут назад",
    "createdAt": "1 месяц назад",
    "updatedBy": {
        "id": "8473a25a-aaaa-aaaa-aaaa-3e5c9e0a4b51",
        "username": "USER",
        "name": "user",
        "surname": "name",
        "fullName": "user name",
        "avatar": "https://gitflic.ru/upload/img/6da34d10-aaaa-aaaa-aaaa-19b7e2151276.jpg",
        "cover": "/upload/img/3b7780f1-aaaa-aaaa-aaaa-97e55d7bbdbb.jpg"
    }
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Удаление проблемы

DELETE /project/{ownerAlias}/{projectAlias}/issue/{localId}/delete

Запрос удаляет проблему

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта, в котором находится проблема
projectAlias String Псевдоним проекта, в котором находится проблема
localId Long Локальный ID проблемы, которая будет удалена

Responses

STATUS 200 - Успешное удаление проблемы.

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Методы для связей проблем

Ознакомиться с функционалом связи проблем можно здесь

Получение списка связей проблемы

GET /project/{ownerAlias}/{projectAlias}/issue/{localId}/issue-relations

Запрос возвращает список связей проблемы, есть возможность настройки количества отображаемых объектов на странице

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта, в котором находится проблема
projectAlias String Псевдоним проекта, в котором находится проблема
localId Long Локальный ID проблемы, список связей которой будет возвращен

Responses

STATUS 200 Список связей проблемы успешно возвращен.

Пример ответа
    
{
    "_embedded": {
        "restIssueRelationModelList": [
            {
                "targetIssueUuid": "8c453327-aaaa-aaaa-aaaa-dc66326d71c9",
                "targetIssueName": "Ошибка в работе API запроса",
                "targetProjectAlias": "company-project-1",
                "targetOwnerAlias": "company-name",
                "targetIssueLocalId": 14,
                "issueRelationType": "SHARED_PARAMETER_REFERENCED_BY_REVERSE"
            },
            {
                "targetIssueUuid": "446b0df8-aaaa-aaaa-aaaa-140ffd68df7e",
                "targetIssueName": "Не корректная верстка",
                "targetProjectAlias": "company-project-2",
                "targetOwnerAlias": "company-name",
                "targetIssueLocalId": 22,
                "issueRelationType": "AFFECTS_FORWARD"
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.

Создание связи между проблемами

POST /project/{ownerAlias}/{projectAlias}/issue/{localId}/create-issue-relation

Запрос создает связь между проблемами и возвращает ее.

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта, в котором находится проблема
projectAlias String Псевдоним проекта, в котором находится проблема
localId Long Локальный ID проблемы, для которой будет создана связь

Request

Поддерживаемый формат JSON

Структура тела POST-запроса:

Параметр Тип Описание
targetIssueUuid String UUID проблемы, с которой будет создана связи
relationType String Тип, с которой связь будет создана
Возможные значения поля relationType
Тип связи Значение
HIERARCHY_FORWARD Дочерняя для проблемы
HIERARCHY_REVERSE Родительская для проблемы
AFFECTS_REVERSE Влияет на проблему
AFFECTS_FORWARD Затронута в проблеме
DUPLICATE_FORWARD Дубликат от проблемы
DUPLICATE_REVERSE Дублируется в проблеме
SHARED_PARAMETER_REFERENCED_BY_FORWARD Ссылка от проблемы
SHARED_PARAMETER_REFERENCED_BY_REVERSE Ссылается на проблему
RELATED Связана с проблемой
DEPENDENCY_FORWARD Преемник для проблемы
DEPENDENCY_REVERSE Предшественник для проблемы
TESTED_BY_FORWARD Тестируется в проблеме
TESTED_BY_REVERSE Тестирует проблему
SHARED_STEP_REFERENCED_BY_FORWARD Тестовый случай для проблемы
SHARED_STEP_REFERENCED_BY_REVERSE Общие шаги для проблемы

Пример JSON объекта

{
    "targetIssueUuid": "446b0df8-aaaa-aaaa-aaaa-140ffd68df7e",
    "relationType": "AFFECTS_FORWARD"
}

Responses

STATUS 200 - Связь между проблемами успешно создана и возвращена.

Пример ответа
    
{
    "targetIssueUuid": "446b0df8-aaaa-aaaa-aaaa-140ffd68df7e",
    "targetIssueName": "Не корректная верстка",
    "targetProjectAlias": "company-project-2",
    "targetOwnerAlias": "company-name",
    "targetIssueLocalId": 22,
    "issueRelationType": "AFFECTS_FORWARD"
}
    
  

STATUS 400 - Невозможно создать связь с проблемой, указанной в поле targetIssueUuid

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.

STATUS 409 - Ошибка создания связи, так как между указанными проблемами уже есть связь.


Удаление связи между проблемами

DELETE /project/{ownerAlias}/{projectAlias}/issue/{localId}/delete-issue-relation?targetIssueUuid={relationUuid}

Запрос удаляет связь между проблемами.

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта, в котором находится проблема
projectAlias String Псевдоним проекта, в котором находится проблема
localId Long Локальный ID проблемы, связь в которой будет удалена
relationUuid String UUID связи для удаления

Responses

STATUS 200 - Успешное удаление связи.

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Методы для прикрепленных файлов

Ознакомиться с функционалом прикрепления файлов к проблемам можно здесь

Получение списка прикрепленных к проблеме файлов

GET /project/{ownerAlias}/{projectAlias}/issue/{localId}/files

Запрос возвращает список файлов, прикрепленных к проблеме, есть возможность настройки количества отображаемых объектов на странице

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта, в котором находится проблема
projectAlias String Псевдоним проекта, в котором находится проблема
localId Long Локальный ID проблемы, список файлов которой будет возвращен

Responses

STATUS 200 - Список прикрепленных к проблеме файлов успешно возвращен.

Пример ответа
    
{
    "_embedded": {
        "restProjectUploadFileModelList": [
            {
                "uploadFileUuid": "8be8f27c-aaaa-aaaa-aaaa-1024dd2f5d80",
                "filePath": "project/1b/1b7f0fca-aaaa-aaaa-aaaa-140978fab4e2/attachment/45b0f1a4-aaaa-aaaa-aaaa-86a0c3ae8e3d/gitflic.jar",
                "webFilePath": "/upload/-/project/1b7f0fca-aaaa-aaaa-aaaa-140978fab4e2/attachment/45b0f1a4-aaaa-aaaa-aaaa-86a0c3ae8e3d/gitflic.jar",
                "fileName": "gitflic.jar",
                "fileSize": "400MB",
                "uploadDate": "2025-01-01T12:00:00.000000"
            },
            {
                "uploadFileUuid": "0cfc3414-aaaa-aaaa-aaaa-03faa70b5639",
                "filePath": "project/1b/1b7f0fca-aaaa-aaaa-aaaa-140978fab4e2/attachment/8a216b75-aaaa-aaaa-aaaa-dfb573a770d3/error.log",
                "webFilePath": "/upload/-/project/1b7f0fca-aaaa-aaaa-aaaa-140978fab4e2/attachment/8a216b75-aaaa-aaaa-aaaa-dfb573a770d3/error.log",
                "fileName": "error.log",
                "fileSize": "150KB",
                "uploadDate": "2025-01-01T12:00:00.000000"
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.


Прикрепление файла к проблеме

POST /project/{ownerAlias}/{projectAlias}/issue/{localId}/link-file?uploadFileUuid={fileUuid}

Запрос прикрепляет файл к проблеме и возвращает его. Указанный файл не должен быть прикреплен к любой проблеме, но должен быть загружен в проект. Для загрузки файла в проект доступен отдельный метод

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта, в котором находится проблема
projectAlias String Псевдоним проекта, в котором находится проблема
localId Long Локальный ID проблемы, к которой будет прикреплен файл
fileUuid String UUID файла, который будет прикреплен к проблеме

Responses

STATUS 200 - Файл успешно прикреплен к проблеме и возвращен.

Пример ответа
    
{
    "uploadFileUuid": "0cfc3414-aaaa-aaaa-aaaa-03faa70b5639",
    "filePath": "project/1b/1b7f0fca-aaaa-aaaa-aaaa-140978fab4e2/attachment/8a216b75-aaaa-aaaa-aaaa-dfb573a770d3/error.log",
    "webFilePath": "/upload/-/project/1b7f0fca-aaaa-aaaa-aaaa-140978fab4e2/attachment/8a216b75-aaaa-aaaa-aaaa-dfb573a770d3/error.log",
    "fileName": "error.log",
    "fileSize": "150KB",
    "uploadDate": "2025-01-01T12:00:00.000000"
}
    
  

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.

STATUS 409 - Указанный файл уже прикреплен к проблеме.

Удаление связи между файлом и проблемой

DELETE /project/{ownerAlias}/{projectAlias}/issue/{localId}/delete-file-relation?uploadFileUuid={fileUuid}

Запрос удаляет связь между файлом и проблемой, а так же удаляет сам файл.

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта, в котором находится проблема
projectAlias String Псевдоним проекта, в котором находится проблема
localId Long Локальный ID проблемы, от которой будет откреплен файл
fileUuid String UUID файла, связь с которым будет удалена

Responses

STATUS 200 - Успешное удаление файла между файлом и проблемой.

STATUS 403 - Нет прав для доступа.

STATUS 404 - Данные по запросу не найдены.