Создать метку в репозитории

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_idinteger / stringИдентификатор и глобальный ID узла (всегда null)
namestringНазвание
descriptionstringОписание
colorstringЦвет (hex без #)
defaultboolean / nullСоздана ли по умолчанию (всегда null)
exclusivebooleanПризнак исключительности
urlstringAPI-ссылка

Коды ответа

КодСтатусОписание
201CreatedМетка успешно создана
400Bad RequestНекорректные параметры запроса. Возможные причины:
• Название больше 20 символов
• Цвет не входит в палитру
• Описание длиннее 100 символов
• Имя не уникально в рамках репозитория
• Передано свойство исключительности exclusive: true, но название не содержит /
404Not FoundРесурс не найден либо нет доступа к нему (включая случаи отсутствия прав на создание метки)
422Unprocessable EntityОшибка валидации
500Internal Server ErrorВнутренняя ошибка сервера

Примечания

  • ролевая модель: Создавать метки могут пользователи с ролями, подразумевающими права на запись и выше (Владелец репозитория/организации, Совладелец, Администратор, Соавтор-запись и участники команд с правами Админ или Запись). Пользователи с правами только на чтение, гости и неавторизованные пользователи не имеют прав на создание меток;
  • для исключительных меток (exclusive: true) название обязательно должно содержать символ /, разделяющий область и имя метки (например, priority/high).