Проекты


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

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

Поле Тип Описание
alias String Псевдоним владельца
type String Тип владельца проекта. Возможные значения: USER, TEAM и COMPANY

Метод получения списка проектов

GET /project?q={title}

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

Переменная пути запроса Тип Описание
q String Необязательный параметр. Название проекта

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "_embedded": {
        "projectList": [
           {
                "id": "06a973fb-aaaa-aaaa-aaaa-d72a21b16087",
                "title": "Project",
                "description": "Repository example",
                "alias": "project",
                "defaultBranch": "master",
                "workBranch": "master",
                "siteUrl": null,
                "owner": {
                    "alias": "team",
                    "type": "TEAM"
                },
                "language": "Markdown",
                "forEducation": false,
                "forkedFromId": "87c79f93-aaaa-aaaa-aaaa-60d08fbbca7b",
                "pullMirrorUrl": null,
                "allowedMemory": "4GB",
                "forkUrl": "https://gitflic.ru/project/team/project",
                "httpTransportUrl": "https://gitflic.ru/project/team/project.git",
                "sshTransportUrl": "git@gitflic.ru:team/project.git",
                "topics": [
                    "gitflic",
                    "docs"
                ],
                "private": false,
                "mirror": false
            },
            {
                "id": "0ed38c25-aaaa-aaaa-aaaa-462c972efcc5",
                "title": "gitflic",
                "description": "example",
                "alias": "gitflic",
                "defaultBranch": "master",
                "workBranch": "master",
                "siteUrl": null,
                "owner": {
                    "alias": "user",
                    "type": "USER"
                },
                "language": "java",
                "forEducation": false,
                "forkedFromId": null,
                "pullMirrorUrl": null,
                "allowedMemory": "4GB",
                "forkUrl": null,
                "httpTransportUrl": "https://gitflic.ru/project/user/gitflic.git",
                "sshTransportUrl": "git@gitflic.ru:user/gitflic.git",
                "topics": [
                    "gitflic"
                ],
                "private": false,
                "mirror": true
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  


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

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


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

GET /project/{ownerAlias}/{projectAlias}

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

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

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "id": "0ed38c25-aaaa-aaaa-aaaa-462c972efcc5",
    "title": "gitflic",
    "description": "example",
    "alias": "gitflic",
    "defaultBranch": "master",
    "workBranch": "master",
    "siteUrl": null,
    "owner": {
        "alias": "user",
        "type": "USER"
    },
    "language": "java",
    "forEducation": false,
    "forkedFromId": null,
    "pullMirrorUrl": null,
    "allowedMemory": "4GB",
    "forkUrl": null,
    "httpTransportUrl": "https://gitflic.ru/project/user/gitflic.git",
    "sshTransportUrl": "git@gitflic.ru:user/gitflic.git",
    "topics": [
        "gitflic"
    ],
    "private": false,
    "mirror": true
}
    
  


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

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


Метод получения проекта по uuid

GET /project/{projectUuid}

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

Переменная пути запроса Тип Описание
projectUuid String ID проекта

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "id": "90a99ad1-ea90-45bb-8e1d-9cba78b96ebf",
    "title": "projectname",
    "description": "test",
    "alias": "projectname",
    "defaultBranch": "master",
    "workBranch": "master",
    "siteUrl": null,
    "owner": {
        "alias": "gitflicuser",
        "type": "USER"
    },
    "language": "Markdown",
    "forEducation": false,
    "forkedFromId": null,
    "mirrorUrl": null,
    "mirrorType": null,
    "allowedMemory": "4GB",
    "forkUrl": null,
    "httpTransportUrl": "http://localhost:8080/project/gitflicuser/projectname.git",
    "sshTransportUrl": "git@localhost:8080:gitflicuser/projectname.git",
    "topics": [
        "gitflic"
    ],
    "mirror": false,
    "private": true
}
    
  


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

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


Метод получения списка проектов активного пользователя

GET /project/my?q={title}

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

Переменная пути запроса Тип Описание
q String Необязательный параметр. Название проекта

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "_embedded": {
        "projectList": [
           {
                "id": "06a973fb-aaaa-aaaa-aaaa-d72a21b16087",
                "title": "Project",
                "description": "Repository example",
                "alias": "project",
                "defaultBranch": "master",
                "workBranch": "master",
                "siteUrl": null,
                "owner": {
                    "alias": "user",
                    "type": "USER"
                },
                "language": "Markdown",
                "forEducation": false,
                "forkedFromId": "87c79f93-aaaa-aaaa-aaaa-60d08fbbca7b",
                "pullMirrorUrl": null,
                "allowedMemory": "4GB",
                "forkUrl": "https://gitflic.ru/project/team/project",
                "httpTransportUrl": "https://gitflic.ru/project/user/project.git",
                "sshTransportUrl": "git@gitflic.ru:team/project.git",
                "topics": [
                    "gitflic"
                ],
                "private": false,
                "mirror": false
            },
            {
                "id": "0ed38c25-aaaa-aaaa-aaaa-462c972efcc5",
                "title": "gitflic",
                "description": "example",
                "alias": "gitflic",
                "defaultBranch": "master",
                "workBranch": "master",
                "siteUrl": null,
                "owner": {
                    "alias": "user",
                    "type": "USER"
                },
                "language": "java",
                "forEducation": false,
                "forkedFromId": null,
                "pullMirrorUrl": null,
                "allowedMemory": "4GB",
                "forkUrl": null,
                "httpTransportUrl": "https://gitflic.ru/project/user/gitflic.git",
                "sshTransportUrl": "git@gitflic.ru:user/gitflic.git",
                "topics": [
                    "gitflic"
                ],
                "private": false,
                "mirror": true
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  


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

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


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

GET /project/shared?q={title}

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

Переменная пути запроса Тип Описание
q String Необязательный параметр. Название проекта

Responses

Пример ответа
    
{
    "_embedded": {
        "projectList": [
           {
                "id": "06a973fb-aaaa-aaaa-aaaa-d72a21b16087",
                "title": "Project",
                "description": "Repository example",
                "alias": "project",
                "defaultBranch": "master",
                "workBranch": "master",
                "siteUrl": null,
                "owner": {
                    "alias": "user",
                    "type": "USER"
                },
                "language": "Markdown",
                "forEducation": false,
                "forkedFromId": "87c79f93-aaaa-aaaa-aaaa-60d08fbbca7b",
                "pullMirrorUrl": null,
                "allowedMemory": "4GB",
                "forkUrl": "https://gitflic.ru/project/team/project",
                "httpTransportUrl": "https://gitflic.ru/project/user/project.git",
                "sshTransportUrl": "git@gitflic.ru:team/project.git",
                "topics": [
                    "gitflic"
                ],
                "private": false,
                "mirror": false
            },
            {
                "id": "0ed38c25-aaaa-aaaa-aaaa-462c972efcc5",
                "title": "gitflic",
                "description": "example",
                "alias": "gitflic",
                "defaultBranch": "master",
                "workBranch": "master",
                "siteUrl": null,
                "owner": {
                    "alias": "user",
                    "type": "USER"
                },
                "language": "java",
                "forEducation": false,
                "forkedFromId": null,
                "pullMirrorUrl": null,
                "allowedMemory": "4GB",
                "forkUrl": null,
                "httpTransportUrl": "https://gitflic.ru/project/user/gitflic.git",
                "sshTransportUrl": "git@gitflic.ru:user/gitflic.git",
                "topics": [
                    "gitflic"
                ],
                "private": false,
                "mirror": true
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  


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

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


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

GET /project/{ownerAlias}/{projectAlias}/forked

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

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

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "_embedded": {
        "projectList": [
            {
                "id": "a8c92b63-aaaa-aaaa-aaaa-9fbedc8e3876",
                "title": "project-форк",
                "description": "",
                "alias": "project-fork",
                "defaultBranch": "master",
                "workBranch": "master",
                "siteUrl": null,
                "owner": {
                    "alias": "adminuser",
                    "type": "USER"
                },
                "language": "Markdown",
                "forEducation": false,
                "forkedFromId": "d1e64fd6-aaaa-aaaa-aaaa-76e68db48ed0",
                "mirrorUrl": null,
                "mirrorType": null,
                "allowedMemory": "4GB",
                "forkUrl": "https://localhost:8080/project/adminuser/project",
                "httpTransportUrl": "https://localhost:8080/project/adminuser/project.git",
                "sshTransportUrl": "ssh://gitlocalhost:8080:22/adminuser/project-fork.git",
                "topics": [],
                "mirror": false,
                "private": false
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
    
  


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

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


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

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

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

Переменная пути запроса Тип Описание
ownerAlias String Псевдоним владельца проекта
projectAlias String Псевдоним проекта
filepath String Не обязательный параметр. Дополнительный путь к файлу
branch String Не обязательный параметр. Название ветки

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "path": "README.md",
    "baseName": "README",
    "filename": "README.md",
    "isTree": false,
    "lastCommitSha": null,
    "lastCommit": null,
    "timeDifference": null,
    "tree": false
},
{
    "path": "folder",
    "baseName": "folder",
    "filename": "folder",
    "isTree": true,
    "lastCommitSha": null,
    "lastCommit": null,
    "timeDifference": null,
    "tree": true
}
    
  


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

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


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

GET /project/{ownerAlias}/{projectAlias}/followers

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

Переменная пути запроса Тип Описание
ownerAlias 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",
                "cover": null
            },
            {
                "id": "6736240a-139d-4e62-be4f-cab026562172",
                "username": "superuser",
                "name": "Василий",
                "surname": "Сметанин",
                "fullName": "Василий Сметанин",
                "avatar": "https://gitflic.ru/static/image/avatar.jpg",
                "cover": null
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 2,
        "totalPages": 1,
        "number": 0
    }
}
    
  


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

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


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

GET /project/{ownerAlias}/{projectAlias}/stars

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

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

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "_embedded": {
        "userList": [
            {
                "id": "67248766-aaaa-aaaa-aaaa-624a59869252",
                "username": "test",
                "name": "testname",
                "surname": "testSURNAME",
                "fullName": "testname testSURNAME",
                "avatar": "https://gitflic.ru/upload/img/6ce797dd-aaaa-aaaa-aaaa-37a55d6c8057.jpg",
                "cover": null
            }
        ]
    },
    "page": {
        "size": 10,
        "totalElements": 1,
        "totalPages": 1,
        "number": 0
    }
}
    
  


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

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


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

GET /project/{projectUuid}/project-size

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

Responses

Данный запрос возвращает уникальный набор параметров:

Параметры ответа Тип Описание
readableDirectorySize String Размер git-репозитория
readableLfsFilesSize String Размер хранилища больших файлов
readableRegistryFilesSize String Размер файлов реестра пакетов
readableReleaseFilesSize String Размер файлов релизов
readableArtifactFilesSize String Размер файлов артефактов
readableFilledSpace String Суммарный занятый размер харнилища

STATUS 200 - пример JSON:

Пример ответа
    
{
    "readableDirectorySize": "3,4MB",
    "readableLfsFilesSize": 103,3MB",
    "readableRegistryFilesSize": "1,7MB",
    "readableReleaseFilesSize": "83,3MB",
    "readableArtifactFilesSize": "13,2MB",
    "readableFilledSpace": "204,9MB"
}
    
  


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

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


Метод создания проекта

POST /project

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

Request

Поддерживаемый формат JSON

Структура тела POST-запроса:

Передаваемые параметры Тип Описание
title String Название проекта
isPrivate Boolean Приватный проект или нет. Принимает true или false
alias String Псевдоним проекта
ownerAlias String Псевдоним владельца
ownerAliasType String Тип владельца проекта. Принимает USER, TEAM или COMPANY
language String Язык программирования
description String Описание проекта, необязательное поле

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

{
    "title": "my project",
    "isPrivate": "true",
    "alias": "example",
    "ownerAlias": "example-user",
    "ownerAliasType": "USER",
    "language": "java",
    "description": "description"
}

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "id": "2f58c38f-aaaa-aaaa-aaaa-3819c74b2c36",
    "title": "my project",
    "description": "description",
    "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",
    "topics": [
        "gitflic"
    ],
    "private": true,
    "mirror": false
}
    
  


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

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


Метод импорта проекта

POST /project/import-base

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

Request

Поддерживаемый формат JSON

Структура тела POST-запроса:

Передаваемые параметры Тип Описание
title String Название проекта
isPrivate Boolean Приватный проект или нет. Принимает true или false
alias String Псевдоним проекта
ownerAlias String Псевдоним владельца проекта
ownerAliasType String Тип владельца проекта. Принимает USER, TEAM или COMPANY
language String Язык программирования
gitSource String Ссылка на импортируемый проект
login String Логин. Необходим для импорта приватного проекта
token String Токен. Необходим для импорта приватного проекта
description String Описание проекта, необязательное поле

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

{
    "title": "example",
    "isPrivate": false,
    "alias": "import",
    "ownerAlias": "user",
    "ownerAliasType": "USER",
    "language": "java",
    "gitSource": "https://gitflic.ru/project/user/example.git",
    "login": "user",
    "token": "e2ff0fa4-aaaa-aaaa-aaaa-c86f7c0d0ab0",
    "description": "example"
}


Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "id": "4bfe5723-aaaa-aaaa-aaaa-347804f2d47e",
    "title": "example",
    "description": "example",
    "alias": "example",
    "defaultBranch": "master",
    "workBranch": "master",
    "siteUrl": null,
    "owner": {
        "alias": "user",
        "type": "USER"
    },
    "language": "java",
    "forEducation": false,
    "forkedFromId": null,
    "mirrorUrl": null,
    "mirrorType": null,
    "allowedMemory": "4GB",
    "forkUrl": null,
    "httpTransportUrl": "https://gitflic.ru/project/example/example.git",
    "sshTransportUrl": "git@gitflic.ru:example/example.git",
    "topics": [
        "gitflic"
    ],
    "private": false,
    "mirror": false
}
    
  


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

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


Метод создания зеркала

POST /project/create-mirror

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

Request

Поддерживаемый формат json

Структура тела POST-запроса:

Параметр Описание
title Название команды
description Описание, необязательный параметр
isPrivate Приватный проект или нет. Принимает true или false
alias Псевдоним проекта
ownerAlias Псевдоним владельца проекта
ownerAliasType Тип владельца проекта. Принимает USER, TEAM или COMPANY
language Язык программирования
gitSource Ссылка на git репозиторий
mirrorType Тип зеркала. Принимает PULL или PUSH
login Логин. Необходим для доступа к приватному проекту
token Токен. Необходим для доступа к приватному проекту
refSpecs Настройка RefSpec для зеркалирования конкретных веток или тегов есть
{
    "title": "mirror",
    "description": "mirror",
    "isPrivate": true,
    "alias": "mirror",
    "ownerAlias": "user",
    "ownerAliasType": "USER",
    "language": "java",
    "gitSource": "https://gitflic.ru/project/user/project.git",
    "mirrorType": "PULL",
    "login": "",
    "token": "",
    "refSpecs": ["refs/heads/master:refs/heads/main"]
}

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "id": "4ad463df-aaaa-aaaa-aaaa-137d65545fa3",
    "title": "example",
    "description": "example",
    "alias": "example",
    "defaultBranch": "master",
    "workBranch": "master",
    "siteUrl": null,
    "owner": {
        "alias": "example",
        "type": "USER"
    },
    "language": "Java",
    "forEducation": false,
    "forkedFromId": null,
    "mirrorUrl": "example.git",
    "mirrorType": "PULL",
    "allowedMemory": "4GB",
    "forkUrl": null,
    "httpTransportUrl": "http://gitflic.ru/project/example/example.git",
    "sshTransportUrl": "git@gitflic.ru:example/example.git",
    "topics": [
        "gitflic"
    ],
    "mirror": true,
    "private": true
}
    
  


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

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


Метод превращения существующего проекта в PUSH зеркало

POST /project/{ownerAlias}/{projectAlias}/to-push-mirror

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

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

Request

Поддерживаемый формат json

Структура тела POST-запроса:

Параметр Описание
source Ссылка на git репозиторий
login Логин. Необходим для доступа к приватному проекту
token Токен. Необходим для доступа к приватному проекту
controlString Контрольная строка. Имеет вид ownerAlias/projectAlias, где ownerAlias это псевдоним владельца проекта, а projectAlias это псевдоним проекта
{
    "source": "https://gitflic.ru/project/user/project.git",
    "login": "example",
    "token": "example",
    "controlString": "user/example"
}

Responses

STATUS 200 - пример JSON:

Пример ответа
    
    {
    "id": "4ad463df-aaaa-aaaa-aaaa-137d65545fa3",
    "title": "example",
    "description": "example",
    "alias": "example",
    "defaultBranch": "master",
    "workBranch": "master",
    "siteUrl": null,
    "owner": {
        "alias": "user",
        "type": "USER"
    },
    "language": "java",
    "forEducation": false,
    "forkedFromId": null,
    "mirrorUrl": "example.git",
    "mirrorType": "PUSH",
    "allowedMemory": "4GB",
    "forkUrl": null,
    "httpTransportUrl": "http://gitflic.ru/project/example/example.git",
    "sshTransportUrl": "git@gitflic.ru:example/example.git",
    "topics": [
        "gitflic"
    ],
    "mirror": true,
    "private": true
}
    
  


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

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


Метод обновления зеркала

POST /project/{ownerAlias}/{projectAlias}/manual-update

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

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

Responses

STATUS 200 - пример JSON:

Пример ответа
    
{
    "id": "4ad463df-aaaa-aaaa-aaaa-137d65545fa3",
    "title": "example",
    "description": "example",
    "alias": "example",
    "defaultBranch": "master",
    "workBranch": "master",
    "siteUrl": null,
    "owner": {
        "alias": "example",
        "type": "USER"
    },
    "language": "Java",
    "forEducation": false,
    "forkedFromId": null,
    "mirrorUrl": "example.git",
    "mirrorType": "PULL",
    "allowedMemory": "4GB",
    "forkUrl": null,
    "httpTransportUrl": "http://gitflic.ru/project/example/example.git",
    "sshTransportUrl": "git@gitflic.ru:example/example.git",
    "topics": [
        "gitflic"
    ],
    "mirror": true,
    "private": true
}
    
  


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

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


Метод создания форка проекта

POST /project/{ownerAlias}/{projectAlias}/create-fork

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

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

Request

Поддерживаемый формат json

Структура тела POST-запроса:

Параметр Описание
title Название проекта
description Описание, необязательный параметр
isPrivate Приватный проект или нет. Принимает true или false
alias Алиас проекта
ownerAlias Алиас владельца проекта
ownerAliasType Тип владельца проекта. Принимает USER, TEAM или COMPANY
language Язык программирования
{
    "title": "fork",
    "description": "fork description",
    "isPrivate": true,
    "alias": "fork",
    "ownerAlias": "user",
    "ownerAliasType": "USER",
    "language": "java",
}

Responses

STATUS 200 - пример JSON:

Пример ответа
    
        {
        "id": "4ad463df-aaaa-aaaa-aaaa-137d65545fa3",
        "title": "fork",
        "description": "fork description",
        "alias": "fork",
        "defaultBranch": "master",
        "workBranch": "master",
        "siteUrl": null,
        "owner": {
            "alias": "user,
            "type": "USER"
        },
        "language": "Java",
        "forEducation": false,
        "forkedFromId": "38ee2d74-aaaa-aaaa-aaaa-291aec22db4e"
        "mirrorUrl": null,
        "mirrorType": null,
        "allowedMemory": "4GB",
        "forkUrl": http://gitflic.ru/project/example/example.git,
        "httpTransportUrl": "http://gitflic.ru/project/user/fork.git",
        "sshTransportUrl": "git@gitflic.ru:user/fork.git",
        "topics": [],
        "mirror": true,
        "private": true
        }
    
  


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

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


Метод создания токена развертывания

POST /project/{ownerAlias}/{projectAlias}/setting/deploy-token/create

Запрос создает токен развертывания с указанным набором прав

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

Request

Поддерживаемый формат json

Структура тела POST-запроса:

Параметр Описание
expiresAt Дата истечения действия токена
title Наименование токена
scopes Массив с набором прав: REPOSITORY_READ - Pull репозитория, REPOSITORY_WRITE - Push репозитория
{
    "expiresAt" : "2030-01-01",
    "title" : "Токен через API",
    "scopes" : [
        "REPOSITORY_READ",
        "REPOSITORY_WRITE"
    ]
}

Responses

STATUS 200 - пример JSON:

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

Параметр Тип Описание
token String Токен развертывания
tokenUuid String UUID токена развертывания
expiresAt ZonedDateTime Дата истечения действия токена
title String Наименование токена
scopes List Массив с набором прав: REPOSITORY_READ - Pull репозитория, REPOSITORY_WRITE - Push репозитория
Пример ответа
    
{
    "token": "d36f5ae4-aaaa-aaaa-aaaa-5de5aae3dc3f",
    "tokenUuid": "b1f23eb4-aaaa-aaaa-aaaa-2f04e8564855",
    "expiresAt": "2025-01-01T00:00:00",
    "title": "Токен через API",
    "scopes": [
        "REPOSITORY_READ",
        "REPOSITORY_WRITE"
    ]
}
    
  


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

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


Метод запуска пользовательского скрипта

POST /project{ownerAlias}/{projectAlias}/script/{scriptUuid}

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

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

Responses

STATUS 200 - пример JSON:

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

Параметр Тип Описание
executionUuid String UUID результата выполнения
scriptUuid String UUID пользовательского скрипта
triggerType String Тип триггера. Всегда возвращает REQUEST
triggerName String Название триггера. Всегда возвращает rest-api
triggeringUserUuid String UUID пользователя, запустившего скрипт
executionStartTimestamp Long Время начала выполнения скрипта
executionEndTimestamp Long Время окончания выполнения скрипта
queueAppendTimestamp Long Время добавления в очередь на выполнение
result String Результат выполнения. Возможные значения: SUCCESS - успешное выполнение, RUNTIME_ERROR - ошибка во время выполнения, TIME_EXCEEDED - превышение время выполнения и UNKNOWN_ERROR - неизвестная ошибка
returnedValue String Возвращенное значение
Пример ответа
    
{
    "executionUuid": "f88973b1-aaaa-aaaa-aaaa-ced340466db6",
    "scriptUuid": "1c8722cf-aaaa-aaaa-aaaa-3ea880353a75",
    "triggerType": "REQUEST",
    "triggerName": "rest-api",
    "triggeringUserUuid": "44f4d17d-aaaa-aaaa-aaaa-805754a16fba",
    "executionStartTimestamp": 1729511625673,
    "executionEndTimestamp": 1729511626052,
    "queueAppendTimestamp": 1729511625673,
    "result": "SUCCESS",
    "returnedValue": null
}
    
  


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

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


Метод добавления пользователя в проект

POST /project/{projectUuid}/member/invite

Запрос добавляет пользователя в проект с указанной ролью

Переменная пути запроса Тип Описание
projectUuid String UUID проекта, в который необходимо добавить пользователя

Request

Поддерживаемый формат json

Структура тела POST-запроса:

Параметр Описание
userAlias Псевдоним пользователя, который будет добавлен в проект
role Роль, с которой будет добавлен пользователь. Возможные значения: GUEST - гость, REPORTER - докладчик, DEVELOPER - разработчик, ADMIN - администратор и OWNER - владелец
{
    "userAlias" : "user",
    "role" : "OWNER"
}

Responses

STATUS 200 - Пользователю отправлено приглашение в проект.

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

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


Метод изменения роли пользователя в проекте

PUT /project/{projectUuid}/member/role

Запрос изменяет роль пользователя в проекте

Переменная пути запроса Тип Описание
projectUuid String UUID проекта, в котором необходимо изменить роль пользователя

Request

Поддерживаемый формат json

Структура тела POST-запроса:

Параметр Описание
userAlias Псевдоним пользователя, роль которого будет изменена в проекте
role Новая роль участника проекта. Возможные значения: GUEST - гость, REPORTER - докладчик, DEVELOPER - разработчик, ADMIN - администратор и OWNER - владелец
{
    "userAlias" : "user",
    "role" : "OWNER"
}

Responses

STATUS 200 - Изменена роль пользователя.

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

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


Метод удаления пользователя из проекта

DELETE /project/{projectUuid}/member/{userAlias}

Запрос удаляет пользователя из проекта

Переменная пути запроса Тип Описание
projectUuid String UUID проекта, в котором необходимо удалить пользователя
userAlias String Псевдоним пользователя, которого необходимо удалить из проекта

Responses

STATUS 200 - Пользователь удален из проекта.

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

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


Метод добавления команды в проект

POST /project/{projectUuid}/member/team/invite

Запрос добавляет команду в проект с указанной ролью

Переменная пути запроса Тип Описание
projectUuid String UUID проекта, в который необходимо добавить команду

Request

Поддерживаемый формат json

Структура тела POST-запроса:

Параметр Описание
teamAlias Псевдоним команды, которая будет добавлена в проект
maxRole Роль, с которой будет добавлена команда. Возможные значения: GUEST - гость, REPORTER - докладчик, DEVELOPER - разработчик и ADMIN - администратор
{
    "teamAlias" : "team",
    "maxRole" : "DEVELOPER"
}

Responses

STATUS 200 - Команда добавлена в проект.

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

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


Метод изменения роли команды в проекте

PUT /project/{projectUuid}/member/team/role

Запрос изменяет роль команды в проекте

Переменная пути запроса Тип Описание
projectUuid String UUID проекта, в котором необходимо изменить роль команды

Request

Поддерживаемый формат json

Структура тела POST-запроса:

Параметр Описание
teamAlias Псевдоним команды, роль которой будет изменена в проекте
maxRole Новая роль команды проекта. Возможные значения: GUEST - гость, REPORTER - докладчик, DEVELOPER - разработчик и ADMIN - администратор
{
    "teamAlias" : "team",
    "maxRole" : "GUEST"
}

Responses

STATUS 200 - Изменена роль команды.

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

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


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

DELETE /project/{projectUuid}/member/team/{teamAlias}

Запрос удаляет команду из проекта

Переменная пути запроса Тип Описание
projectUuid String UUID проекта, в котором необходимо удалить команду
teamAlias String Псевдоним команды, которую необходимо удалить из проекта

Responses

STATUS 200 - Команда удалена из проекта.

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

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


Метод удаления проекта

DELETE /project/{projectUuid}/delete

Запрос удаляет проект

Переменная пути запроса Тип Описание
projectUuid String UUID проекта, который необходимо удалить

Responses

STATUS 200 - Проект удален.

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

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