18. GET /repos/{owner}/{repo}/issues/{index}/timeline
— получить хронологию событий задачи
Описание
Возвращает хронологию всех событий и комментариев, связанных с задачей (issue) или с запросом на слияние (pr), включая:
- комментарии;
- изменение состояния (открыта/закрыта);
- назначение исполнителей;
- добавление/удаление меток и вех;
- упоминания в коммитах;
- изменения заголовка;
- привязку к другим задачам и т.д.
Поддерживается пагинация и фильтрация по временному диапазону.
На данный момент хронология событий доступна только для запросв на слияние (pr). Поддержка для задач (issues) будет добавлена позже.
Параметры URL
Параметр | Обязательный | Описание |
---|---|---|
owner | Да | Владелец репозитория (пользователь или организация) |
repo | Да | Название репозитория (без расширения .git ) |
index | Да | Индекс задачи или пул-реквеста в репозитории (целое число) |
Параметры запроса
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
page | integer | Нет | Номер страницы (по умолчанию: 1 ) |
per_page | integer | Нет | Количество элементов на странице (максимум: 50 , по умолчанию: 30 ) |
since | string | Нет | Только события, созданные после указанной даты (в формате RFC3339, например: 2025-01-01T00:00:00Z ) |
before | string | Нет | Только события, созданные до указанной даты (в формате RFC3339) |
⚠️ Параметры
since
иbefore
можно использовать одновременно для ограничения временного диапазона.
Тело запроса
Данный метод не требует тела запроса.
Пример запроса
curl -X GET "https://api.gitverse.ru/public/api/repos/gitverse-team/core-api/issues/42/timeline?since=2025-10-01T00:00:00Z&per_page=20" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/vnd.gitverse.object+json;version=1"
Ответ (200 OK)
Пример JSON-ответа:
[
{
"id": 1001,
"type": "commented",
"user": {
"login": "developer1",
"id": 789,
"avatar_url": "https://gitverse.ru/avatars/789.png",
"html_url": "https://gitverse.ru/developer1"
},
"created_at": "2025-10-01T14:30:00Z",
"body": "Спасибо за замечание! Исправим в ближайшем релизе.",
"html_url": "https://gitverse.ru/gitverse-team/core-api/issues/42#issuecomment-1001"
},
{
"id": 1002,
"type": "labeled",
"user": {
"login": "maintainer",
"id": 456,
"avatar_url": "https://gitverse.ru/avatars/456.png",
"html_url": "https://gitverse.ru/maintainer"
},
"created_at": "2025-10-01T14:35:00Z",
"label": {
"name": "bug",
"color": "d73a4a"
}
},
{
"id": 1003,
"type": "closed",
"user": {
"login": "maintainer",
"id": 456
},
"created_at": "2025-10-02T09:00:00Z"
}
]
💡 Типы событий (
type
) включают:commented
,labeled
,unlabeled
,assigned
,unassigned
,closed
,reopened
,renamed
,merged
,referenced
,milestoned
,demilestoned
и др.
Формат ответа
application/vnd.gitverse.object+json;version=1
Поля каждого события
Поле | Тип | Описание |
---|---|---|
id | integer | Уникальный идентификатор события |
type | string | Тип события (например, commented , labeled , closed ) |
user | object | Автор события |
created_at | string | Дата события (RFC3339) |
body | string | Текст комментария (только для type: commented ) |
label | object | Метка (только для labeled /unlabeled ) |
assignee | object | Назначенный пользователь (только для assigned /unassigned ) |
old_title / new_title | string | Старый и новый заголовок (для renamed ) |
html_url | string | Ссылка на событие в веб-интерфейсе (если применимо) |
📌 Полный список полей зависит от типа события. Неиспользуемые поля отсутствуют в ответе.
Коды ответа
Код | Статус | Описание |
---|---|---|
200 | OK | Хронология успешно получена |
400 | Bad Request | Некорректный формат параметров (например, неверная дата) |
401 | Unauthorized | Не передан или недействителен токен авторизации |
403 | Forbidden | Нет прав на чтение репозитория |
404 | Not Found | Репозиторий или задача с указанным индексом не найдены |
500 | Internal Server Error | Внутренняя ошибка сервера |