Получить список коммитов репозитория

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

Описание

Возвращает список коммитов репозитория с возможностью фильтрации по ветке, пути, автору, дате и другим параметрам.

Токен

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

Заголовки

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

Тело запроса

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

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

ПолеТипОписание
usernamePathИмя владельца репозитория (обязательный)
reponamePathНазвание репозитория (обязательный)
shaQueryХеш коммита, имя ветки или тега для фильтрации (необязательный)
pathQueryФильтрация по пути к файлу/папке (например, src/main.go) (необязательный)
authorQueryФильтрация по автору коммита (необязательный)
committerQueryФильтрация по коммиттеру (необязательный)
sinceQueryТолько коммиты после указанной даты (формат ISO 8601, например: 2025-07-01T00:00:00Z) (необязательный)
untilQueryТолько коммиты до указанной даты (необязательный)
pageQueryНомер страницы (начиная с 1), по умолчанию: 1 (необязательный)
per_pageQueryКоличество результатов на странице (максимум 50), по умолчанию: 30 (необязательный)

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

curl -X GET "https://api.gitverse.ru/repos/user/APInewTestRepo4.3/commits?sha=main&page=1&per_page=10" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/vnd.gitverse.object+json;version=1"

Ответ (200 OK)

[
	{
		"sha": "a1b2c3d4e5f6...",
		"branch": "main",
		"html_url": "https://gitverse.ru/user/APInewTestRepo4.3/commit/a1b2c3d4e5f6",
		"author": {
			"login": "user",
			"email": "user@example.com",
			"avatar_url": "https://gitverse.ru/avatars/user.jpg"
		},
		"commit": {
			"message": "Update README.md",
			"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
		},
		"created": "2025-07-28T10:00:00Z",
		"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"
			}
		]
	}
]

Проверка подписи коммита

Объект 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Репозиторий или запрошенная ветка/коммит не найдены
429Too Many RequestsПревышен лимит запросов
500Internal Server ErrorВнутренняя ошибка сервера