GitFlic API


Проекты


Описание структуры JSON-объекта, описывающего проект
Поле Тип Описание
id String Уникальный ID проекта
title String Название проекта
description String Описание проекта
alias String Псевдоним проекта
ownerAlias String Псевдоним владельца проекта
defaultBranch String Дефолтная ветка проекта
workBranch String Рабочая ветка проекта
siteUrl String Сайт проекта
owner Object Владелец проекта, описание структуры
language String Язык проекта
forEducation Boolean Образовательный проект(true) или обычный(false)
forkedFromId String ID проекта от которого был сделан форк
pullMirrorUrl String URL зеркала
allowedMemory String Допустимая память под проект
forkUrl String URL проекта от которого был сделан форк
httpTransportUrl String Ссылка на клонирование проекта по HTTPS
sshTransportUrl String Ссылка на клонирование проекта по SSH
private Boolean Приватный проект(true) или публичный(false)
mirror Boolean Зеркало (true) или обычный проект(false)
Описание структуры JSON-объекта, описывающего владельца проекта
Поле Тип Описание
alias String Псевдоним владельца
type String Тип владельца проекта

GET /project

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

Запрос Описание
GET /project Список публичных проектов

Responses

STATUS 200 пример JSON:

Пример ответа
    
{
    "_embedded": {
        "projectModelList": [
           {
                "id": "06a973fb-8007-46c5-b2f0-d72a21b16087",
                "title": "bugs-bunny-fork",
                "description": "Forked repository example",
                "alias": "bugs-bunny-fork",
                "defaultBranch": "master",
                "workBranch": "master",
                "siteUrl": null,
                "owner": {
                    "alias": "team1",
                    "type": "TEAM"
                },
                "language": "Scala",
                "forEducation": false,
                "forkedFromId": "87c79f93-821f-4903-898f-60d08fbbca7b",
                "pullMirrorUrl": null,
                "allowedMemory": "4GB",
                "forkUrl": "https://gitflic.ru/project/team1/bugs-bunny",
                "httpTransportUrl": "https://gitflic.ru/project/team1/bugs-bunny-fork.git",
                "sshTransportUrl": "git@gitflic.ru:team1/bugs-bunny-fork.git",
                "private": false,
                "mirror": false
            },
            {
                "id": "0ed38c25-96cf-476a-a08f-462c972efcc5",
                "title": "jgit-cookbook",
                "description": "",
                "alias": "jgit-cookbook",
                "defaultBranch": "master",
                "workBranch": "master",
                "siteUrl": null,
                "owner": {
                    "alias": "user1",
                    "type": "USER"
                },
                "language": "Markdown",
                "forEducation": false,
                "forkedFromId": null,
                "pullMirrorUrl": "https://github.com/centic9/jgit-cookbook",
                "allowedMemory": "4GB",
                "forkUrl": null,
                "httpTransportUrl": "https://gitflic.ru/project/user1/jgit-cookbook.git",
                "sshTransportUrl": "git@gitflic.ru:user1/jgit-cookbook.git",
                "private": false,
                "mirror": true
            },
            {
                "id": "b40d6604-8294-4866-87b9-e85aea777676",
                "title": "jgit",
                "description": "",
                "alias": "jgit-2",
                "defaultBranch": "master",
                "workBranch": "master",
                "siteUrl": null,
                "owner": {
                    "alias": "user1",
                    "type": "USER"
                },
                "language": "Java",
                "forEducation": false,
                "forkedFromId": null,
                "pullMirrorUrl": null,
                "allowedMemory": "4GB",
                "forkUrl": null,
                "httpTransportUrl": "https://gitflic.ru/project/user1/jgit-2.git",
                "sshTransportUrl": "git@gitflic.ru:user1/jgit-2.git",
                "private": false,
                "mirror": true
            },
            {
                "id": "e96dc53b-4c9b-4c6e-9339-f6c81b11265e",
                "title": "новый проект-4",
                "description": "",
                "alias": "novyj-proekt-4",
                "defaultBranch": "master",
                "workBranch": "master",
                "siteUrl": null,
                "owner": {
                    "alias": "user2",
                    "type": "USER"
                },
                "language": "C++",
                "forEducation": false,
                "forkedFromId": null,
                "pullMirrorUrl": null,
                "allowedMemory": "4GB",
                "forkUrl": null,
                "httpTransportUrl": "https://gitflic.ru/project/user2/novyj-proekt-4.git",
                "sshTransportUrl": "git@gitflic.ru:user2/novyj-proekt-4.git",
                "private": false,
                "mirror": false
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 4,
        "totalPages": 1,
        "number": 0
    }
}
    
  


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

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


POST /project

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

Запрос Описание
POST /project Создать проект

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

Пример JSON тела
    
    {
        "title": "example",
        "isPrivate": "true",
        "alias": "example",
        "language": "java"
    }
    
  


Responses

STATUS 200 пример JSON:

{
    "id": "2f58c38f-2d9f-4b17-aef6-3819c74b2c36",
    "title": "example",
    "description": null,
    "alias": "example",
    "defaultBranch": "master",
    "workBranch": "master",
    "siteUrl": null,
    "owner": {
        "alias": "example-user",
        "type": "USER"
    },
    "language": "Java",
    "forEducation": false,
    "forkedFromId": null,
    "pullMirrorUrl": null,
    "allowedMemory": "4GB",
    "forkUrl": null,
    "httpTransportUrl": "https://gitflic.ru/project/example-user/example.git",
    "sshTransportUrl": "git@gitflic.ru:example-user/example.git",
    "private": true,
    "mirror": false
}


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

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


GET /project/my

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

Запрос Описание
GET /project/my Список личных проектов

Responses

STATUS 200 Пример JSON:

Пример ответа
    
{
    "_embedded": {
        "projectModelList": [
            {
                "id": "0ed38c25-96cf-476a-a08f-462c972efcc5",
                "title": "jgit-cookbook",
                "description": "",
                "alias": "jgit-cookbook",
                "defaultBranch": "master",
                "workBranch": "master",
                "siteUrl": null,
                "owner": {
                    "alias": "user1",
                    "type": "USER"
                },
                "language": "Markdown",
                "forEducation": false,
                "forkedFromId": null,
                "pullMirrorUrl": "https://github.com/centic9/jgit-cookbook",
                "allowedMemory": "4GB",
                "forkUrl": null,
                "httpTransportUrl": "https://gitflic.ru/project/user1/jgit-cookbook.git",
                "sshTransportUrl": "git@gitflic.ru:user1/jgit-cookbook.git",
                "private": false,
                "mirror": true
            },
            {
                "id": "b40d6604-8294-4866-87b9-e85aea777676",
                "title": "jgit",
                "description": "",
                "alias": "jgit-2",
                "defaultBranch": "master",
                "workBranch": "master",
                "siteUrl": null,
                "owner": {
                    "alias": "user1",
                    "type": "USER"
                },
                "language": "Java",
                "forEducation": false,
                "forkedFromId": null,
                "pullMirrorUrl": null,
                "allowedMemory": "4GB",
                "forkUrl": null,
                "httpTransportUrl": "https://gitflic.ru/project/user1/jgit-2.git",
                "sshTransportUrl": "git@gitflic.ru:user1/jgit-2.git",
                "private": false,
                "mirror": true
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  


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

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


GET /project/shared

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

Запрос Описание
GET /project/shared Список проектов с вашим участием

Responses

Пример ответа
    
{
    "_embedded": {
        "projectList": [
            {
                "id": "6518c55d-5c91-4d13-903c-7582d119eda8",
                "title": "мой нов",
                "description": "",
                "alias": "moj-nov",
                "defaultBranch": "master",
                "workBranch": "master",
                "siteUrl": null,
                "owner": {
                    "alias": "user2",
                    "type": "USER"
                },
                "language": "Markdown",
                "forEducation": false,
                "forkedFromId": null,
                "pullMirrorUrl": null,
                "allowedMemory": "4GB",
                "forkUrl": null,
                "httpTransportUrl": "https://gitflic.ru/project/user2/moj-nov.git",
                "sshTransportUrl": "git@gitflic.ru:user2/moj-nov.git",
                "private": false,
                "mirror": false
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
    
  



GET /project/{userAlias}/{projectAlias}

Запрос возвращает проект

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

Responses

STATUS 200 - пример JSON:

 {
                "id": "06a973fb-8007-46c5-b2f0-d72a21b16087",
                "title": "bugs-bunny-fork",
                "description": "Forked repository example",
                "alias": "bugs-bunny-fork",
                "defaultBranch": "master",
                "workBranch": "master",
                "siteUrl": null,
                "owner": {
                    "alias": "team1",
                    "type": "TEAM"
                },
                "language": "Scala",
                "forEducation": false,
                "forkedFromId": "87c79f93-821f-4903-898f-60d08fbbca7b",
                "pullMirrorUrl": null,
                "allowedMemory": "4GB",
                "forkUrl": "https://gitflic.ru/project/team1/bugs-bunny",
                "httpTransportUrl": "https://gitflic.ru/project/team1/bugs-bunny-fork.git",
                "sshTransportUrl": "git@gitflic.ru:team1/bugs-bunny-fork.git",
                "private": false,
                "mirror": false
 }
 


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

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


GET /project/{userAlias}/{projectAlias}/files?filepath={filepath}&branch={branchName}

Запрос возвращает файлы проекта

Запрос Описание
GET /project/{userAlias}/{projectAlias}/files?filepath={filepath}&branch={branchName} Получить информацию о файлах проекта по алиасу пользователя и проекта
Переменная пути запроса Тип Описание
userAlias String Пседоним пользователя
projectAlias String Псевдоним проекта
filepath String Дополнительный путь к файлу (Необязательный параметр)
branchName String Название ветки (Необязательный параметр)

Responses

STATUS 200 пример JSON:

Пример ответа
    
{
    "_embedded": {
        "apiFileInfoTupleList": [
            {
                "path": "example-path",
                "baseName": "example-path",
                "filename": "example-path",
                "isTree": true,
                "lastCommitHash": "3e44b94bb90a318088200f3b173436f3403fbcb5",
                "lastCommitMessage": "Initial commit\n",
                "commiter": {
                    "name": "exampleName",
                    "avatar": "/static/image/avatar.jpg",
                    "emailAddress": "examplename@gmail.com",
                    "when": "2023-05-05T11:22:14Z"
                },
                "author": {
                    "name": "exampleName",
                    "avatar": "/static/image/avatar.jpg",
                    "emailAddress": "examplename@gmail.com",
                    "when": "2023-05-05T11:22:14Z"
                },
                "createdAt": "2023-05-05T11:22:14Z",
                "tree": true
            },
            {
                "path": "README.txt",
                "baseName": "README",
                "filename": "README.txt",
                "isTree": false,
                "lastCommitHash": "3e44b94bb90a318088200f3b173436f3403fbcb5",
                "lastCommitMessage": "Initial commit\n",
                "commiter": {
                    "name": "exampleName",
                    "avatar": "/static/image/avatar.jpg",
                    "emailAddress": "examplename@gmail.com",
                    "when": "2023-05-05T11:22:14Z"
                },
                "author": {
                    "name": "exampleName",
                    "avatar": "/static/image/avatar.jpg",
                    "emailAddress": "examplename@gmail.com",
                    "when": "2023-05-05T11:22:14Z"
                },
                "createdAt": "2023-05-05T11:22:14Z",
                "tree": false
            },
            {
                "path": "README.md",
                "baseName": "README",
                "filename": "README.md",
                "isTree": false,
                "lastCommitHash": "3e44b94bb90a318088200f3b173436f3403fbcb5",
                "lastCommitMessage": "Initial commit\n",
                "commiter": {
                    "name": "exampleName",
                    "avatar": "/static/image/avatar.jpg",
                    "emailAddress": "examplename@gmail.com",
                    "when": "2023-05-05T11:22:14Z"
                },
                "author": {
                    "name": "exampleName",
                    "avatar": "/static/image/avatar.jpg",
                    "emailAddress": "examplename@gmail.com",
                    "when": "2023-05-05T11:22:14Z"
                },
                "createdAt": "2023-05-05T11:22:14Z",
                "tree": false
            }
        ]
    },
    "page": {
        "size": 3,
        "totalElements": 3,
        "totalPages": 1,
        "number": 0
    }
}
    
  

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

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


GET /project/{userAlias}/{projectAlias}/forked

Запрос возвращает форки проекта

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

Responses

STATUS 200 - пример JSON:

{
    "_embedded": {
        "projectList": [
            {
                "id": "f3f322a8-741c-43f8-bdf1-9b163a505a79",
                "title": "test-project",
                "description": "",
                "alias": "test-project",
                "ownerAlias": "test",
                "httpTransportUrl": "https://gitflic.ru/project/test/test-project.git",
                "sshTransportUrl": "git@gitflic.ru:test/test-project.git",
                "language": "Markdown",
                "selectorTitle": "test-project",
                "private": false,
                "selectorOwnerAlias": "test",
                "selectorId": "f3f322a8-741c-43f8-bdf1-9b163a505a79",
                "selectorAlias": "test-project",
                "isDeleted": false,
                "hexColor": null,
                "selectorColor": null,
                "selectorHash": null
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
 


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

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


GET /project/{userAlias}/{projectAlias}/followers

Запрос возвращает подписчиков проекта

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

Responses

STATUS 200 - пример JSON:

{
    "_embedded": {
        "userList": [
            {
                "id": "67248766-2307-481e-bb2c-624a59869252",
                "username": "test",
                "name": "testname",
                "surname": "testSURNAME",
                "fullName": "testname testSURNAME",
                "avatar": "https://gitflic.ru/upload/img/6ce797dd-0090-47f7-8d27-37a55d6c8057.jpg"
            },
            {
                "id": "6736240a-139d-4e62-be4f-cab026562172",
                "username": "superuser",
                "name": "Василий",
                "surname": "Сметанин",
                "fullName": "Василий Сметанин",
                "avatar": "https://gitflic.ru/static/image/avatar.jpg"
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
 


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

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


GET /project/{userAlias}/{projectAlias}/stars

Запрос возвращает пользователей, добавивших проект в избранное

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

Responses

STATUS 200 - пример JSON:

{
    "_embedded": {
        "userList": [
            {
                "id": "67248766-2307-481e-bb2c-624a59869252",
                "username": "test",
                "name": "testname",
                "surname": "testSURNAME",
                "fullName": "testname testSURNAME",
                "avatar": "https://gitflic.ru/upload/img/6ce797dd-0090-47f7-8d27-37a55d6c8057.jpg"
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
 


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

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


GET /project/{userAlias}/{projectAlias}/users-can-be-assigned

Запрос возвращает пользователей, которых можно назначить ответственными за запрос на слияние (с ролью в проекте девелопер и выше)

Запрос Описание
GET /project/{userAlias}/{projectAlias}/users-can-be-assigned Получить информацию о пользователях, которых можно назначить ответственными за запрос на слияние
Переменная пути запроса Тип Описание
userAlias String Пседоним пользователя
projectAlias String Псевдоним проекта

Responses

STATUS 200 - пример JSON:

{
    "_embedded": {
        "userList": [
            {
                "id": "67248766-2307-481e-bb2c-624a59869252",
                "username": "test",
                "name": "testname",
                "surname": "testSURNAME",
                "fullName": "testname testSURNAME",
                "avatar": "https://gitflic.ru/upload/img/6ce797dd-0090-47f7-8d27-37a55d6c8057.jpg"
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
 


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 - Данные по запросу не найдены.


GET /project/{userAlias}/{projectAlias}/labels

Запрос возвращает лейблы в проекте

Запрос Описание
GET /project/{userAlias}/{projectAlias}/labels Получить лейблы в проекте, по алиасу пользователя и проекта
Переменная пути запроса Тип Описание
userAlias String Пседоним пользователя
projectAlias String Псевдоним проекта

Responses

STATUS 200 - пример JSON:

{
    "_embedded": {
        "labelList": [
            {
                "id": "ee9ec3d3-b8dd-432d-b442-2e5b6232e034",
                "hexColor": "0D55A6",
                "title": "фича",
                "description": "Новая функциональность",
                "isTextLight": true
            },
            {
                "id": "676c2a50-46d4-4d20-b612-49332baddc79",
                "hexColor": "F58A07",
                "title": "ошибка",
                "description": "Ошибка в новой фиче",
                "isTextLight": false
            },
            {
                "id": "c2629e43-2aef-4587-b707-80b5ddbf6f58",
                "hexColor": "D00000",
                "title": "срочный фикс",
                "description": "Исправление инцидента",
                "isTextLight": true
            },
            {
                "id": "8b9cf425-92be-4912-a6c6-ca8d08910757",
                "hexColor": "FCF300",
                "title": "релиз",
                "description": "Доработки готовые для релиза",
                "isTextLight": false
            }
        ]
    },
    "page": {
        "size": 4,
        "totalElements": 4,
        "totalPages": 1,
        "number": 0
    }
}
 


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

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

В данной статье

Список публичных проектов

Список личных проектов

Список проектов с вашим участием

Получить информацию о проекте по алиасу пользователя

Получить информацию о файлах проекта по алиасу пользователя и проекта

Создать проект

Получить информацию о форках проекта по алиасу пользователя и проекта

Получить информацию о подписчиках проекта по алиасу пользователя и проекта

Получить информацию о пользователях, добавивших проект в избранное, по алиасу пользователя и проекта

Получить информацию о пользователях, которых можно назначить ответственными за запрос на слияние

Получить информацию о коммитах главной ветки проекта, по алиасу пользователя и проекта

Получить информацию о коммитах ветки проекта, по алиасу пользователя, проекта и названию ветки

Получить информацию о лейблах в проекте, по алиасу пользователя и проекта

Документация