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

Ветки


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

Поле Тип Описание
name String Название ветки
fullName String Полное имя ветки
lastCommit Object Последний коммит
default Boolean Стандартная ветка
merged Boolean Слитая ветка
work Boolean Рабочая ветка

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

Поле Тип Описание
id String UUID правила защиты ветки
branchTemplate String Шаблон имени ветки по которому будет применяться защита
allowedToPush String Кому разрешено редактировать файлы в ветке. Возможные значения: NO_ONE - никому, DEVELOPER - разработчикам и выше, ADMINS - администраторам
allowedToMerge String Кому разрешено выполнять слияния. Возможные значения: NO_ONE - никому, DEVELOPER - разработчикам и выше, ADMINS - администраторам
allowForcePush Boolean Разрешен ли true или нет false push --force
codeOwnerApprovalRequired Boolean Запрашивать одобрение на слияние у владельцев кода true или нет false
autoMergeByDefault Boolean Включать автослияние по умолчанию true или нет false

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

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

GET /project/{ownerAlias}/{projectAlias}/branch

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

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

Responses

STATUS 200 пример JSON:

Пример ответа
    
{
    "_embedded": {
        "branchList": [
            {
                "name": "compareBranch",
                "fullName": "refs/heads/compareBranch",
                "lastCommit": {
                    "hash": "01baf9f63e0060aaaaaaaaaaaab8b1cb3afa683c",
                    "message": "Commit\n",
                    "shortMessage": "Commit",
                    "createdAt": "2022-04-26T13:38:14Z",
                    "committerIdent": {
                        "name": "User",
                        "avatar": "/static/image/avatar.jpg",
                        "emailAddress": "user@gmail.com",
                        "when": "2022-04-26T13:38:14Z"
                    },
                    "authorIdent": {
                        "name": "User",
                        "avatar": "/static/image/avatar.jpg",
                        "emailAddress": "user@gmail.com",
                        "when": "2022-04-26T13:38:14Z"
                    },
                    "user": {
                        "id": "a10b86a3-aaaa-aaaa-aaaa-cea3dd8b6073",
                        "username": "user",
                        "name": name,
                        "surname": surname,
                        "fullName": "name surname",
                        "avatar": "https://gitflic.ru/upload/img/d67527fd-aaaa-aaaa-aaaa-6269d204abe6.jpg"
                    },
                    "verificationResult": null
                },
                "default": false,
                "merged": false,
                "work": false
            },
            {
                "name": "newBranch",
                "fullName": "refs/heads/newBranch",
                "lastCommit": {
                    "hash": "bfeeb9719fa590aaaaaaaaaaaab99186dba14f82",
                    "message": "init\n",
                    "shortMessage": "init",
                    "createdAt": "2022-05-05T13:19:01Z",
                    "committerIdent": {
                        "name": "Ivan Ivanov",
                        "avatar": "/static/image/avatar.jpg",
                        "emailAddress": "user@mail.ru",
                        "when": "2022-05-05T13:19:01Z"
                    },
                    "authorIdent": {
                        "name": "Ivan Ivanov",
                        "avatar": "/static/image/avatar.jpg",
                        "emailAddress": "user@mail.ru",
                        "when": "2022-05-05T13:19:01Z"
                    },
                    "user": {
                        "id": "a10b86a3-aaaa-aaaa-aaaa-cea3dd8b6073",
                        "username": "user",
                        "name": name,
                        "surname": surname,
                        "fullName": "name surname",
                        "avatar": "https://gitflic.ru/upload/img/d67527fd-aaaa-aaaa-aaaa-6269d204abe6.jpg"
                    },
                    "verificationResult": null
                },
                "default": false,
                "merged": false,
                "work": false
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  

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

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


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

POST /project/{ownerAlias}/{projectAlias}/branch

Запрос создает ветку проекта и возвращает информацию о ней

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

Request

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

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

{
    "newBranch": "newBranch",
    "originBranch": "master"
}

Responses

STATUS 200 пример JSON:

Пример ответа
    
        {
                "name": "newBranch",
                "fullName": "refs/heads/newBranch",
                "lastCommit": {
                    "hash": "bfeeb9719fa590aaaaaaaaaaaab99186dba14f82",
                    "message": "init\n",
                    "shortMessage": "init",
                    "createdAt": "2022-05-05T13:19:01Z",
                    "committerIdent": {
                        "name": "Ivan Ivanov",
                        "avatar": "/static/image/avatar.jpg",
                        "emailAddress": "user@mail.ru",
                        "when": "2022-05-05T13:19:01Z"
                    },
                    "authorIdent": {
                        "name": "Ivan Ivanov",
                        "avatar": "/static/image/avatar.jpg",
                        "emailAddress": "user@mail.ru",
                        "when": "2022-05-05T13:19:01Z"
                    },
                    "user": {
                        "id": "a10b86a3-aaaa-aaaa-aaaa-cea3dd8b6073",
                        "username": "user",
                        "name": name,
                        "surname": surname,
                        "fullName": "name surname",
                        "avatar": "https://gitflic.ru/upload/img/d67527fd-aaaa-aaaa-aaaa-6269d204abe6.jpg"
                    },
                    "verificationResult": null
                },
                "default": false,
                "merged": false,
                "work": false
            }
    
  

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

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


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

GET /project/{ownerAlias}/{projectAlias}/branch?branchName={branchName}

Запрос возвращает информацию о ветке

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

Responses

STATUS 200 пример JSON:

Пример ответа
    
        {
                "name": "newBranch",
                "fullName": "refs/heads/newBranch",
                "lastCommit": {
                    "hash": "bfeeb9719fa590aaaaaaaaaaaab99186dba14f82",
                    "message": "init\n",
                    "shortMessage": "init",
                    "createdAt": "2022-05-05T13:19:01Z",
                    "committerIdent": {
                        "name": "Ivan Ivanov",
                        "avatar": "/static/image/avatar.jpg",
                        "emailAddress": "user@mail.ru",
                        "when": "2022-05-05T13:19:01Z"
                    },
                    "authorIdent": {
                        "name": "Ivan Ivanov",
                        "avatar": "/static/image/avatar.jpg",
                        "emailAddress": "user@mail.ru",
                        "when": "2022-05-05T13:19:01Z"
                    },
                    "user": {
                        "id": "a10b86a3-aaaa-aaaa-aaaa-cea3dd8b6073",
                        "username": "user",
                        "name": name,
                        "surname": surname,
                        "fullName": "name surname",
                        "avatar": "https://gitflic.ru/upload/img/d67527fd-aaaa-aaaa-aaaa-6269d204abe6.jpg"
                    },
                    "verificationResult": null
                },
                "default": false,
                "merged": false,
                "work": false
            }
    
  

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

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


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

GET `/project/{ownerAlias}/{projectAlias}/branch/default

Запрос возвращает стандартную ветку

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

Responses

STATUS 200 пример JSON:

Пример ответа
    
        {
                "name": "newBranch",
                "fullName": "refs/heads/newBranch",
                "lastCommit": {
                    "hash": "bfeeb9719fa590aaaaaaaaaaaab99186dba14f82",
                    "message": "init\n",
                    "shortMessage": "init",
                    "createdAt": "2022-05-05T13:19:01Z",
                    "committerIdent": {
                        "name": "Ivan Ivanov",
                        "avatar": "/static/image/avatar.jpg",
                        "emailAddress": "user@mail.ru",
                        "when": "2022-05-05T13:19:01Z"
                    },
                    "authorIdent": {
                        "name": "Ivan Ivanov",
                        "avatar": "/static/image/avatar.jpg",
                        "emailAddress": "user@mail.ru",
                        "when": "2022-05-05T13:19:01Z"
                    },
                    "user": {
                        "id": "a10b86a3-aaaa-aaaa-aaaa-cea3dd8b6073",
                        "username": "user",
                        "name": name,
                        "surname": surname,
                        "fullName": "name surname",
                        "avatar": "https://gitflic.ru/upload/img/d67527fd-aaaa-aaaa-aaaa-6269d204abe6.jpg"
                    },
                    "verificationResult": null
                },
                "default": true,
                "merged": false,
                "work": false
            }
    
  

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

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


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

GET /project/{ownerAlias}/{projectAlias}/branch/compare?compare={compareBranch}&base={baseBranch}

Сравнение веток, запрос возвращает массив измененных файлов

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта
projectAlias String Псевдоним проекта
compareBranch String Название сравниваемой ветки (Обязательный параметр)
baseBranch String Базовая ветка для сравнения (Необязательный параметр), в случае отсутствия данного параметра берется стандартная ветка

Responses

STATUS 200 пример JSON:

Пример ответа
    
    [
        {
            "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f",
            "newMode": "100644",
            "oldMode": "0",
            "newPath": "zzzz.txt",
            "oldPath": "/dev/null",
            "lastCommit": null,
            "addedLinesCount": 16,
            "removedLinesCount": 0,
            "fileName": "zzzz.txt",
            "filePath": "zzzz.txt",
            "fileExtension": "txt",
            "isImg": false,
            "isCollapsed": false,
            "isLarge": false,
            "isBinary": false,
            "changeType": null,
            "headers": [
                "diff --git a/zzzz.txt b/zzzz.txt",
                "new file mode 100644",
                "index 0000000..6ac4b12",
                "--- /dev/null",
                "+++ b/zzzz.txt"
            ],
            "lines": [
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-1-separator",
                    "body": "@@ -0,0 +1,16 @@",
                    "highLightBody": "@ -0,0 +1,16 @@",
                    "addLineNumber": null,
                    "removeLineNumber": null,
                    "op": "none",
                    "type": "separator",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-1",
                    "body": "+rewe",
                    "highLightBody": "rewe",
                    "addLineNumber": 1,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-2",
                    "body": "+\\wqe",
                    "highLightBody": "\\wqe",
                    "addLineNumber": 2,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-3",
                    "body": "+q",
                    "highLightBody": "q",
                    "addLineNumber": 3,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-4",
                    "body": "+eqw",
                    "highLightBody": "eqw",
                    "addLineNumber": 4,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-5",
                    "body": "+ew",
                    "highLightBody": "ew",
                    "addLineNumber": 5,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-6",
                    "body": "+qewwweeeeeee",
                    "highLightBody": "qewwweeeeeee",
                    "addLineNumber": 6,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-7",
                    "body": "+",
                    "highLightBody": "",
                    "addLineNumber": 7,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-8",
                    "body": "+eeee",
                    "highLightBody": "eeee",
                    "addLineNumber": 8,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-9",
                    "body": "+e",
                    "highLightBody": "e",
                    "addLineNumber": 9,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-10",
                    "body": "+e",
                    "highLightBody": "e",
                    "addLineNumber": 10,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-11",
                    "body": "+e",
                    "highLightBody": "e",
                    "addLineNumber": 11,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-12",
                    "body": "+e",
                    "highLightBody": "e",
                    "addLineNumber": 12,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-13",
                    "body": "+e",
                    "highLightBody": "e",
                    "addLineNumber": 13,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-14",
                    "body": "+e",
                    "highLightBody": "e",
                    "addLineNumber": 14,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-15",
                    "body": "+e",
                    "highLightBody": "e",
                    "addLineNumber": 15,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                },
                {
                    "id": "e4f732276a7f7029f3c8cc69cfaaaaaaaaaaaa15d3148ab6755ff796aafefa6f-0-16",
                    "body": "+e",
                    "highLightBody": "e",
                    "addLineNumber": 16,
                    "removeLineNumber": null,
                    "op": "add",
                    "type": "line",
                    "links": []
                }
            ],
            "links": []
        }
    ]
   

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

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


Метод для просмотра изменений файла между коммитами

GET /project/{ownerAlias}/{projectAlias}/branch/compare/file?filePath={filePath}&baseHash={baseHash}&compareHash={compareHash}

Сравнение изменений файла в различных коммитах. Возвращает массив строк, которые были изменены в файле.

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта
projectAlias String Псевдоним проекта
filePath String Путь до файла (Обязательный параметр)
baseHash String Базовый коммит (Обязательный параметр)
compareHash String Сравниваемый коммит (Обязательный параметр)

Responses

STATUS 200 пример JSON:

Пример ответа
    
    [
    {
        "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc",
        "newMode": "100644",
        "oldMode": "100644",
        "newPath": "some_File.txt",
        "oldPath": "some_File.txt",
        "lastCommit": null,
        "addedLinesCount": 2,
        "removedLinesCount": 9,
        "fileName": "some_File.txt",
        "filePath": "some_File.txt",
        "fileExtension": "txt",
        "isImg": false,
        "isCollapsed": false,
        "isLarge": false,
        "isBinary": false,
        "changeType": null,
        "headers": [
            "diff --git a/some_File.txt b/some_File.txt",
            "index a763375..4232afa 100644",
            "--- a/some_File.txt",
            "+++ b/some_File.txt"
        ],
        "lines": [
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-14-14-separator",
                "body": "@@ -14,13 +14,6 @@",
                "highLightBody": "@ -14,13 +14,6 @@",
                "addLineNumber": null,
                "removeLineNumber": null,
                "op": "none",
                "type": "separator",
                "links": []
            },
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-14-14",
                "body": " as",
                "highLightBody": "as",
                "addLineNumber": 14,
                "removeLineNumber": 14,
                "op": "none",
                "type": "line",
                "links": []
            },
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-15-15",
                "body": " ea",
                "highLightBody": "ea",
                "addLineNumber": 15,
                "removeLineNumber": 15,
                "op": "none",
                "type": "line",
                "links": []
            },
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-16-16",
                "body": " e",
                "highLightBody": "e",
                "addLineNumber": 16,
                "removeLineNumber": 16,
                "op": "none",
                "type": "line",
                "links": []
            },
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-17-17",
                "body": "-ase",
                "highLightBody": "ase",
                "addLineNumber": null,
                "removeLineNumber": 17,
                "op": "remove",
                "type": "line",
                "links": []
            },
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-18-17",
                "body": "-a",
                "highLightBody": "a",
                "addLineNumber": null,
                "removeLineNumber": 18,
                "op": "remove",
                "type": "line",
                "links": []
            },
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-19-17",
                "body": "-e",
                "highLightBody": "e",
                "addLineNumber": null,
                "removeLineNumber": 19,
                "op": "remove",
                "type": "line",
                "links": []
            },
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-20-17",
                "body": "-ae",
                "highLightBody": "ae",
                "addLineNumber": null,
                "removeLineNumber": 20,
                "op": "remove",
                "type": "line",
                "links": []
            },
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-21-17",
                "body": "-aeeeeeeeeeeeeeeeeeeeweqew",
                "highLightBody": "aeeeeeeeeeeeeeeeeeeeweqew",
                "addLineNumber": null,
                "removeLineNumber": 21,
                "op": "remove",
                "type": "line",
                "links": []
            },
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-22-17",
                "body": "-qe",
                "highLightBody": "qe",
                "addLineNumber": null,
                "removeLineNumber": 22,
                "op": "remove",
                "type": "line",
                "links": []
            },
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-23-17",
                "body": "-qw",
                "highLightBody": "qw",
                "addLineNumber": null,
                "removeLineNumber": 23,
                "op": "remove",
                "type": "line",
                "links": []
            },
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-24-17",
                "body": "-eqweqweqeqwe",
                "highLightBody": "eqweqweqeqwe",
                "addLineNumber": null,
                "removeLineNumber": 24,
                "op": "remove",
                "type": "line",
                "links": []
            },
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-25-17",
                "body": "-:wq",
                "highLightBody": ":wq",
                "addLineNumber": null,
                "removeLineNumber": 25,
                "op": "remove",
                "type": "line",
                "links": []
            },
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-26-17",
                "body": "+asea",
                "highLightBody": "asea",
                "addLineNumber": 17,
                "removeLineNumber": null,
                "op": "add",
                "type": "line",
                "links": []
            },
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-26-18",
                "body": "+",
                "highLightBody": "",
                "addLineNumber": 18,
                "removeLineNumber": null,
                "op": "add",
                "type": "line",
                "links": []
            },
            {
                "id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-26-19",
                "body": " ",
                "highLightBody": "",
                "addLineNumber": 19,
                "removeLineNumber": 26,
                "op": "none",
                "type": "line",
                "links": []
            }
        ],
        "links": []
      }
    ]
   

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

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


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

GET /project/{ownerAlias}/{projectAlias}/branch/commit?compareHash={compareHash}&baseHash={baseHash}

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

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта
projectAlias String Псевдоним проекта
baseHash String Базовый коммит (Обязательный параметр)
compareHash String Сравниваемый коммит (Обязательный параметр)

Для корректной работы метода baseHash должен быть старше compareHash

Responses

STATUS 200 пример JSON:

Пример ответа
    
{
    "_embedded": {
        "commitList": [
            {
                "hash": "f520f268217701aaaaaaaaaaaa66f83f38faaa8d",
                "message": "test message\n",
                "shortMessage": "test message",
                "createdAt": "2022-06-14T13:36:22Z",
                "committerIdent": {
                    "name": "User User",
                    "avatar": "/static/image/avatar.jpg",
                    "emailAddress": "User@gmail.com",
                    "when": "2022-06-14T13:36:22Z"
                },
                "authorIdent": {
                    "name": "User User",
                    "avatar": "/static/image/avatar.jpg",
                    "emailAddress": "User@gmail.com",
                    "when": "2022-06-14T13:36:22Z"
                },
                "user": {
                        "id": "a10b86a3-aaaa-aaaa-aaaa-cea3dd8b6073",
                        "username": "user",
                        "name": name,
                        "surname": surname,
                        "fullName": "name surname",
                        "avatar": "https://gitflic.ru/upload/img/d67527fd-aaaa-aaaa-aaaa-6269d204abe6.jpg"
                    }
            },
            {
                "hash": "f8db2f71d39ac7aaaaaaaaaaaa1feed315e89e24",
                "message": "message\n",
                "shortMessage": "message",
                "createdAt": "2022-06-14T13:13:51Z",
                "committerIdent": {
                    "name": "User User",
                    "avatar": "/static/image/avatar.jpg",
                    "emailAddress": "User@gmail.com",
                    "when": "2022-06-14T13:13:51Z"
                },
                "authorIdent": {
                    "name": "User User",
                    "avatar": "/static/image/avatar.jpg",
                    "emailAddress": "User@gmail.com",
                    "when": "2022-06-14T13:13:51Z"
                },
                "user": {
                        "id": "a10b86a3-aaaaa-aaaa-aaaa-cea3dd8b6073",
                        "username": "user",
                        "name": name,
                        "surname": surname,
                        "fullName": "name surname",
                        "avatar": "https://gitflic.ru/upload/img/d67527fd-aaaa-aaaa-aaaa-6269d204abe6.jpg"
                    }
            }
        ]
    },
    "page": {
        "size": 20,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
   

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

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


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

Проекта: GET /project/{ownerAlias}/{projectAlias}/branch-protection

Команды: GET /team/{teamAlias}/branch-protection

Компании: GET /company/{companyAlias}/branch-protection

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

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

Responses

STATUS 200 пример JSON:

Пример ответа
    
{
    "_embedded": {
        "branchProtectionApiModelList": [
            {
                "id": "f124e616-aaaa-aaaa-aaaa-f1679de98147",
                "branchTemplate": "master",
                "allowedToPush": "NO_ONE",
                "allowedToMerge": "DEVELOPER",
                "allowForcePush": true,
                "codeOwnerApprovalRequired": true,
                "autoMergeByDefault": true
            },
            {
                "id": "18422240-aaaa-aaaa-aaaa-1768add945fd",
                "branchTemplate": "master",
                "allowedToPush": "NO_ONE",
                "allowedToMerge": "ADMINS",
                "allowForcePush": true,
                "codeOwnerApprovalRequired": true,
                "autoMergeByDefault": true
            },
            {
                "id": "52711a33-aaaa-aaaa-aaaa-de1597ac9bed",
                "branchTemplate": "omega",
                "allowedToPush": "DEVELOPER",
                "allowedToMerge": "NO_ONE",
                "allowForcePush": false,
                "codeOwnerApprovalRequired": true,
                "autoMergeByDefault": false
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 3,
        "totalPages": 1,
        "number": 0
    }
}
   

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

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


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

Проекта: GET /project/{ownerAlias}/{projectAlias}/branch-protection/{branchProtectionUuid}

Команды: GET /team/{teamAlias}/branch-protection/{branchProtectionUuid}

Компании: GET /company/{companyAlias}/branch-protection/{branchProtectionUuid}

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

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

Responses

STATUS 200 пример JSON:

Пример ответа
    
{
    "id": "4ad476ab-aaaa-aaaa-aaaa-f71cfa36ba8e",
    "branchTemplate": "master",
    "allowedToPush": "DEVELOPER",
    "allowedToMerge": "ADMINS",
    "allowForcePush": true,
    "codeOwnerApprovalRequired": false,
    "autoMergeByDefault": false
}
   

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

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


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

Проекта: POST /project/{ownerAlias}/{projectAlias}/branch-protection

Команды: POST /team/{teamAlias}/branch-protection

Компании: POST /company/{companyAlias}/branch-protection

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

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

Request

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

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

Поле Тип Описание
branchTemplate String Обязательное поле. Шаблон имени ветки по которому будет применяться защита
allowedToPush String Обязательное поле. Кому разрешено редактировать файлы в ветке. Возможные значения: NO_ONE - никому, DEVELOPER - разработчикам и выше, ADMINS - администраторам и выше
allowedToMerge String Обязательное поле. Кому разрешено выполнять слияния. Возможные значения: NO_ONE - никому, DEVELOPER - разработчикам и выше, ADMINS - администраторам и выше
allowForcePush Boolean Необязательное поле. Разрешен ли true или нет false (по умолчанию) push --force
codeOwnerApprovalRequired Boolean Необязательное поле. Запрашивать одобрение на слияние у владельцев кода true или нет false (по умолчанию)
autoMergeByDefault Boolean Необязательное поле. Включать автослияние по умолчанию true или нет false (по умолчанию)

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

{
    "branchTemplate": "master",
    "allowedToPush": "NO_ONE",
    "allowedToMerge": "DEVELOPER",
    "allowForcePush": true,
    "codeOwnerApprovalRequired": true,
    "autoMergeByDefault": true
}

Responses

STATUS 200 пример JSON:

Пример ответа
    
{
    "id": "cb28225a-96f6-4396-b6e0-5e135e08f07c",
    "branchTemplate": "master",
    "allowedToPush": "NO_ONE",
    "allowedToMerge": "DEVELOPER",
    "allowForcePush": true,
    "codeOwnerApprovalRequired": true,
    "autoMergeByDefault": true
}
   

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

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


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

Проекта: PUT /project/{ownerAlias}/{projectAlias}/branch-protection/{branchProtectionUuid}

Команды: PUT /team/{teamAlias}/branch-protection/{branchProtectionUuid}

Компании: PUT /company/{companyAlias}/branch-protection/{branchProtectionUuid}

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

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

Request

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

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

Поле Тип Описание
allowedToPush String Кому разрешено редактировать файлы в ветке. Возможные значения: NO_ONE - никому, DEVELOPER - разработчикам и выше, ADMINS - администраторам и выше
allowedToMerge String Кому разрешено выполнять слияния. Возможные значения: NO_ONE - никому, DEVELOPER - разработчикам и выше, ADMINS - администраторам и выше
allowForcePush Boolean Разрешен ли true или нет false (по умолчанию) push --force
codeOwnerApprovalRequired Boolean Запрашивать одобрение на слияние у владельцев кода true или нет false (по умолчанию)
autoMergeByDefault Boolean Включать автослияние по умолчанию true или нет false (по умолчанию)

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

{
    "allowedToPush": "NO_ONE",
    "allowedToMerge": "DEVELOPER",
    "allowForcePush": true,
    "codeOwnerApprovalRequired": true,
    "autoMergeByDefault": true
}

Responses

STATUS 200 пример JSON:

Пример ответа
    
{
    "id": "cb28225a-96f6-4396-b6e0-5e135e08f07c",
    "branchTemplate": "master",
    "allowedToPush": "NO_ONE",
    "allowedToMerge": "DEVELOPER",
    "allowForcePush": true,
    "codeOwnerApprovalRequired": true,
    "autoMergeByDefault": true
}
   

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

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


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

Проекта: DELETE /project/{ownerAlias}/{projectAlias}/branch-protection/{branchProtectionUuid}

Команды: DELETE /team/{teamAlias}/branch-protection/{branchProtectionUuid}

Компании: DELETE /company/{companyAlias}/branch-protection/{branchProtectionUuid}

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

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

Responses

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

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

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