Получить информацию о коммите

GET /repos/{username}/{reponame}/commits/{sha}

Описание

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

Токен

Требуется токен с правами на Чтение для Репозитория.

Заголовки

ПараметрОбязательныйОписание
acceptНетТип содержимого ответа. Рекомендуется установить значение application/vnd.gitverse.object+json;version=latest

Тело запроса

Для этого метода нет тела запроса. Все параметры передаются через URL.

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

ПолеТипОписание
usernamePathИмя владельца репозитория (обязательный)
reponamePathНазвание репозитория (обязательный)
shaPathХеш коммита (обязательный)

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

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 содержит результат проверки криптографической подписи коммита.

ПолеТипОписание
verifiedbooleanПризнак успешной проверки подписи. Возвращает true, если подпись подтверждена, иначе — false.
reasonstringТехническая причина результата проверки. Например, gpg.error.not_signed_commit означает, что коммит не содержит подписи.
signaturestring или nullПодпись, извлеченная из коммита. Возвращает null, если подпись отсутствует.
payloadstring или nullДанные, для которых была создана подпись. Возвращает null, если подписанные данные отсутствуют.
verified_atstring или nullДата и время проверки подписи в формате ISO 8601. Возвращает null, если время проверки отсутствует.

Коды ответов

КодСтатусОписание
200OKИнформация о коммите успешно получена
400Bad RequestНеверный запрос: переданы некорректные параметры
404Not FoundКоммит не найден
409ConflictКонфликт: несовместимость версий или некорректное состояние репозитория
429Too Many RequestsПревышен лимит запросов
500Internal Server ErrorВнутренняя ошибка сервера

Пример тела ошибки

При ответе 400 тело ответа имеет следующий вид:

{
  "error": {
    "code": "BAD_REQUEST",
    "documentation_url": "https://gitverse.ru/docs/developers/public-api/",
    "message": "The request format is invalid",
    "status": 400
  }
}