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

Запросы на слияние


Описание структуры JSON-объекта, описывающего запрос на слияние

Поле Тип Описание
id String Уникальный ID запроса на слияние
localId Long Локальный ID запроса на слияние
description String Описание запроса на слияние
title String Название запроса на слияние
removeSourceBranch Boolean Удалить исходную ветку, после того как запрос на слияние будет принят true или нет false
squashCommit Boolean Выполнить слияние одним коммитом true или нет false
assignedUsers List(Object) Список утверждающих пользователей, назначенных на запрос на слияние
reviewers List(Object) Список рецензентов пользователей, назначенных на запрос на слияние
labels List(Object) Список лейблов, назначенных на запрос на слияние
sourceBranch Object Ветка, из которой будет выполнен запрос на слияние
targetBranch Object Ветка, в которую будет выполнен запрос на слияние
status Object Статус запроса на слияние
createdBy Object Автор запроса на слияние
createdAt ZonedDateTime Дата создания запроса на слияние
updatedAt ZonedDateTime Дата последнего изменения запроса на слияние
sourceProject Object Проект, из которого выполняется запрос на слияние
targetProject Object Проект, для которого выполняется запрос на слияние
projectAlias String Псевдоним проекта
userAlias String Псевдоним автора
canMerge Boolean Слияние может быть выполнено true или нет false
hasConflicts Boolean В запросе есть конфликты true или нет false
hasLockConflicts Boolean В запросе есть конфликты с заблокированными файлами true или нет false
conflicts List Список конфликтующих файлов
lockConflicts List Список конфликтующих заблокированных файлов
mergeCommit Object Коммит, образующийся после слияния

Описание структуры JSON-объекта, описывающего правило одобрения запроса на слияние

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

Поле Тип Описание
targetBranch String Целевая ветка, запроса на слияние в которую, будут следовать данному правилу одобрения
name String Название правила одобрения
minimalApprovals Integer Минимальное число ответственных, которые должны одобрить запрос на слияние
allowedApprovers Array Массив пользователей, которые являются ответсвенными в данном правиле одобрения
uuid String UUID правила одобрения

Описание структуры JSON-объекта, описывающего ответственного в правиле одобрения запроса на слияние

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

Описание структуры JSON-объекта, описывающего настройки запросов на слияние

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

Поле Тип Описание
canOverrideApprovals Boolean При значении true активна настройка Можно переопределять подтверждающих и подтверждения, необходимые для запроса на слияние активна
removeApprovalsOnPush Boolean При значении true активна настройка Удалить все подтверждения в запросе на слияние в момент пуша нового коммита в исходную ветку
preventAuthorApproving Boolean При значении true активна настройка Запретить одобрение запроса на слияние его автором
preventCommitterApproving Boolean При значении true активна настройка Запретить одобрение запроса его разработчиками активна
checkCiCdStatus Boolean При значении true активна настройка Проверять статус последнего конвейера при слиянии запроса активна
mergeResultPipelineStatusCheckEnabled Boolean При значении true активна настройка Проверять статус конвейера результата слияния активна
mergeRequestPipelineStatusCheckEnabled Boolean При значении true активна настройка Проверять статус конвейера слияния активна
branchPipelineStatusCheckEnabled Boolean При значении true активна настройка Проверять статус конвейера на ветку активна
editMergedMergeRequest Boolean При значении true активна настройка Разрешить редактирование слитого запроса активна
removeApprovalsOnChangingTargetBranch Boolean При значении true активна настройка Удалить все подтверждения в запросе на слияние в момент изменения целевой ветки активна
enableRemoveSourceBranchByDefault Boolean При значении true активна настройка Опция "Удаление ветки после слияния" активна по умолчанию активна

Описание структуры JSON-объекта, описывающего шаблоны сообщений слияния

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

Поле Тип Описание
mergeCommitMessage String Шаблон сообщения коммита слияния (merge commit)
squashCommitMessage String Шаблон сообщения слияния одним коммитом (squash commit)
mergeRequestDescriptionTemplate String Шаблон описания запроса на слияние
canEditMergeCommitMessage Boolean При значеении true активна опция Разрешить редактирование шаблонных сообщений при выполнении слияния

Метод получения списка всех запросов на слияние

GET /project/{ownerAlias}/{projectAlias}/merge-request/list

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

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

Responses

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

Пример ответа
    
{
    "_embedded": {
        "mergeRequestModelList": [
            {
                "id": "767e5a4a-aaaa-aaaa-aaaa-f4d1fb6b5490",
                "localId": 3,
                "description": "test3",
                "title": "test3-description",
                "removeSourceBranch": false,
                "squashCommit": false,
                "assignedUsers": [
                    {
                        "id": "bc56d75f-aaaa-aaaa-aaaa-61ec6aae2019",
                        "username": "user",
                        "name": null,
                        "surname": null,
                        "fullName": "user",
                        "avatar": "https://gitflic.ru/upload/img/43258295-aaaa-aaaa-aaaa-8fc26bae3717.jpg"
                    }
                ],
                "reviewers": [
                    {
                        "id": "bc56d75f-aaaa-aaaa-aaaa-61ec6aae2019",
                        "username": "user",
                        "name": null,
                        "surname": null,
                        "fullName": "user",
                        "avatar": "https://gitflic.ru/upload/img/43258295-aaaa-aaaa-aaaa-8fc26bae3717.jpg"
                    }
                ],
                "labels": [
                    {
                        "id": "c9135ea3-aaaa-aaaa-aaaa-1ec3c61a5b6d",
                        "hexColor": "FCF300",
                        "title": "релиз",
                        "description": "Доработки готовые для релиза",
                        "isTextLight": false
                    }
                ],
                "sourceBranch": {
                    "id": "new_branch",
                    "title": "new_branch",
                    "hash": "8c9aa77d99b3c7aaaaaaaaaaaa370f4a36e0bc0a",
                    "alias": "8c9aa77d99b3c7aaaaaaaaaaaa421b14d31b6337",
                    "ownerAlias": null,
                    "color": null,
                    "hexColor": null,
                    "icon": null
                },
                "targetBranch": {
                    "id": "master",
                    "title": "master",
                    "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
                    "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
                    "ownerAlias": null,
                    "color": null,
                    "hexColor": null,
                    "icon": null
                },
                "status": {
                    "id": "OPENED",
                    "title": "В работе",
                    "hash": null,
                    "alias": null,
                    "ownerAlias": null,
                    "color": null,
                    "hexColor": null,
                    "icon": null
                },
                "createdBy": {
                    "id": "6736240a-aaaa-aaaa-aaaa-cab026562172",
                    "username": "user2",
                    "name": "name",
                    "surname": "surname",
                    "fullName": "name surname",
                    "avatar": "https://gitflic.ru/static/image/avatar.jpg"
                },
                "createdAt": "2022-05-03T16:25:53.830856Z",
                "updatedAt": "2022-05-03T16:25:53.830856Z",
                "sourceProject": {
                    "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
                    "title": "test-project",
                    "hash": null,
                    "alias": "test-project",
                    "ownerAlias": "user2",
                    "color": null,
                    "hexColor": null,
                    "icon": null
                },
                "targetProject": {
                    "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
                    "title": "test-project",
                    "hash": null,
                    "alias": "test-project",
                    "ownerAlias": "user2",
                    "color": null,
                    "hexColor": null,
                    "icon": null
                },
                "projectAlias": "test-project",
                "userAlias": "user2",
                "canMerge": false,
                "hasConflicts": false,
                "hasLockConflicts": null,
                "conflicts": null,
                "lockConflicts": null,
                "mergeCommit": null
            },
            {
                "id": "b9c534c9-aaaa-aaaa-aaaa-754e11af2eb0",
                "localId": 2,
                "description": "test2-desc",
                "title": "test2",
                "removeSourceBranch": false,
                "squashCommit": false,
                "assignedUsers": [],
                "reviewers": [],
                "labels": [],
                "sourceBranch": {
                    "id": "master",
                    "title": "master",
                    "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
                    "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
                    "ownerAlias": null,
                    "color": null,
                    "hexColor": null,
                    "icon": null
                },
                "targetBranch": {
                    "id": "master",
                    "title": "master",
                    "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
                    "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
                    "ownerAlias": null,
                    "color": null,
                    "hexColor": null,
                    "icon": null
                },
                "status": {
                    "id": "OPENED",
                    "title": "В работе",
                    "hash": null,
                    "alias": null,
                    "ownerAlias": null,
                    "color": null,
                    "hexColor": null,
                    "icon": null
                },
                "createdBy": {
                    "id": "6736240a-aaaa-aaaa-aaaa-cab026562172",
                    "username": "user2",
                    "name": "name",
                    "surname": "surname",
                    "fullName": "name surname",
                    "avatar": "https://gitflic.ru/static/image/avatar.jpg"
                },
                "createdAt": "2022-04-20T14:08:10.381743Z",
                "updatedAt": "2022-04-20T14:08:10.384743Z",
                "sourceProject": {
                    "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
                    "title": "test-project",
                    "hash": null,
                    "alias": "test-project",
                    "ownerAlias": "user2",
                    "color": null,
                    "hexColor": null,
                    "icon": null
                },
                "targetProject": {
                    "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
                    "title": "test-project",
                    "hash": null,
                    "alias": "test-project",
                    "ownerAlias": "user2",
                    "color": null,
                    "hexColor": null,
                    "icon": null
                },
                "projectAlias": "test-project",
                "userAlias": "user2",
                "canMerge": false,
                "hasConflicts": false,
                "hasLockConflicts": null,
                "conflicts": null,
                "lockConflicts": null,
                "mergeCommit": null
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  

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

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


Метод получения запроса на слияние по локальному id

GET /project/{ownerAlias}/{projectAlias}/merge-request/{localId}

Запрос возвращает запрос на слияние по его локальному ID

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

Responses

STATUS 200 - Запрос на слияния успешно возвращен.

Пример ответа
    
            {
                "id": "a306ecf4-aaaa-aaaa-aaaa-25b206b7e8b7",
                "localId": 1,
                "description": "test2-new",
                "title": "test2-new",
                "removeSourceBranch": false,
                "squashCommit": false,
                "assignedUsers": [],
                "reviewers": [],
                "labels": [],
                "sourceBranch": {
                    "id": "master",
                    "title": "master",
                    "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
                    "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
                    "ownerAlias": null,
                    "color": null,
                    "hexColor": null,
                    "icon": null
                },
                "targetBranch": {
                    "id": "master",
                    "title": "master",
                    "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
                    "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
                    "ownerAlias": null,
                    "color": null,
                    "hexColor": null,
                    "icon": null
                },
                "status": {
                    "id": "CANCELED",
                    "title": "Отменен",
                    "hash": null,
                    "alias": null,
                    "ownerAlias": null,
                    "color": null,
                    "hexColor": null,
                    "icon": null
                },
                "createdBy": {
                    "id": "6736240a-aaaa-aaaa-aaaa-cab026562172",
                    "username": "user2",
                    "name": "name",
                    "surname": "surname",
                    "fullName": "name surname",
                    "avatar": "https://gitflic.ru/static/image/avatar.jpg"
                },
                "createdAt": "2022-04-20T13:56:00.250341Z",
                "updatedAt": "2022-04-20T14:13:37.491826Z",
                "sourceProject": {
                    "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
                    "title": "test-project",
                    "hash": null,
                    "alias": "test-project",
                    "ownerAlias": "user2",
                    "color": null,
                    "hexColor": null,
                    "icon": null
                },
                "targetProject": {
                    "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
                    "title": "test-project",
                    "hash": null,
                    "alias": "test-project",
                    "ownerAlias": "user2",
                    "color": null,
                    "hexColor": null,
                    "icon": null
                },
                "projectAlias": "test-project",
                "userAlias": "user2",
                "canMerge": false,
                "hasConflicts": false,
    "hasLockConflicts": null,
    "conflicts": null,
    "lockConflicts": null,
    "mergeCommit": null
}
    
  

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

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


Метод получения списка запросов на слияние с конкретным коммитом

GET /project/{ownerAlias}/{projectAlias}/merge-request/commit?commit={commitHash}&status={mergeRequestStatus}

Запрос возвращает список запросов на слияние, в исходных или целевых ветках которых находится коммит с указанным хэшем. Кроме того есть возможность поиска по статусу запроса на слияния и настройки количества отображаемых объектов на странице

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта
projectAlias String Псевдоним проекта
commitHash String Обязательный параметр. Хэш коммита, который находится в исходной или целевой ветке запроса
mergeRequestStatus String Не обязательный параметр. Статус запроса на слияния. Возможные значения: OPENED, MERGED, CLOSED, CANCELED и FAILED

Responses

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

Пример ответа
    
{
    "_embedded": {
        "mergeRequestModelList": [
            {
                "id": "e1e1aeab-aaaa-aaaa-aaaa-1e9e7fcebb26",
                "localId": 161,
                "description": "Правки ссылок",
                "title": "Правки ссылок",
                "removeSourceBranch": true,
                "squashCommit": true,
                "assignedUsers": [
                    {
                        "id": "637fcdb6-aaaa-aaaa-aaaa-1af82abc7dd6",
                        "username": "gitflic_user",
                        "name": "gitflic",
                        "surname": "user",
                        "fullName": "gitflic user",
                        "avatar": "https://gitflic.ru/upload/img/06e7ab2e-aaaa-aaaa-aaaa-da8f5d956c22.jpg"
                    }
                ],
                "reviewers": [
                    {
                        "id": "710014c8-aaaa-aaaa-aaaa-11879e51e437",
                        "username": "gitflic_user",
                        "name": "gitflic",
                        "surname": "user",
                        "fullName": "gitflic user",
                        "avatar": "https://gitflic.ru/upload/img/d48d9701-aaaa-aaaa-aaaa-15e38be4fc38.jpg"
                    }
                ],
                "labels": [
                    {
                        "id": "bc0e9d88-aaaa-aaaa-aaaa-07351f0c86f4",
                        "hexColor": "40bae2",
                        "title": "правки",
                        "description": "Исправление ошибок, опечаток",
                        "isTextLight": false
                    }
                ],
                "sourceBranch": {
                    "id": "link-fix",
                    "title": "link-fix",
                    "hash": "2dde6bd80d2d9caaaaaaaaaaaa25a4f252d0f90e",
                    "alias": "2dde6bd80d2d9caaaaaaaaaaaa25a4f252d0f90e",
                    "ownerAlias": null,
                    "color": null,
                    "hexColor": null,
                    "icon": null,
                    "isDeleted": false
                },
                "targetBranch": {
                    "id": "master",
                    "title": "master",
                    "hash": "148c03a74adc0daaaaaaaaaaaaea7e27ed4aeb8b",
                    "alias": "148c03a74adc0daaaaaaaaaaaaea7e27ed4aeb8b",
                    "ownerAlias": null,
                    "color": null,
                    "hexColor": null,
                    "icon": null,
                    "isDeleted": false
                },
                "status": {
                    "id": "OPENED",
                    "title": "Открыт",
                    "hash": null,
                    "alias": null,
                    "ownerAlias": null,
                    "color": "info",
                    "hexColor": "17A2B8",
                    "icon": null,
                    "isDeleted": false
                },
                "createdBy": {
                    "id": "8473a25a-aaaa-aaaa-aaaa-3e5c9e0a4b51",
                    "username": "gitflic_user",
                    "name": "gitflic",
                    "surname": "user",
                    "fullName": "gitflic user",
                    "avatar": "https://gitflic.ru/upload/img/6da34d10-aaaa-aaaa-aaaa-19b7e2151276.jpg"
                },
                "createdAt": "2025-04-04T22:16:35.226366Z",
                "updatedAt": "2025-04-04T22:16:35.226368Z",
                "sourceProject": {
                    "id": "fb4b1d65-aaaa-aaaa-aaaa-7e76f5ebdf99",
                    "title": "documentation",
                    "hash": null,
                    "alias": "documentation",
                    "ownerAlias": "gitflic",
                    "color": null,
                    "hexColor": null,
                    "icon": null,
                    "isDeleted": false
                },
                "targetProject": {
                    "id": "fb4b1d65-aaaa-aaaa-aaaa-7e76f5ebdf99",
                    "title": "documentation",
                    "hash": null,
                    "alias": "documentation",
                    "ownerAlias": "gitflic",
                    "color": null,
                    "hexColor": null,
                    "icon": null,
                    "isDeleted": false
                },
                "projectAlias": "documentation",
                "userAlias": "gitflic",
                "canMerge": false,
                "hasConflicts": false,
                "hasLockConflicts": false,
                "conflicts": [],
                "lockConflicts": [],
                "mergeCommit": null
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
    
  

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

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


Метод для создания нового запроса на слияние

POST /project/{ownerAlias}/{projectAlias}/merge-request

Запрос создает запрос на слияние

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

Request

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

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

Параметр Описание
title Название запроса на слияние
description Описание запроса на слияние
sourceBranch Исходная ветка
targetBranch Целевая ветка
sourceProject Исходный проект
targetProject Целевой проект
squashCommit Выполнить слияние одним коммитом true или нет false. Необязательный параметр
removeSourceBranch Удалить исходную ветку, после того как запрос на слияние будет принят true или нет false. Необязательный параметр

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

{
    "title": "test4",
    "description": "test4",
    "sourceBranch": { "id": "new_branch" },
    "targetBranch": { "id": "master" },
    "sourceProject": { "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1" },
    "targetProject": { "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1" },
    "squashCommit": true,
    "removeSourceBranch": true
}

Responses

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

Пример ответа
    
{
    "id": "a306ecf4-aaaa-aaaa-aaaa-25b206b7e8b7",
    "localId": 1,
    "description": "test2-new",
    "title": "test2-new",
    "removeSourceBranch": true,
    "squashCommit": true,
    "assignedUsers": [],
    "reviewers": [],
    "labels": [],
    "sourceBranch": {
        "id": "master",
        "title": "master",
        "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "ownerAlias": null,
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "targetBranch": {
        "id": "master",
        "title": "master",
        "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "ownerAlias": null,
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "status": {
        "id": "CANCELED",
        "title": "Отменен",
        "hash": null,
        "alias": null,
        "ownerAlias": null,
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "createdBy": {
        "id": "6736240a-aaaa-aaaa-aaaa-cab026562172",
        "username": "user2",
        "name": "name",
        "surname": "surname",
        "fullName": "name surname",
        "avatar": "https://gitflic.ru/static/image/avatar.jpg"
    },
    "createdAt": "2022-04-20T13:56:00.250341Z",
    "updatedAt": "2022-04-20T14:13:37.491826Z",
    "sourceProject": {
        "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
        "title": "test-project",
        "hash": null,
        "alias": "test-project",
        "ownerAlias": "user2",
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "targetProject": {
        "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
        "title": "test-project",
        "hash": null,
        "alias": "test-project",
        "ownerAlias": "user2",
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "projectAlias": "test-project",
    "userAlias": "user2",
    "canMerge": false,
    "hasConflicts": false,
    "hasLockConflicts": null,
    "conflicts": null,
    "lockConflicts": null,
    "mergeCommit": null
}
    
  

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

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


Метод для редактирования запроса на слияние

PUT /project/{ownerAlias}/{projectAlias}/merge-request

Запрос изменяет запрос на слияние

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

Request

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

Параметр Описание
id ID запроса на слияние, который необходимо отредактировать
title Название запроса на слияние
description Описание запроса на слияние
sourceBranch Исходная ветка
targetBranch Целевая ветка
sourceProject Исходный проект
targetProject Целевой проект
squashCommit Выполнить слияние одним коммитом true или нет false. Необязательный параметр
removeSourceBranch Удалить исходную ветку, после того как запрос на слияние будет принят true или нет false. Необязательный параметр

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

{
    "id" ; "d8a1e1e7-aaaa-aaaa-aaaa-3dc1a9f327b5",
    "title": "test4",
    "description": "test4",
    "sourceBranch": { "id": "new_branch" },
    "targetBranch": { "id": "master" },
    "sourceProject": { "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1" },
    "targetProject": { "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1" },
    "squashCommit": true,
    "removeSourceBranch": true
}

Responses

STATUS 200 - Запрос на слияния успешно изменен.

Пример ответа
    
{
    "id": "a306ecf4-aaaa-aaaa-aaaa-25b206b7e8b7",
    "localId": 1,
    "description": "test4-changed",
    "title": "test4-changed",
    "removeSourceBranch": true,
    "squashCommit": true,
    "assignedUsers": [],
    "reviewers": [],
    "labels": [],
    "sourceBranch": {
        "id": "master",
        "title": "master",
        "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "ownerAlias": null,
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "targetBranch": {
        "id": "new_branch",
        "title": "new_branch",
        "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "ownerAlias": null,
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "status": {
        "id": "CANCELED",
        "title": "Отменен",
        "hash": null,
        "alias": null,
        "ownerAlias": null,
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "createdBy": {
        "id": "6736240a-aaaa-aaaa-aaaa-cab026562172",
        "username": "user2",
        "name": "name",
        "surname": "surname",
        "fullName": "name surname",
        "avatar": "https://gitflic.ru/static/image/avatar.jpg"
    },
    "createdAt": "2022-04-20T13:56:00.250341Z",
    "updatedAt": "2022-04-20T14:13:37.491826Z",
    "sourceProject": {
        "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
        "title": "test-project",
        "hash": null,
        "alias": "test-project",
        "ownerAlias": "user2",
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "targetProject": {
        "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
        "title": "test-project",
        "hash": null,
        "alias": "test-project",
        "ownerAlias": "user2",
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "projectAlias": "test-project",
    "userAlias": "user2",
    "canMerge": false,
    "hasConflicts": false,
    "hasLockConflicts": null,
    "conflicts": null,
    "lockConflicts": null,
    "mergeCommit": null
}
        
    

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

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


Метод для одобрения запроса

POST /project/{ownerAlias}/{projectAlias}/merge-request/{localId}/approve

Запрос выполняет одобрение запроса на слияние от лица авторизованного пользователя. Если запрос уже был одобрен, то одобрение снимается.

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

Responses

Данный запрос возвращает уникальный параметр approved

Поле Тип Описание
approved Boolean Запрос одобрен текущим пользователем true или нет false

STATUS 200 - Запрос на слияния успешно одобрен.

Пример ответа
    
{
    "approved": false,
    "mergeRequestModel": {
        "id": "a306ecf4-aaaa-aaaa-aaaa-25b206b7e8b7",
        "localId": 1,
        "description": "test4-changed",
        "title": "test4-changed",
        "removeSourceBranch": true,
        "squashCommit": true,
        "assignedUsers": [],
        "reviewers": [],
        "labels": [],
        "sourceBranch": {
            "id": "master",
            "title": "master",
            "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
            "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
            "ownerAlias": null,
            "color": null,
            "hexColor": null,
            "icon": null
        },
        "targetBranch": {
            "id": "new_branch",
            "title": "new_branch",
            "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
            "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
            "ownerAlias": null,
            "color": null,
            "hexColor": null,
            "icon": null
        },
        "status": {
            "id": "CANCELED",
            "title": "Отменен",
            "hash": null,
            "alias": null,
            "ownerAlias": null,
            "color": null,
            "hexColor": null,
            "icon": null
        },
        "createdBy": {
            "id": "6736240a-aaaa-aaaa-aaaa-cab026562172",
            "username": "user2",
            "name": "name",
            "surname": "surname",
            "fullName": "name surname",
            "avatar": "https://gitflic.ru/static/image/avatar.jpg"
        },
        "createdAt": "2022-04-20T13:56:00.250341Z",
        "updatedAt": "2022-04-20T14:13:37.491826Z",
        "sourceProject": {
            "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
            "title": "test-project",
            "hash": null,
            "alias": "test-project",
            "ownerAlias": "user2",
            "color": null,
            "hexColor": null,
            "icon": null
        },
        "targetProject": {
            "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
            "title": "test-project",
            "hash": null,
            "alias": "test-project",
            "ownerAlias": "user2",
            "color": null,
            "hexColor": null,
            "icon": null
        },
        "projectAlias": "test-project",
        "userAlias": "user2",
        "canMerge": false,
        "hasConflicts": false,
        "hasLockConflicts": null,
        "conflicts": null,
        "lockConflicts": null,
        "mergeCommit": null
    }
}
        
    

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

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


Метод для слияния запроса

POST /project/{ownerAlias}/{projectAlias}/merge-request/{localId}/merge

Запрос выполняет запрос на слияние

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

Request

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

Параметр Тип Описание
commitMessage String Необязательный параметр. Сообщение коммита слияния
squashCommitMessage String Необязательный параметр. Сообщение squash коммита

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

Не используя необязательные параметры, необходимо отправлять пустое тело запроса.

{
    "commitMessage": "Сообщение коммита слияния",
    "squashCommitMessage": "Сообщение squash коммита"
}
Responses

STATUS 200 Запрос на слияния успешно выполнен.

Пример ответа
    
{
    "id": "a306ecf4-aaaa-aaaa-aaaa-25b206b7e8b7",
    "localId": 1,
    "description": "test4-changed",
    "title": "test4-changed",
    "removeSourceBranch": false,
    "squashCommit": false,
    "assignedUsers": [],
    "reviewers": [],
    "labels": [],
    "sourceBranch": {
        "id": "master",
        "title": "master",
        "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "ownerAlias": null,
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "targetBranch": {
        "id": "new_branch",
        "title": "new_branch",
        "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "ownerAlias": null,
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "status": {
        "id": "MERGED",
        "title": "Слит",
        "hash": null,
        "alias": null,
        "ownerAlias": null,
        "color": "success",
        "hexColor": "28A745",
        "icon": null,
        "isDeleted": false
    },
    "createdBy": {
        "id": "6736240a-aaaa-aaaa-aaaa-cab026562172",
        "username": "user2",
        "name": "name",
        "surname": "surname",
        "fullName": "name surname",
        "avatar": "https://gitflic.ru/static/image/avatar.jpg"
    },
    "createdAt": "2022-04-20T13:56:00.250341Z",
    "updatedAt": "2022-04-20T14:13:37.491826Z",
    "sourceProject": {
        "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
        "title": "test-project",
        "hash": null,
        "alias": "test-project",
        "ownerAlias": "user2",
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "targetProject": {
        "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
        "title": "test-project",
        "hash": null,
        "alias": "test-project",
        "ownerAlias": "user2",
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "projectAlias": "test-project",
    "userAlias": "user2",
    "canMerge": false,
    "hasConflicts": false,
    "hasLockConflicts": null,
    "conflicts": null
    "lockConflicts": null,
    "mergeCommit": {
        "hash": "c3387bc74bb9a0aaaaaaaaaaaab2727a6ed3e835",
        "message": "Обновления",
        "shortMessage": "Обновления",
        "createdAt": "2024-09-04T09:52:50Z",
        "committerIdent": {
            "name": "adminuser",
            "avatar": "/static/image/avatar.jpg",
            "emailAddress": "adminuser@admin.local",
            "when": "2024-09-04T09:52:50Z"
        },
        "authorIdent": {
            "name": "adminuser",
            "avatar": "/static/image/avatar.jpg",
            "emailAddress": "adminuser@admin.local",
            "when": "2024-09-04T09:52:50Z"
        },
        "user": {
            "id": "6736240a-aaaa-aaaa-aaaa-cab026562172",
            "username": "adminuser",
            "name": "admin",
            "surname": "user",
            "fullName": "admin user",
            "avatar": "http://localhost:8080/upload/img/beb67ed7-aaaa-aaaa-aaaa-eb174cda4dbd.jpg"
        },
        "verificationResult": null,
        "parentCommitIds": [
            "587be46840d578aaaaaaaaaaaa85218816d18359"
        ],
        "parentCommitBranches": [
            "master"
        ]
}
        
    

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

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


Метод для закрытия запроса на слияние

POST /project/{ownerAlias}/{projectAlias}/merge-request/{localId}/close

Запрос закрывает запрос на слияние

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

Responses

STATUS 200 - Запрос на слияния успешно закрыт.

Пример ответа
    
{
    "id": "a306ecf4-aaaa-aaaa-aaaa-25b206b7e8b7",
    "localId": 1,
    "description": "test4-changed",
    "title": "test4-changed",
    "removeSourceBranch": false,
    "squashCommit": false,
    "assignedUsers": [],
    "reviewers": [],
    "labels": [],
    "sourceBranch": {
        "id": "master",
        "title": "master",
        "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "ownerAlias": null,
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "targetBranch": {
        "id": "new_branch",
        "title": "new_branch",
        "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "ownerAlias": null,
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "status": {
        "id": "CLOSED",
        "title": "Закрыт",
        "hash": null,
        "alias": null,
        "ownerAlias": null,
        "color": "warning",
        "hexColor": "FFC107",
        "icon": null,
        "isDeleted": false
    },
    "createdBy": {
        "id": "6736240a-aaaa-aaaa-aaaa-cab026562172",
        "username": "user2",
        "name": "name",
        "surname": "surname",
        "fullName": "name surname",
        "avatar": "https://gitflic.ru/static/image/avatar.jpg"
    },
    "createdAt": "2022-04-20T13:56:00.250341Z",
    "updatedAt": "2022-04-20T14:13:37.491826Z",
    "sourceProject": {
        "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
        "title": "test-project",
        "hash": null,
        "alias": "test-project",
        "ownerAlias": "user2",
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "targetProject": {
        "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
        "title": "test-project",
        "hash": null,
        "alias": "test-project",
        "ownerAlias": "user2",
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "projectAlias": "test-project",
    "userAlias": "user2",
    "canMerge": false,
    "hasConflicts": false,
    "hasLockConflicts": null,
    "conflicts": null,
    "lockConflicts": null,
    "mergeCommit": null
}
        
    

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

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


Метод для отмены запроса на слияние

POST /project/{ownerAlias}/{projectAlias}/merge-request/{localId}/cancel

Запрос отменяет запрос на слияние

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

Responses

STATUS 200 Запрос на слияния успешно отменен.

Пример ответа
    
{
    "id": "a306ecf4-aaaa-aaaa-aaaa-25b206b7e8b7",
    "localId": 1,
    "description": "test4-changed",
    "title": "test4-changed",
    "removeSourceBranch": false,
    "squashCommit": false,
    "assignedUsers": [],
    "reviewers": [],
    "labels": [],
    "sourceBranch": {
        "id": "master",
        "title": "master",
        "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "ownerAlias": null,
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "targetBranch": {
        "id": "new_branch",
        "title": "new_branch",
        "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "alias": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
        "ownerAlias": null,
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "status": {
        "id": "CANCELED",
        "title": "Отменен",
        "hash": null,
        "alias": null,
        "ownerAlias": null,
        "color": "warning",
        "hexColor": "FFC107",
        "icon": null,
        "isDeleted": false
    },
    "createdBy": {
        "id": "6736240a-aaaa-aaaa-aaaa-cab026562172",
        "username": "user2",
        "name": "name",
        "surname": "surname",
        "fullName": "name surname",
        "avatar": "https://gitflic.ru/static/image/avatar.jpg"
    },
    "createdAt": "2022-04-20T13:56:00.250341Z",
    "updatedAt": "2022-04-20T14:13:37.491826Z",
    "sourceProject": {
        "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
        "title": "test-project",
        "hash": null,
        "alias": "test-project",
        "ownerAlias": "user2",
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "targetProject": {
        "id": "4eeae220-aaaa-aaaa-aaaa-85ff50ee88c1",
        "title": "test-project",
        "hash": null,
        "alias": "test-project",
        "ownerAlias": "user2",
        "color": null,
        "hexColor": null,
        "icon": null
    },
    "projectAlias": "test-project",
    "userAlias": "user2",
    "canMerge": false,
    "hasConflicts": false,
    "hasLockConflicts": null,
    "conflicts": null,
    "lockConflicts": null,
    "mergeCommit": null
}
        
    

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

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


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

Метод для получения списка правил одобрений запросов на слияние

Метод доступен в Enterprise версии, а также на gitflic.ru

Компании: GET /company/{companyAlias}/merge-request/approval/rule

Команды: GET /team/{teamAlias}/merge-request/approval/rule

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

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
teamAlias String Псевдоним команды

Responses

STATUS 200 - Список правил одобрений запросов на слияние успешно возвращено:

Пример ответа
    
{
    "_embedded": {
        "restMergeRequestApprovalRuleList": [
            {
                "targetBranch": "master",
                "name": "master ветка",
                "minimalApprovals": 2,
                "allowedApprovers": [
                    {
                        "id": "1757a1b5-aaaa-aaaa-aaaa-764a60303236",
                        "username": "test-user",
                        "name": "test",
                        "surname": "user",
                        "fullName": "test-user",
                        "avatar": "https://gitflic.ru/upload/-/user/1757a1b5-aaaa-aaaa-aaaa-764a60303236/avatar/feede29b-aaaa-aaaa-aaaa-49ee70a42929.png",
                        "cover": "https://gitflic.ru/static/image/user-cover.png"
                    },
                    {
                        "id": "6736240a-aaaa-aaaa-aaaa-cab026562172",
                        "username": "adminuser",
                        "name": "Admin",
                        "surname": "User",
                        "fullName": "Admin User",
                        "avatar": "https://gitflic.ru/static/image/avatar.jpg",
                        "cover": "https://gitflic.ru/static/image/user-cover.png"
                    }
                ],
                "uuid": "51352bb5-aaaa-aaaa-aaaa-a9ea23a64d19"
            },
            {
                "targetBranch": "develop",
                "name": "develop ветка",
                "minimalApprovals": 1,
                "allowedApprovers": [
                    {
                        "id": "6736240a-aaaa-aaaa-aaaa-cab026562172",
                        "username": "adminuser",
                        "name": "Admin",
                        "surname": "User",
                        "fullName": "Admin User",
                        "avatar": "https://gitflic.ru/static/image/avatar.jpg",
                        "cover": "https://gitflic.ru/static/image/user-cover.png"
                    }
                ],
                "uuid": "06eff520-aaaa-aaaa-aaaa-94c674ab87e1"
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  

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

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


Метод для получения правила одобрений запросов на слияние

Метод доступен в Enterprise версии, а также на gitflic.ru

Компании: GET /company/{companyAlias}/merge-request/approval/rule/{approvalRuleUuid}

Команды: GET /team/{teamAlias}/merge-request/approval/rule/{approvalRuleUuid}

Запрос возвращает правило одобрений запросов на слияние указанной сущности с данным псевдонимом.

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
teamAlias String Псевдоним команды
approvalRuleUuid String UUID правила одобрений запроса на слияние

Responses

STATUS 200 - Правило одобрений запросов на слияние успешно возвращено:

Пример ответа
    
{
    "targetBranch": "master",
    "name": "master ветка",
    "minimalApprovals": 2,
    "allowedApprovers": [
        {
            "id": "1757a1b5-aaaa-aaaa-aaaa-764a60303236",
            "username": "test-user",
            "name": "test",
            "surname": "user",
            "fullName": "test-user",
            "avatar": "https://gitflic.ru/upload/-/user/1757a1b5-aaaa-aaaa-aaaa-764a60303236/avatar/feede29b-aaaa-aaaa-aaaa-49ee70a42929.png",
            "cover": "https://gitflic.ru/static/image/user-cover.png"
        },
        {
            "id": "6736240a-aaaa-aaaa-aaaa-cab026562172",
            "username": "adminuser",
            "name": "Admin",
            "surname": "User",
            "fullName": "Admin User",
            "avatar": "https://gitflic.ru/static/image/avatar.jpg",
            "cover": "https://gitflic.ru/static/image/user-cover.png"
        }
    ],
    "uuid": "51352bb5-aaaa-aaaa-aaaa-a9ea23a64d19"
}
    
  

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

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


Метод для создания правила одобрений запросов на слияние

Метод доступен в Enterprise версии, а также на gitflic.ru

Компании: POST /company/{companyAlias}/merge-request/approval/rule/create

Команды: POST /team/{teamAlias}/merge-request/approval/rule/create

Запрос создает и возвращает правило одобрений запросов на слияние указанной сущности с данным псевдонимом.

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
teamAlias String Псевдоним команды

Request

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

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

Поле Тип Описание
targetBranch String Целевая ветка, запроса на слияние в которую, будут следовать данному правилу одобрений
name String Название правила одобрений
minimalApprovals Integer Минимальное число ответственных, которые должны одобрить запрос на слияние. Данное число не должно превышать число пользователей в поле allowedApproversUuid
allowedApproversUuid Array Массив UUID пользователей, которые должны быть ответственными в данном правиле одобрений

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

{
    "targetBranch": "master",
    "name": "master ветка",
    "minimalApprovals": "2",
    "allowedApproversUuid": ["1757a1b5-aaaa-aaaa-aaaa-764a60303236", "6736240a-aaaa-aaaa-aaaa-cab026562172"]
}

Responses

STATUS 200 - Правило одобрений запросов на слияние успешно создано:

Пример ответа
    
{
    "targetBranch": "master",
    "name": "master ветка",
    "minimalApprovals": 2,
    "allowedApprovers": [
        {
            "id": "1757a1b5-aaaa-aaaa-aaaa-764a60303236",
            "username": "test-user",
            "name": "test",
            "surname": "user",
            "fullName": "test-user",
            "avatar": "https://gitflic.ru/upload/-/user/1757a1b5-aaaa-aaaa-aaaa-764a60303236/avatar/feede29b-aaaa-aaaa-aaaa-49ee70a42929.png",
            "cover": "https://gitflic.ru/static/image/user-cover.png"
        },
        {
            "id": "6736240a-aaaa-aaaa-aaaa-cab026562172",
            "username": "adminuser",
            "name": "Admin",
            "surname": "User",
            "fullName": "Admin User",
            "avatar": "https://gitflic.ru/static/image/avatar.jpg",
            "cover": "https://gitflic.ru/static/image/user-cover.png"
        }
    ],
    "uuid": "51352bb5-aaaa-aaaa-aaaa-a9ea23a64d19"
}
    
  

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

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

STATUS 422 - В теле запроса не указано обязательно поле.


Метод для изменения правила одобрений запросов на слияние

Метод доступен в Enterprise версии, а также на gitflic.ru

Компании: PATCH /company/{companyAlias}/merge-request/approval/rule/edit

Команды: PATCH /team/{teamAlias}/merge-request/approval/rule/edit

Запрос изменяет и возвращает правило одобрений запросов на слияние указанной сущности с данным псевдонимом.

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
teamAlias String Псевдоним команды

Request

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

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

Поле Тип Описание
uuid String Обязательное поле. UUID правила одобрения запроса на слияние, которое необходимо изменить
targetBranch String Целевая ветка, запроса на слияние в которую, будут следовать данному правилу одобрений
name String Название правила одобрений
minimalApprovals Integer Минимальное число ответственных, которые должны одобрить запрос на слияние. Данное число не должно превышать число пользователей в поле allowedApproversUuid
allowedApproversUuid Array Массив UUID пользователей, которые должны быть ответственными в данном правиле одобрений

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

{
    "targetBranch": "master",
    "name": "master ветка",
    "minimalApprovals": "2",
    "allowedApproversUuid": ["1757a1b5-aaaa-aaaa-aaaa-764a60303236", "6736240a-aaaa-aaaa-aaaa-cab026562172"]
}

Responses

STATUS 200 - Правило одобрений запросов на слияние успешно создано:

Пример ответа
    
{
    "targetBranch": "master",
    "name": "master ветка",
    "minimalApprovals": 2,
    "allowedApprovers": [
        {
            "id": "1757a1b5-aaaa-aaaa-aaaa-764a60303236",
            "username": "test-user",
            "name": "test",
            "surname": "user",
            "fullName": "test-user",
            "avatar": "https://gitflic.ru/upload/-/user/1757a1b5-aaaa-aaaa-aaaa-764a60303236/avatar/feede29b-aaaa-aaaa-aaaa-49ee70a42929.png",
            "cover": "https://gitflic.ru/static/image/user-cover.png"
        },
        {
            "id": "6736240a-aaaa-aaaa-aaaa-cab026562172",
            "username": "adminuser",
            "name": "Admin",
            "surname": "User",
            "fullName": "Admin User",
            "avatar": "https://gitflic.ru/static/image/avatar.jpg",
            "cover": "https://gitflic.ru/static/image/user-cover.png"
        }
    ],
    "uuid": "51352bb5-aaaa-aaaa-aaaa-a9ea23a64d19"
}
    
  

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

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

STATUS 422 - В теле запроса не указано обязательное поле.


Метод для удаления правила одобрений запросов на слияние

Метод доступен в Enterprise версии, а также на gitflic.ru

Компании: DELETE /company/{companyAlias}/merge-request/approval/rule/{approvalRuleUuid}

Команды: DELETE /team/{teamAlias}/merge-request/approval/rule/{approvalRuleUuid}

Запрос удаляет правило одобрений запросов на слияние указанной сущности с данным псевдонимом.

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
teamAlias String Псевдоним команды

Responses

STATUS 204 - Правило одобрений запросов на слияние успешно возвращено:

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

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


Метод для получения списка настроек запросов на слияние

Метод доступен в Enterprise версии, а также на gitflic.ru

Компании: GET /company/{companyAlias}/merge-request/approval/configuration

Команды: GET /team/{teamAlias}/merge-request/approval/configuration

Запрос возвращает список настроек запросов на слияние указанной сущности с данным псевдонимом.

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
teamAlias String Псевдоним команды

Responses

STATUS 200 - Настройки запросов на слияние успешно возвращены:

Пример ответа
    
{
    "canOverrideApprovals": true,
    "preventAuthorApproving": true,
    "preventCommitterApproving": true,
    "requirePasswordToApprove": false,
    "removeApprovalsOnPush": true,
    "checkCiCdStatus": true,
    "editMergedMergeRequest": true,
    "enableRemoveSourceBranchByDefault": true,
    "removeApprovalsOnChangingTargetBranch": true,
    "branchPipelineStatusCheckEnabled": true,
    "mergeRequestPipelineStatusCheckEnabled": true,
    "mergeResultPipelineStatusCheckEnabled": true
}
    
  

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

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


Метод для изменения настроек запросов на слияние

Метод доступен в Enterprise версии, а также на gitflic.ru

Компании: PATCH /company/{companyAlias}/merge-request/approval/configuration/edit

Команды: PATCH /team/{teamAlias}/merge-request/approval/configuration/edit

Запрос изменяет настройки запросов на слияние указанной сущности с данным псевдонимом и возвращает их.

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
teamAlias String Псевдоним команды

Request

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

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

Поле Тип Описание
canOverrideApprovals Boolean При значении true активна настройка Можно переопределять подтверждающих и подтверждения, необходимые для запроса на слияние активна
removeApprovalsOnPush Boolean При значении true активна настройка Удалить все подтверждения в запросе на слияние в момент пуша нового коммита в исходную ветку
preventAuthorApproving Boolean При значении true активна настройка Запретить одобрение запроса на слияние его автором
preventCommitterApproving Boolean При значении true активна настройка Запретить одобрение запроса его разработчиками активна
checkCiCdStatus Boolean При значении true активна настройка Проверять статус последнего конвейера при слиянии запроса активна
mergeResultPipelineStatusCheckEnabled Boolean При значении true активна настройка Проверять статус конвейера результата слияния активна
mergeRequestPipelineStatusCheckEnabled Boolean При значении true активна настройка Проверять статус конвейера слияния активна
branchPipelineStatusCheckEnabled Boolean При значении true активна настройка Проверять статус конвейера на ветку активна
editMergedMergeRequest Boolean При значении true активна настройка Разрешить редактирование слитого запроса активна
removeApprovalsOnChangingTargetBranch Boolean При значении true активна настройка Удалить все подтверждения в запросе на слияние в момент изменения целевой ветки активна
enableRemoveSourceBranchByDefault Boolean При значении true активна настройка Опция "Удаление ветки после слияния" активна по умолчанию активна

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

{
    "canOverrideApprovals": true,
    "preventAuthorApproving": true,
    "preventCommitterApproving": true,
    "requirePasswordToApprove": false,
    "removeApprovalsOnPush": true,
    "checkCiCdStatus": true,
    "editMergedMergeRequest": true,
    "enableRemoveSourceBranchByDefault": true,
    "removeApprovalsOnChangingTargetBranch": true,
    "branchPipelineStatusCheckEnabled": true,
    "mergeRequestPipelineStatusCheckEnabled": true,
    "mergeResultPipelineStatusCheckEnabled": true
}

Responses

STATUS 200 - Настройки запросов на слияние успешно изменены:

Пример ответа
    
{
    "canOverrideApprovals": true,
    "preventAuthorApproving": true,
    "preventCommitterApproving": true,
    "requirePasswordToApprove": false,
    "removeApprovalsOnPush": true,
    "checkCiCdStatus": true,
    "editMergedMergeRequest": true,
    "enableRemoveSourceBranchByDefault": true,
    "removeApprovalsOnChangingTargetBranch": true,
    "branchPipelineStatusCheckEnabled": true,
    "mergeRequestPipelineStatusCheckEnabled": true,
    "mergeResultPipelineStatusCheckEnabled": true
}
    
  

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

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


Метод для получения правила слияния одним коммитом

Метод доступен в Enterprise версии, а также на gitflic.ru

Компании: GET /company/{companyAlias}/merge-request/merge-request-squash

Команды: GET /team/{teamAlias}/merge-request/merge-request-squash

Запрос возвращает значение правила слияния одним коммитом указанной сущности с данным псевдонимом.

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
teamAlias String Псевдоним команды

Responses

STATUS 200 - Правило слияния одним коммитов возвращено.

Ответ Слияние одним коммитом Описание правила слияния одним коммитов
DO_NOT_ALLOW Запрещено Слияние одним коммитом будет недоступно, чекбокс для выбора скрыт.
ALLOW Разрешено Слияние одним коммитом доступно, чекбокс для выбора видимый и не выбран по умолчанию.
ENCOURAGE Рекомендовано Слияние одним коммитом доступно, чекбокс для выбора видимый и выбран по умолчанию.
REQUIRE Обязательно Слияние одним коммитом доступно, чекбокс для выбора видимый и выбран всегда, без возможности выключения.
Пример ответа
    
"REQUIRE"
    
  

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

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


Метод для изменения правила слияния одним коммитом

Метод доступен в Enterprise версии, а также на gitflic.ru

Компании: GET /company/{companyAlias}/merge-request/merge-request-squash/edit

Команды: GET /team/{teamAlias}/merge-request/merge-request-squash/edit

Запрос изменяет значение правила слияния одним коммитом указанной сущности с данным псевдонимом и возвращает его.

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
teamAlias String Псевдоним команды

Request

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

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

Поле Тип Описание
mergeRequestSquashSetting String Значение правила слияния одним коммитом. Возможные значения указаны в таблице ниже
Ответ Слияние одним коммитом Описание правила слияния одним коммитов
DO_NOT_ALLOW Запрещено Слияние одним коммитом будет недоступно, чекбокс для выбора скрыт.
ALLOW Разрешено Слияние одним коммитом доступно, чекбокс для выбора видимый и не выбран по умолчанию.
ENCOURAGE Рекомендовано Слияние одним коммитом доступно, чекбокс для выбора видимый и выбран по умолчанию.
REQUIRE Обязательно Слияние одним коммитом доступно, чекбокс для выбора видимый и выбран всегда, без возможности выключения.

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

{
    "mergeRequestSquashSetting": "REQUIRE"
}

Responses

STATUS 200 - Правило слияния одним коммитов изменено.

Пример ответа
    
"REQUIRE"
    
  

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

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

STATUS 422 - В теле запроса не указано поле mergeRequestSquashSetting или указано не верное значение данного поля.


Метод для получения метода слияния

Метод доступен в Enterprise версии, а также на gitflic.ru

Компании: GET /company/{companyAlias}/merge-request/merge-request-method-type

Команды: GET /team/{teamAlias}/merge-request/merge-request-method-type

Запрос возвращает метод слияния указанной сущности с данным псевдонимом.

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
teamAlias String Псевдоним команды

Responses

STATUS 200 - Метод слияния возвращено.

Ответ Метод слияния Описание метода слияния
MERGE_COMMIT Merge Commit Каждое слияние создает коммит слияния.
MERGE_COMMIT_WITH_SEMI_LINEAR_HISTORY Semi-Linear history Каждое слияние создает коммит слияния. Если слияние невозможно из-за неактуальности исходной ветки по отношению к целевой, будет предложено перебазировать исходную ветку на целевую.
FAST_FORWARD_MERGE Fast-Forward Коммит слияния не будет создан. Если слияние невозможно из-за неактуальности исходной ветки по отношению к целевой, будет предложено перебазировать исходную ветку на целевую.
Пример ответа
    
"MERGE_COMMIT"
    
  

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

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


Метод для изменения метода слияния

Метод доступен в Enterprise версии, а также на gitflic.ru

Компании: GET /company/{companyAlias}/merge-request/merge-request-method-type/edit

Команды: GET /team/{teamAlias}/merge-request/merge-request-method-type/edit

Запрос изменяет метод слияния указанной сущности с данным псевдонимом и возвращает его.

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
teamAlias String Псевдоним команды

Request

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

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

Поле Тип Описание
mergedRequestMethodType String Выбранный метод слияния. Возможные значения указаны в таблице ниже
Ответ Метод слияния Описание метода слияния
MERGE_COMMIT Merge Commit Каждое слияние создает коммит слияния.
MERGE_COMMIT_WITH_SEMI_LINEAR_HISTORY Semi-Linear history Каждое слияние создает коммит слияния. Если слияние невозможно из-за неактуальности исходной ветки по отношению к целевой, будет предложено перебазировать исходную ветку на целевую.
FAST_FORWARD_MERGE Fast-Forward Коммит слияния не будет создан. Если слияние невозможно из-за неактуальности исходной ветки по отношению к целевой, будет предложено перебазировать исходную ветку на целевую.

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

{
    "mergedRequestMethodType": "MERGE_COMMIT"
}

Responses

STATUS 200 - Метод слияния возвращено.

Пример ответа
    
"MERGE_COMMIT"
    
  

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

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

STATUS 422 - В теле запроса не указано поле mergedRequestMethodType или указано не верное значение данного поля.


Метод для получения шаблонов сообщений слияния

Метод доступен в Enterprise версии, а также на gitflic.ru

Компании: GET /company/{companyAlias}/merge-request/merge-request-template

Команды: GET /team/{teamAlias}/merge-request/merge-request-template

Запрос возвращает шаблоны сообщений слияния указанной сущности с данным псевдонимом.

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
teamAlias String Псевдоним команды

Responses

STATUS 200 - Шаблоны сообщений слияния возвращены.

Пример ответа
    
{
    "mergeCommitMessage": "Сообщение для merge commit",
    "squashCommitMessage": "Сообщение для squash commit",
    "mergeRequestDescriptionTemplate": "Стандартный текст для описания запроса на слияние",
    "canEditMergeCommitMessage": true
}
    
  

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

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


Метод для изменения шаблонов сообщений слияния

Метод доступен в Enterprise версии, а также на gitflic.ru

Компании: GET /company/{companyAlias}/merge-request/merge-request-template/edit

Команды: GET /team/{teamAlias}/merge-request/merge-request-template/edit

Запрос изменяет шаблоны сообщений слияния указанной сущности с данным псевдонимом и возвращает их.

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
teamAlias String Псевдоним команды

Request

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

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

Поле Тип Описание
mergeCommitMessage String Шаблон сообщения коммита слияния (merge commit)
squashCommitMessage String Шаблон сообщения слияния одним коммитом (squash commit)
mergeRequestDescriptionTemplate String Шаблон описания запроса на слияние
canEditMergeCommitMessage Boolean При значении true активна опция Разрешить редактирование шаблонных сообщений при выполнении слияния

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

{
    "mergeCommitMessage": "Сообщение для merge commit",
    "squashCommitMessage": "Сообщение для squash commit",
    "mergeRequestDescriptionTemplate": "Стандартный текст для описания запроса на слияние",
    "canEditMergeCommitMessage": true
}

Responses

STATUS 200 - Шаблоны сообщений слияния изменены и возвращены.

Пример ответа
    
{
    "mergeCommitMessage": "Сообщение для merge commit",
    "squashCommitMessage": "Сообщение для squash commit",
    "mergeRequestDescriptionTemplate": "Стандартный текст для описания запроса на слияние",
    "canEditMergeCommitMessage": true
}
    
  

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

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


Метод для применения настроек запросов на слияния к проектам

Метод доступен в Enterprise версии, а также на gitflic.ru

Компании: POST /company/{companyAlias}/merge-request/apply-settings-to-projects

Команды: POST /team/{teamAlias}/merge-request/apply-settings-to-projects

Запрос применяет настройки запросов на слияния ко всем проектам указанной сущности с данным псевдонимом.

Переменная пути запроса Тип Описание
companyAlias String Псевдоним компании
teamAlias String Псевдоним команды

Responses

STATUS 204 - Правила защиты окружений применены ко всем дочерним проектам:

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

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