Получить информацию о коммите
GET /repos/{username}/{reponame}/commits/{sha}
Описание
Возвращает полную информацию о конкретном коммите, включая автора, сообщение, статистику изменений и список затронутых файлов.
Токен
Требуется токен с правами на Чтение для Репозитория.
Заголовки
| Параметр | Обязательный | Описание |
|---|---|---|
accept | Нет | Тип содержимого ответа. Рекомендуется установить значение application/vnd.gitverse.object+json;version=latest |
Тело запроса
Для этого метода нет тела запроса. Все параметры передаются через URL.
Параметры запроса
| Поле | Тип | Описание |
|---|---|---|
username | Path | Имя владельца репозитория (обязательный) |
reponame | Path | Название репозитория (обязательный) |
sha | Path | Хеш коммита (обязательный) |
Пример запроса
curl -X GET "https://api.gitverse.ru/repos/user/APInewTestRepo4.3/commits/a1b2c3d4e5f6" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/vnd.gitverse.object+json;version=1"Ответ (200 OK)
{
"sha": "a1b2c3d4e5f6...",
"html_url": "https://gitverse.ru/user/APInewTestRepo4.3/commit/a1b2c3d4e5f6",
"created": "2025-07-28T10:00:00Z",
"author": {
"login": "user",
"email": "user@example.com",
"avatar_url": "https://gitverse.ru/avatars/user.jpg"
},
"committer": {
"login": "user",
"email": "user@example.com",
"avatar_url": "https://gitverse.ru/avatars/user.jpg"
},
"commit": {
"message": "Update README.md",
"author": {
"name": "Dmitry Borun",
"email": "user@example.com",
"date": "2025-07-28T10:00:00Z"
},
"committer": {
"name": "Dmitry Borun",
"email": "user@example.com",
"date": "2025-07-28T10:00:00Z"
},
"tree": {
"sha": "xyz987...",
"url": "https://api.gitverse.ru/repos/user/APInewTestRepo4.3/git/trees/xyz987"
},
"url": "https://api.gitverse.ru/repos/user/APInewTestRepo4.3/commits/a1b2c3d4e5f6"
},
"verification": {
"verified": false,
"reason": "gpg.error.not_signed_commit",
"signature": null,
"payload": null,
"verified_at": null
},
"parents": [
{
"sha": "prev_commit_sha",
"url": "https://api.gitverse.ru/repos/user/APInewTestRepo4.3/commits/prev_commit_sha",
"html_url": "https://gitverse.ru/user/APInewTestRepo4.3/commit/prev_commit_sha"
}
],
"stats": {
"additions": 5,
"deletions": 2,
"total": 7
},
"files": [
{
"filename": "README.md",
"status": "modified",
"additions": 5,
"deletions": 2,
"changes": 7,
"sha": "abc123...",
"patch": "@@ -1,3 +1,8 @@\n+Hello World",
"blob_url": "https://gitverse.ru/user/APInewTestRepo4.3/blob/main/README.md"
}
]
}Проверка подписи коммита
Объект verification содержит результат проверки криптографической подписи коммита.
| Поле | Тип | Описание |
|---|---|---|
verified | boolean | Признак успешной проверки подписи. Возвращает true, если подпись подтверждена, иначе — false. |
reason | string | Техническая причина результата проверки. Например, gpg.error.not_signed_commit означает, что коммит не содержит подписи. |
signature | string или null | Подпись, извлеченная из коммита. Возвращает null, если подпись отсутствует. |
payload | string или null | Данные, для которых была создана подпись. Возвращает null, если подписанные данные отсутствуют. |
verified_at | string или null | Дата и время проверки подписи в формате ISO 8601. Возвращает null, если время проверки отсутствует. |
Коды ответов
| Код | Статус | Описание |
|---|---|---|
200 | OK | Информация о коммите успешно получена |
400 | Bad Request | Неверный запрос: переданы некорректные параметры |
404 | Not Found | Коммит не найден |
409 | Conflict | Конфликт: несовместимость версий или некорректное состояние репозитория |
429 | Too Many Requests | Превышен лимит запросов |
500 | Internal Server Error | Внутренняя ошибка сервера |
Пример тела ошибки
При ответе 400 тело ответа имеет следующий вид:
{
"error": {
"code": "BAD_REQUEST",
"documentation_url": "https://gitverse.ru/docs/developers/public-api/",
"message": "The request format is invalid",
"status": 400
}
}