Создать метку в репозитории
POST /repos/{owner}/{repo}/labels
Описание метода
Метод POST позволяет создать новую метку в указанном репозитории.
⚠️ Предупреждение: должна учитываться ролевая модель действия создания метки. Если запрос приходит от пользователя без прав на создание метки в репозитории, возвращается ошибка
404 Not Found.
Токен
Требуется токен с правами на Запись для Репозитория.
Заголовки запроса
| Параметр | Обязательный | Описание |
|---|---|---|
Accept | Нет | Тип представления. Рекомендуется устанавливать значение application/vnd.gitverse.object+json;version=1 |
Authorization | Да | Для аутентификации используется токен доступа. Формат: Bearer <YOUR-TOKEN> или token <YOUR-TOKEN> |
Content-Type | Да | Тип содержимого запроса: application/json |
Параметры пути
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
owner | Да | string | Имя владельца репозитория (пользователя или организации) |
repo | Да | string | Название репозитория |
Параметры запроса
Данный метод не поддерживает параметры запроса (query parameters).
Тело запроса
Тело запроса должно содержать параметры создаваемой метки:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
name | Да | string | Название метки. Ограничение: максимум 20 символов |
color | Нет | string | Цвет метки в формате hex-кода, без символа #. Если цвет не указан, метке будет присвоен случайный цвет из палитры |
description | Нет | string | Описание метки. Ограничение: максимум 100 символов |
exclusive | Нет | boolean | Является ли метка исключительной (true/false) |
Пример запроса
curl -X POST "https://api.gitverse.ru/repos/user123/repo123/labels" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "Accept: application/vnd.gitverse.object+json;version=1" \
-H "Content-Type: application/json" \
-d '{
"name": "Bug",
"color": "f29513",
"description": "Что-то работает не так",
"exclusive": false
}'Пример ответа (201 Created)
В ответе возвращается созданный объект метки:
{
"id": 53269,
"name": "new_label",
"exclusive": false,
"is_archived": false,
"id": 53269,
"name": "new_label",
"exclusive": false,
"is_archived": false,
"color": "f29513",
"description": "Тестовая метка",
"url": "https://gv15-api.gvtools.ru/labels/53269"
"description": "Тестовая метка",
"url": "https://gv15-api.gvtools.ru/labels/53269"
}Структура ответа
Ответ — объект Label (созданная метка). Полная структура описана в графе объектов, раздел «Объект Label».
На корневом уровне объект содержит:
| Поле | Тип | Описание |
|---|---|---|
id, node_id | integer / string | Идентификатор и глобальный ID узла (всегда null) |
name | string | Название |
description | string | Описание |
color | string | Цвет (hex без #) |
default | boolean / null | Создана ли по умолчанию (всегда null) |
exclusive | boolean | Признак исключительности |
url | string | API-ссылка |
Коды ответа
| Код | Статус | Описание |
|---|---|---|
201 | Created | Метка успешно создана |
400 | Bad Request | Некорректные параметры запроса. Возможные причины: • Название больше 20 символов • Цвет не входит в палитру • Описание длиннее 100 символов • Имя не уникально в рамках репозитория • Передано свойство исключительности exclusive: true, но название не содержит / |
404 | Not Found | Ресурс не найден либо нет доступа к нему (включая случаи отсутствия прав на создание метки) |
422 | Unprocessable Entity | Ошибка валидации |
500 | Internal Server Error | Внутренняя ошибка сервера |
Примечания
- ролевая модель: Создавать метки могут пользователи с ролями, подразумевающими права на запись и выше (Владелец репозитория/организации, Совладелец, Администратор, Соавтор-запись и участники команд с правами Админ или Запись). Пользователи с правами только на чтение, гости и неавторизованные пользователи не имеют прав на создание меток;
- для исключительных меток (
exclusive: true) название обязательно должно содержать символ/, разделяющий область и имя метки (например,priority/high).