Коммиты


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

Поле Тип Описание
hash String Хэш коммита
message String Название коммита
shortMessage String Короткое название коммита
createdAt ZonedDateTime Дата создания коммита
committerIdent Object Данные последнего коммитера
authorIdent Object Данные автора коммита
user Object Данные пользователя
verificationResult Object Объект, описывающий верификацию коммита
parentCommitIds Set (String) Массив, содержащий хэши родительских коммитов
parentCommitBranches Set (String) Массив, содержащий ветки родительских коммитов

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

Поле Тип Описание
verified Boolean Статус верификации. true - коммит верифицирован, false - верификация не пройдена
comment String Комментарий к подписи
keyId String ID ключа, которым подписан коммит

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

Поле Тип Описание
id String ID файла
newMode String Новый режим доступа файла
oldMode String Старый режим доступа файла
newPath String Новый путь файла
oldPath String Старый путь файла
lastCommit* Object Последний коммит, с которым файл был добавлен
addedLinesCount Integer Количество добавленных строк в файле
removedLinesCount Integer Количество удаленных строк в файле
fileName String Имя файла
filePath String Путь файла
fileExtension String Расширение файла
isImg Boolean Является ли файл изображением
isCollapsed Boolean Являются ли изменения файла сжатыми, и требующими ручной загрузки на странице
isLarge Boolean Являются ли изменения файла сжатыми, и требующими перехода к файлу для его просмотра
isBinary Boolean Является ли файл двоичным
changeType String Тип изменения файла
headers Массив String Заголовки файла
lines Массив Object Строки файла. С описанием массива можно ознакомиться здесь
links Deprecated Устаревший параметр. По умолчанию возвращает пустой массив

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

Поле Тип Описание
id String ID строки
body String Содержимое строки
highLightBody String Содержимое строки без обработки подсветкой кода
addLineNumber Integer Номер добавленной строки
removeLineNumber Integer Номер удаленной строки
op String Тип изменения строки. Возможные варианты: none - нет изменений, add - добавление строки и remove - удаление строки
type String Тип строки. Возможные варианты: line - строка кода и separator - строка, содержащая дополнительную информацию
links Depricated Устаревший параметр. По умолчанию возвращает пустой массив

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


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

GET /project/{ownerAlias}/{projectAlias}/commit/{commitId}

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

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

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "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": subname,
        "fullName": "name subname",
        "avatar": "https://gitflic.ru/upload/img/d67527fd-aaaa-aaaa-aaaa-6269d204abe6.jpg"
    },
    "verificationResult": {
        "verified": true,
        "comment": null,
        "keyId": "aabbccdd11223344"
    },
    "parentCommitIds": [
        "25752fe5b62327aaaaaaaaaaaa641fb124dd94b7"
    ],
    "parentCommitBranches": [
        "master"
    ]
}
    
  


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

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


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

GET /project/{ownerAlias}/{projectAlias}/commit/{commitId}/file

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

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

Responses

STATUS 200 - пример JSON:

Пример ответа
    
[
    {
        "id": "e64e5f3228f83d28daaccef563aaaaaaaaaaaa15f39518f863deee8ebacd1bf0",
        "newMode": "100644",
        "oldMode": "100644",
        "newPath": "file1.txt",
        "oldPath": "file1.txt",
        "lastCommit": null,
        "addedLinesCount": 0,
        "removedLinesCount": 0,
        "fileName": "file1.txt",
        "filePath": "file1.txt",
        "fileExtension": "txt",
        "isImg": false,
        "isCollapsed": false,
        "isLarge": false,
        "isBinary": false,
        "changeType": "MODIFY",
        "headers": [],
        "lines": [],
        "links": []
    },
    {
        "id": "13e29841e34bc141f8f31eead2aaaaaaaaaaaa9dcf406776d844f6e65b80527c",
        "newMode": "100644",
        "oldMode": "0",
        "newPath": "test2.txt",
        "oldPath": "/dev/null",
        "lastCommit": null,
        "addedLinesCount": 0,
        "removedLinesCount": 0,
        "fileName": "test2.txt",
        "filePath": "test2.txt",
        "fileExtension": "txt",
        "isImg": false,
        "isCollapsed": false,
        "isLarge": false,
        "isBinary": false,
        "changeType": "ADD",
        "headers": [],
        "lines": [],
        "links": []
    },
    {
        "id": "36e6fe047847ce478368a46cc1aaaaaaaaaaaafddd68e2c2bb0250c499be3e97",
        "newMode": "100644",
        "oldMode": "0",
        "newPath": "test3.txt",
        "oldPath": "/dev/null",
        "lastCommit": null,
        "addedLinesCount": 0,
        "removedLinesCount": 0,
        "fileName": "test3.txt",
        "filePath": "test3.txt",
        "fileExtension": "txt",
        "isImg": false,
        "isCollapsed": false,
        "isLarge": false,
        "isBinary": false,
        "changeType": "ADD",
        "headers": [],
        "lines": [],
        "links": []
    }
]
    
  


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

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


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

GET /project/{ownerAlias}/{projectAlias}/commit/{commitId}/diff?filePath={filePath}

Запрос возвращает информацию об изменениях в файле

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

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "id": "e64e5f3228f83d28daaccef563aaaaaaaaaaaa15f39518f863deee8ebacd1bf0",
    "newMode": "100644",
    "oldMode": "100644",
    "newPath": "file1.txt",
    "oldPath": "file1.txt",
    "lastCommit": null,
    "addedLinesCount": 3,
    "removedLinesCount": 1,
    "fileName": "file1.txt",
    "filePath": "file1.txt",
    "fileExtension": "txt",
    "isImg": false,
    "isCollapsed": false,
    "isLarge": false,
    "isBinary": false,
    "changeType": null,
    "headers": [
        "diff --git a/file1.txt b/file1.txt",
        "index 4961484..3b66f31 100644",
        "--- a/file1.txt",
        "+++ b/file1.txt"
    ],
    "lines": [
        {
            "id": "e64e5f3228f83d28daaccef563aaaaaaaaaaaa15f39518f863deee8ebacd1bf0-1-1-separator",
            "body": "@@ -1 +1,3 @@",
            "highLightBody": "@ -1 +1,3 @@",
            "addLineNumber": null,
            "removeLineNumber": null,
            "op": "none",
            "type": "separator"
        },
        {
            "id": "e64e5f3228f83d28daaccef563aaaaaaaaaaaa15f39518f863deee8ebacd1bf0-1-1",
            "body": "-test",
            "highLightBody": "test",
            "addLineNumber": null,
            "removeLineNumber": 1,
            "op": "remove",
            "type": "line"
        },
        {
            "id": "e64e5f3228f83d28daaccef563aaaaaaaaaaaa15f39518f863deee8ebacd1bf0-2-1",
            "body": "\\ No newline at end of file",
            "highLightBody": " No newline at end of file",
            "addLineNumber": 1,
            "removeLineNumber": 2,
            "op": "none",
            "type": "line"
        },
        {
            "id": "e64e5f3228f83d28daaccef563aaaaaaaaaaaa15f39518f863deee8ebacd1bf0-3-2",
            "body": "+test",
            "highLightBody": "test",
            "addLineNumber": 2,
            "removeLineNumber": null,
            "op": "add",
            "type": "line"
        },
        {
            "id": "e64e5f3228f83d28daaccef563aaaaaaaaaaaa15f39518f863deee8ebacd1bf0-3-3",
            "body": "+",
            "highLightBody": "",
            "addLineNumber": 3,
            "removeLineNumber": null,
            "op": "add",
            "type": "line"
        },
        {
            "id": "e64e5f3228f83d28daaccef563aaaaaaaaaaaa15f39518f863deee8ebacd1bf0-3-4",
            "body": "+Измененный файл",
            "highLightBody": "Измененный файл",
            "addLineNumber": 4,
            "removeLineNumber": null,
            "op": "add",
            "type": "line"
        },
        {
            "id": "e64e5f3228f83d28daaccef563aaaaaaaaaaaa15f39518f863deee8ebacd1bf0-3-5",
            "body": "\\ No newline at end of file",
            "highLightBody": " No newline at end of file",
            "addLineNumber": 5,
            "removeLineNumber": 3,
            "op": "none",
            "type": "line"
        }
    ]
}
    
  


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

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


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

GET /project/{ownerAlias}/{projectAlias}/commit/{commitId}/for-file?filePath={filePath}

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

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

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "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": subname,
        "fullName": "name subname",
        "avatar": "https://gitflic.ru/upload/img/d67527fd-aaaa-aaaa-aaaa-6269d204abe6.jpg"
    },
    "verificationResult": {
        "verified": true,
        "comment": null,
        "keyId": "aabbccdd11223344"
    },
    "parentCommitIds": [
        "25752fe5b62327aaaaaaaaaaaa641fb124dd94b7"
    ],
    "parentCommitBranches": [
        "master"
    ]
}
    
  


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

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


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

GET /project/{ownerAlias}/{projectAlias}/commits

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

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

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "_embedded": {
        "commitList": [
            {
                "hash": "f24075cb2c2dedaaaaaaaaaaaa9133d1d8109930",
                "message": "example-commit",
                "shortMessage": "example-commit",
                "createdAt": "2023-03-14T10:40:09Z",
                "committerIdent": {
                    "name": "Василий",
                    "avatar": "/static/image/avatar.jpg",
                    "emailAddress": "example@gmail.com",
                    "when": "2023-03-14T10:40:09Z"
                },
                "authorIdent": {
                    "name": "artem",
                    "avatar": "/static/image/avatar.jpg",
                    "emailAddress": "example@gmail.com",
                    "when": "2023-03-14T10:40:09Z"
                },
                "user": {
                    "id": "67248766-aaaa-aaaa-aaaa-624a59869252",
                    "username": "ExampleUser",
                    "name": "ExampleName",
                    "surname": "ExampleSurname",
                    "fullName": "ExampleName ExampleSurname",
                    "avatar": "https://gitflic.ru/upload/img/6ce797dd-aaaa-aaaa-aaaa-37a55d6c8057.jpg"
                },
                "verificationResult": {
                    "verified": true,
                    "comment": null,
                    "keyId": "aabbccdd11223344"
                },
                "parentCommitIds": [
                    "25752fe5b62327aaaaaaaaaaaa641fb124dd94b7"
                ],
                "parentCommitBranches": [
                    "master"
                ]
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
    
  


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

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


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

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

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

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

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "_embedded": {
        "commitList": [
            {
                "hash": "f24075cb2c2dedaaaaaaaaaaaa9133d1d8109930",
                "message": "example-commit",
                "shortMessage": "example-commit",
                "createdAt": "2023-03-14T10:40:09Z",
                "committerIdent": {
                    "name": "Василий",
                    "avatar": "/static/image/avatar.jpg",
                    "emailAddress": "example@gmail.com",
                    "when": "2023-03-14T10:40:09Z"
                },
                "authorIdent": {
                    "name": "artem",
                    "avatar": "/static/image/avatar.jpg",
                    "emailAddress": "example@gmail.com",
                    "when": "2023-03-14T10:40:09Z"
                },
                "user": {
                    "id": "67248766-aaaa-aaaa-aaaa-624a59869252",
                    "username": "ExampleUser",
                    "name": "ExampleName",
                    "surname": "ExampleSurname",
                    "fullName": "ExampleName ExampleSurname",
                    "avatar": "https://gitflic.ru/upload/img/6ce797dd-aaaa-aaaa-aaaa-37a55d6c8057.jpg"
                },
                "verificationResult": {
                    "verified": true,
                    "comment": null,
                    "keyId": "aabbccdd11223344"
                },
                "parentCommitIds": [
                    "25752fe5b62327aaaaaaaaaaaa641fb124dd94b7"
                ],
                "parentCommitBranches": [
                    "master"
                ]
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
    
  


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

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


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

GET /project/{ownerAlias}/{projectAlias}/commit/diff?sourceCommitId={sourceCommitId}&targetCommitId={targetCommitId}&ignoreCollapsed={true/false}

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

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта
projectAlias String Псевдоним проекта
sourceCommitId String Хэш исходного коммита
targetCommitId String Хэш целевого коммита
ignoreCollapsed Boolean Присылать ли информацию о большом файле false (по умолчанию) или нет true

Responses

STATUS 200 - пример JSON:

Пример ответа
    
        [
            {
                "id": "e0e336e503c9a733aaaaaaaaaaaa9308509ecde34986b555c617645e807d92c6",
                "newMode": "100644",
                "oldMode": "100644",
                "newPath": "admin/samlSso.ftlh",
                "oldPath": "admin/samlSso.ftlh",
                "lastCommit": null,
                "addedLinesCount": 1,
                "removedLinesCount": 1,
                "fileName": "samlSso.ftlh",
                "filePath": "admin/samlSso.ftlh",
                "fileExtension": "ftlh",
                "isImg": false,
                "isCollapsed": false,
                "isLarge": false,
                "isBinary": false,
                "changeType": null,
                "headers": [
                    "diff --git a/admin/src/main/resources/templates/admin/saml/samlSso.ftlh b/admin/src/main/resources/templates/admin/saml/samlSso.ftlh",
                    "index d037c96..b142de6 100644",
                    "--- a/admin/src/main/resources/templates/admin/saml/samlSso.ftlh",
                    "+++ b/admin/src/main/resources/templates/admin/saml/samlSso.ftlh"
                ],
                "lines": [
                    {
                        "id": "e0e336e503c9a733aaaaaaaaaaaa9308509ecde34986b555c617645e807d92c6-19-19-separator",
                        "body": "@@ -19,7 +19,7 @@",
                        "highLightBody": "@ -19,7 +19,7 @@",
                        "addLineNumber": null,
                        "removeLineNumber": null,
                        "op": "none",
                        "type": "separator",
                        "links": []
                    },
                    {
                        "id": "e0e336e503c9a733aaaaaaaaaaaa9308509ecde34986b555c617645e807d92c6-19-19",
                        "body": "                             <div class="d-flex flex-column mr-auto pl-0">",
                        "highLightBody": "                            <div class=\"d-flex flex-column mr-auto pl-0\">",
                        "addLineNumber": 19,
                        "removeLineNumber": 19,
                        "op": "none",
                        "type": "line",
                        "links": []
                    }
                ],
            }
        ]
    
  


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

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


Метод получения различий между тегами

GET /project/{ownerAlias}/{projectAlias}/tag/diff?sourceName={sourceName}&targetName={targetName}&ignoreCollapsed={true/false}

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

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта
projectAlias String Псевдоним проекта
sourceName String Имя исходного тега
targetName String Имя целевого тега
ignoreCollapsed Boolean Присылать ли информацию о большом файле false (по умолчанию) или нет true

Responses

STATUS 200 - пример JSON:

Пример ответа
    
        [
            {
                "id": "e0e336e503c9a733aaaaaaaaaaaa9308509ecde34986b555c617645e807d92c6",
                "newMode": "100644",
                "oldMode": "100644",
                "newPath": "admin/samlSso.ftlh",
                "oldPath": "admin/samlSso.ftlh",
                "lastCommit": null,
                "addedLinesCount": 1,
                "removedLinesCount": 1,
                "fileName": "samlSso.ftlh",
                "filePath": "admin/samlSso.ftlh",
                "fileExtension": "ftlh",
                "isImg": false,
                "isCollapsed": false,
                "isLarge": false,
                "isBinary": false,
                "changeType": null,
                "headers": [
                    "diff --git a/admin/src/main/resources/templates/admin/saml/samlSso.ftlh b/admin/src/main/resources/templates/admin/saml/samlSso.ftlh",
                    "index d037c96..b142de6 100644",
                    "--- a/admin/src/main/resources/templates/admin/saml/samlSso.ftlh",
                    "+++ b/admin/src/main/resources/templates/admin/saml/samlSso.ftlh"
                ],
                "lines": [
                    {
                        "id": "e0e336e503c9a733aaaaaaaaaaaa9308509ecde34986b555c617645e807d92c6-19-19-separator",
                        "body": "@@ -19,7 +19,7 @@",
                        "highLightBody": "@ -19,7 +19,7 @@",
                        "addLineNumber": null,
                        "removeLineNumber": null,
                        "op": "none",
                        "type": "separator",
                        "links": []
                    },
                    {
                        "id": "e0e336e503c9a733aaaaaaaaaaaa9308509ecde34986b555c617645e807d92c6-19-19",
                        "body": "                             <div class="d-flex flex-column mr-auto pl-0">",
                        "highLightBody": "                            <div class=\"d-flex flex-column mr-auto pl-0\">",
                        "addLineNumber": 19,
                        "removeLineNumber": 19,
                        "op": "none",
                        "type": "line",
                        "links": []
                    }
                ],
            }
        ]
    
  


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

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