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/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 | Внутренняя ошибка сервера |