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

POST /repos/{owner}/{repo}/issues/{issue_number}/reactions

Описание

Метод POST устанавливает (добавляет) реакцию на задачу в репозитории. В теле запроса передается содержимое реакции (content), например +1, heart или rocket.

Если реакция с указанным содержимым уже существует, сервер вернет ее в ответе с кодом 200 OK; если реакции еще не было — создаст ее и вернет с кодом 201 Created.

Метод применяется для выражения отношения к задаче в интерфейсе и для интеграции с внешними системами.

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

Примечание: ручка работает только с задачами и только при включенном новом трекере задач; для pull request возвращается 422 Unprocessable Entity. Удаление реакции задачи отдельно не опубликовано.

Заголовки

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

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

ПараметрТипОбязательныйОписание
ownerstringДаВладелец репозитория (логин пользователя или имя организации)
repostringДаНазвание репозитория (без расширения .git)
issue_numberintegerДаНомер задачи

Тело запроса

ПараметрТипОбязательныйОписание
contentstringДаСодержимое (код) реакции, например +1, heart или rocket.

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

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

Замените YOUR_TOKEN на ваш личный токен доступа.

Пример ответа (201 Created)

При успешном создании сервер возвращает созданную реакцию:

{
    "id": 7772,
    "content": "+1",
    "user": {
        "login": "user_42",
        "id": 516,
        "avatar_url": "https://gitverse.ru/avatars/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
        "url": "https://api.gitverse.ru/users/user_42",
        "html_url": "https://gitverse.ru/user_42",
        "followers_url": "https://api.gitverse.ru/users/user_42/followers",
        "following_url": "https://api.gitverse.ru/users/user_42/following{/other_user}",
        "organizations_url": "https://api.gitverse.ru/users/user_42/orgs",
        "repos_url": "https://api.gitverse.ru/users/user_42/repos",
        "type": "User",
        "user_view_type": "public",
        "site_admin": false
    },
    "created_at": "2026-09-10T11:30:27Z"
}

Если реакция уже существовала, сервер вернет ее с кодом 200 OK и таким же телом.

Дополнительный пример запроса с реакцией heart:

-d '{"content": "heart"}'

Структура ответа

Ответ — объект Reaction (реакция). Полная структура описана в графе объектов, раздел «Объект Reaction».

На корневом уровне объект содержит:

ПолеТипОписание
idintegerИдентификатор реакции
contentstringТип реакции
userobjectПользователь, поставивший реакцию (см. User)
created_atstring (date-time)Дата создания

Коды ответа

КодСтатусОписание
200OKРеакция уже существовала, возвращена.
201CreatedРеакция успешно создана.
400Bad RequestНекорректные параметры запроса.
401UnauthorizedНе передан или невалиден токен авторизации.
403ForbiddenНет прав на доступ к репозиторию.
404Not FoundЗадача или репозиторий не найдены.
422Unprocessable EntityОшибка валидации данных.
500Internal Server ErrorВнутренняя ошибка сервера GitVerse.