Коммиты


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

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

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

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

Запрос Описание
GET /project/{userAlias}/{projectAlias}/commit/{commitId} Информация о коммите
Переменная пути запроса Тип Описание
userAlias String Псевдоним пользователя
projectAlias String Псевдоним проекта
commitId String ID коммита

Responses

STATUS 200 пример JSON:

Пример ответа
    
{
    "hash": "01baf9f63e0060a396f4ea69fab8b1cb3afa683c",
    "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-c8d7-46cc-9cdb-cea3dd8b6073",
        "username": "user",
        "name": name,
        "surname": subname,
        "fullName": "name subname",
        "avatar": "https://gitflic.ru/upload/img/d67527fd-fce4-408f-8109-6269d204abe6.jpg"
    }
}
    
  


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

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


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

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

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

Запрос Описание
GET /project/{userAlias}/{projectAlias}/commit/{commitId}/file Список файлов, затронутых коммитом
Переменная пути запроса Тип Описание
userAlias String Псевдоним пользователя
projectAlias String Псевдоним проекта
commitId String ID коммита

Responses

STATUS 200 Пример JSON:

Пример ответа
    
[
    {
        "id": "e64e5f3228f83d28daaccef563eb4d7466988315f39518f863deee8ebacd1bf0",
        "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": []
    },
    {
        "id": "13e29841e34bc141f8f31eead2f50ce21fd3d09dcf406776d844f6e65b80527c",
        "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": "36e6fe047847ce478368a46cc151c5762ff461fddd68e2c2bb0250c499be3e97",
        "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/{userAlias}/{projectAlias}/commit/{commitId}/diff?filePath={filePath}

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

Запрос Описание
GET /project/{userAlias}/{projectAlias}/commit/{commitId}/diff?filePath={filePath} Информация об изменениях в файле
Переменная пути запроса Тип Описание
userAlias String Псевдоним пользователя
projectAlias String Псевдоним проекта
commitId String ID коммита
filePath String Путь до файла

Responses

Пример ответа
    
{
    "id": "e64e5f3228f83d28daaccef563eb4d7466988315f39518f863deee8ebacd1bf0",
    "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": "e64e5f3228f83d28daaccef563eb4d7466988315f39518f863deee8ebacd1bf0-1-1-separator",
            "body": "@@ -1 +1,3 @@",
            "highLightBody": "@ -1 +1,3 @@",
            "addLineNumber": null,
            "removeLineNumber": null,
            "op": "none",
            "type": "separator"
        },
        {
            "id": "e64e5f3228f83d28daaccef563eb4d7466988315f39518f863deee8ebacd1bf0-1-1",
            "body": "-test",
            "highLightBody": "test",
            "addLineNumber": null,
            "removeLineNumber": 1,
            "op": "remove",
            "type": "line"
        },
        {
            "id": "e64e5f3228f83d28daaccef563eb4d7466988315f39518f863deee8ebacd1bf0-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": "e64e5f3228f83d28daaccef563eb4d7466988315f39518f863deee8ebacd1bf0-3-2",
            "body": "+test",
            "highLightBody": "test",
            "addLineNumber": 2,
            "removeLineNumber": null,
            "op": "add",
            "type": "line"
        },
        {
            "id": "e64e5f3228f83d28daaccef563eb4d7466988315f39518f863deee8ebacd1bf0-3-3",
            "body": "+",
            "highLightBody": "",
            "addLineNumber": 3,
            "removeLineNumber": null,
            "op": "add",
            "type": "line"
        },
        {
            "id": "e64e5f3228f83d28daaccef563eb4d7466988315f39518f863deee8ebacd1bf0-3-4",
            "body": "+Измененный файл",
            "highLightBody": "Измененный файл",
            "addLineNumber": 4,
            "removeLineNumber": null,
            "op": "add",
            "type": "line"
        },
        {
            "id": "e64e5f3228f83d28daaccef563eb4d7466988315f39518f863deee8ebacd1bf0-3-5",
            "body": "\\ No newline at end of file",
            "highLightBody": " No newline at end of file",
            "addLineNumber": 5,
            "removeLineNumber": 3,
            "op": "none",
            "type": "line"
        }
    ]
}
    
  



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

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

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

Запрос Описание
GET /project/{userAlias}/{projectAlias}/commit/{commitId}/for-file?filePath={filePath} Получить информацию о коммите по файлу
Переменная пути запроса Тип Описание
userAlias String Псевдоним пользователя
projectAlias String Псевдоним проекта
commitId String ID коммита
filePath String Путь до файла

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "hash": "01baf9f63e0060a396f4ea69fab8b1cb3afa683c",
    "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-c8d7-46cc-9cdb-cea3dd8b6073",
        "username": "user",
        "name": name,
        "surname": subname,
        "fullName": "name subname",
        "avatar": "https://gitflic.ru/upload/img/d67527fd-fce4-408f-8109-6269d204abe6.jpg"
    }
}
    
  


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

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


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

GET /project/{userAlias}/{projectAlias}/commits

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

Запрос Описание
GET /project/{userAlias}/{projectAlias}/commits Получить информацию о коммитах главной ветки проекта, по алиасу пользователя и проекта
Переменная пути запроса Тип Описание
userAlias String Пседоним пользователя
projectAlias String Псевдоним проекта

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "_embedded": {
        "commitList": [
            {
                "hash": "f24075cb2c2ded9f0e3695e7429133d1d8109930",
                "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-2307-481e-bb2c-624a59869252",
                    "username": "ExampleUser",
                    "name": "ExampleName",
                    "surname": "ExampleSurname",
                    "fullName": "ExampleName ExampleSurname",
                    "avatar": "https://gitflic.ru/upload/img/6ce797dd-0090-47f7-8d27-37a55d6c8057.jpg"
                }
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
    
  


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

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


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

GET /project/{userAlias}/{projectAlias}/commits/{branchName}

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

Запрос Описание
GET /project/{userAlias}/{projectAlias}/commits/{branchName} Получить информацию о коммитах ветки проекта, по алиасу пользователя, проекта и названию ветки
Переменная пути запроса Тип Описание
userAlias String Пседоним пользователя
projectAlias String Псевдоним проекта
branchName String Название ветки

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "_embedded": {
        "commitList": [
            {
                "hash": "f24075cb2c2ded9f0e3695e7429133d1d8109930",
                "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-2307-481e-bb2c-624a59869252",
                    "username": "ExampleUser",
                    "name": "ExampleName",
                    "surname": "ExampleSurname",
                    "fullName": "ExampleName ExampleSurname",
                    "avatar": "https://gitflic.ru/upload/img/6ce797dd-0090-47f7-8d27-37a55d6c8057.jpg"
                }
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
    
  


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

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