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

POST /repos/{owner}/{repo}/issues/{index}/reactions/react

Описание метода

Метод POST позволяет установить реакцию — эмодзи-отклик на задачу в репозитории от имени текущего пользователя.

Реакции дают возможность быстро выразить отношение к задаче (согласие, несогласие, одобрение и т.д.) без создания отдельного комментария.

Метод используется для:

  • постановки реакции на задачу или запроса на слияние;
  • участия в голосованиях и опросах внутри задач или в запросе на слияние;
  • выражения отношения к задаче от имени текущего пользователя.

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

Если текущий пользователь уже ставил указанную реакцию на задачу, метод вернет ошибку 403 Forbidden.

Заголовки запроса

ПараметрОбязательныйОписание
AcceptНетТип содержимого ответа. Рекомендуется установить значение application/vnd.gitverse.object+json;version=1
Content-TypeДаТип содержимого запроса. Должен быть application/json
AuthorizationДаТокен авторизации в формате Bearer YOUR_TOKEN

Параметры пути

ПараметрОбязательныйОписание
ownerДаВладелец репозитория (логин пользователя или название организации)
repoДаНазвание репозитория
indexДаНомер задачи в репозитории. Это внутренний номер задачи, который отображается в интерфейсе (например, #123)

Параметры запроса

Данный метод не поддерживает параметры запроса.

Тело запроса

Тело запроса должно содержать объект с указанием типа реакции, которую нужно установить:

{
  "content": "string"
}

Описание полей:

ПолеТипОбязательныйОписание
contentstringДаТип реакции (эмодзи), которую нужно установить. Возможные значения: +1 (👍), -1 (👎), laugh (😄), hooray (🎉), rocket (🚀), eyes (👀)

Пример запроса

Запрос на установку реакции +1 (👍) на задачу номер 42 в репозитории my-project пользователя john-doe:

curl -X POST "https://api.gitverse.ru/repos/john-doe/my-project/issues/42/reactions/react" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/vnd.gitverse.object+json;version=1" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "+1"
  }'

Пояснение к примеру:

  • YOUR_TOKEN — замените на ваш реальный токен API с правами доступа к репозиторию;
  • john-doe — логин владельца репозитория;
  • my-project — название репозитория;
  • 42 — номер задачи;
  • content: "+1" — тип реакции, которую нужно установить.

Пример ответа (200 OK)

В ответе возвращается обновленный массив всех реакций на задаче, включая только что добавленную реакцию текущего пользователя:

[
  {
    "content": "+1",
    "userId": 71777,
    "userName": "ssofietta",
    "userFullName": "Софи",
    "createdAt": "2026-04-06T14:20:28Z",
    "userAvatar": "https://gitverse.ru/sc/avatars/366881ac41dfd51a15e0f64d0572939ff242730f48c7969abc954d55192d5112"
  },
  {
    "content": "hooray",
    "userId": 456,
    "userName": "alice",
    "userFullName": "Алиса Иванова",
    "createdAt": "2026-04-06T14:15:00Z",
    "userAvatar": "https://gitverse.ru/sc/avatars/alice-avatar.png"
  }
]

Описание полей ответа:

Ответ представляет собой массив объектов реакций. Каждый объект описывает одну реакцию, поставленную конкретным пользователем:

ПолеТипОписание
contentstringТип реакции (эмодзи). Возможные значения: +1 (👍), -1 (👎), laugh (😄), hooray (🎉), rocket (🚀), eyes (👀)
userIdintegerУникальный идентификатор пользователя, поставившего реакцию
userNamestringЛогин пользователя
userFullNamestringПолное имя пользователя
createdAtstring (ISO 8601)Дата и время создания реакции в формате UTC
userAvatarstringURL аватара пользователя

Формат ответа: application/vnd.gitverse.object+json;version=1

Коды ответа

КодСтатусОписание
200OKРеакция успешно установлена, возвращен обновленный массив всех реакций
400Bad RequestНекорректные параметры запроса (например, невалидное значение content)
401UnauthorizedНеобходима авторизация. Токен отсутствует или невалиден
403ForbiddenДоступ запрещен. Токен не имеет прав для доступа к репозиторию, либо текущий пользователь уже ставил указанную реакцию на эту задачу
404Not FoundУказанная задача, репозиторий или владелец не найдены
406Not AcceptableТип контента в заголовке Accept не поддерживается
429Too Many RequestsПревышен лимит запросов к API
500Internal Server ErrorВнутренняя ошибка сервера