Ветки
Описание структуры 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": "
",
"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": "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": []
}
]
",
"addLineNumber": null,
"removeLineNumber": null,
"op": "none",
"type": "separator",
"links": []
},
{
"id": "eb418131bbe25cb0c386ef9d67aaaaaaaaaaaa521e0cb185b3906a909c0f0dcc-14-14",
"body": " as",
"highLightBody": "
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
- Данные по запросу не найдены.