Коммиты


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

Поле Тип Описание
hash String Хэш коммита
message String Название коммита
shortMessage String Короткое название коммита
createdAt ZonedDateTime Дата создания коммита
committerIdent Object Данные последнего коммитера
authorIdent Object Данные автора коммита
user Object Данные пользователя

Описание структуры 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 Строки файла

Ознакомиться со структурой 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"
    }
}
    
  


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"
    }
}
    
  


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"
                }
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
    
  


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

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


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

GET /project/{ownerAlias}/{projectAlias}/commits?branchName={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"
                }
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
    
  


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

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