24. GET /repos/{username}/{reponame}/git/ref/{ref} — получить git-ссылку по имени
Описание
Возвращает одну конкретную git-ссылку репозитория по ее полному имени. Используется когда вы точно знаете имя ветки, тега или кастомной ссылки и хотите получить SHA коммита, на который она указывает.
Если ссылки с таким именем не существует — возвращается 404 Not Found. В отличие от GET /git/matching-refs/{ref}, этот эндпоинт не выполняет поиск по префиксу: имя должно совпасть точно.
Параметры URL
| Параметр | Обязательный | Описание |
|---|---|---|
username | Да | Имя владельца репозитория (пользователь или организация) |
reponame | Да | Название репозитория без расширения .git |
ref | Да | Полное имя ссылки без префикса refs/. Примеры: heads/main, tags/v1.0.0, custom/my-ref |
Параметры запроса
Данный метод не принимает параметров в строке запроса.
Тело запроса
Не требуется.
Пример запроса
# Получить ветку main
curl -X GET "https://api.gitverse.ru/repos/user/APInewTestRepo/git/ref/heads/main" \
-H "Authorization: Bearer YOUR_TOKEN"
# Получить тег v1.0.0
curl -X GET "https://api.gitverse.ru/repos/user/APInewTestRepo/git/ref/tags/v1.0.0" \
-H "Authorization: Bearer YOUR_TOKEN"
# Получить ветку с символом "/" в имени
curl -X GET "https://api.gitverse.ru/repos/user/APInewTestRepo/git/ref/heads/feature/auth" \
-H "Authorization: Bearer YOUR_TOKEN"
# Получить кастомную ссылку
curl -X GET "https://api.gitverse.ru/repos/user/APInewTestRepo/git/ref/custom/my-ref" \
-H "Authorization: Bearer YOUR_TOKEN"Ответ (200 OK)
{
"ref": "refs/heads/main",
"url": "https://api.gitverse.ru/repos/user/APInewTestRepo/git/refs/heads/main",
"object": {
"type": "commit",
"sha": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2",
"url": "https://api.gitverse.ru/repos/user/APInewTestRepo/commits/a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2"
}
Формат ответа
application/vnd.gitverse.object+json;version=latest
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
ref | string | Полное имя ссылки, начиная с refs/ |
url | string (uri) | URL ссылки в Public API |
object.type | string | Тип git-объекта: commit для веток и обычных тегов; tag для аннотированных тегов |
object.sha | string | SHA-хеш git-объекта (40 символов) |
object.url | string (uri) | URL коммита: /repos/{username}/{reponame}/commits/{sha} |
Коды ответа
| Код | Статус | Описание |
|---|---|---|
| 200 | OK | Ссылка найдена и возвращена |
| 404 | Not Found | Параметр ref пуст или указанная ссылка не существует в репозитории |
| 409 | Conflict | Репозиторий пуст или git-репозиторий недоступен |
| 500 | Internal Server Error | Внутренняя ошибка при получении ссылки |
Примечания
- Эндпоинт требует точного указания имени ссылки. Запрос
GET /git/ref/heads/featвернет404, даже если в репозитории естьrefs/heads/feature/auth. Для поиска по префиксу используйтеGET /git/matching-refs/{ref}. - Параметр
refпередается без префиксаrefs/: пишитеheads/main, неrefs/heads/main. - Имя ветки может содержать символы
/— они передаются как есть:heads/feature/auth. - В возвращаемом объекте поле
refвсегда приходит с префиксомrefs/.