25. DELETE /repos/{username}/{reponame}/git/refs/{ref} — удалить git-ссылку
Описание
Удаляет git-ссылку из репозитория — ветку, тег или кастомную ссылку. Сам git-объект (коммит), на который ссылка указывала, не удаляется — он остается в git-базе и может быть снова доступен после создания новой ссылки на тот же SHA.
Эндпоинт запрещает удалять следующие ссылки:
- Default branch — основную ветку репозитория нельзя удалить через API.
- Protected branch — ветку с защитой нужно сначала разблокировать через настройки репозитория.
- Тег, привязанный к release — необходимо сначала удалить связанный релиз.
Параметры URL
| Параметр | Обязательный | Описание |
|---|---|---|
username | Да | Имя владельца репозитория (пользователь или организация) |
reponame | Да | Название репозитория без расширения .git |
ref | Да | Имя ссылки без префикса refs/. Примеры: heads/test, tags/v1.0.0, custom/my-ref |
Параметры запроса
Данный метод не принимает параметров в строке запроса.
Тело запроса
Не требуется.
Пример запроса
# Удалить ветку test-branch
curl -X DELETE "https://api.gitverse.ru/repos/user/APInewTestRepo/git/refs/heads/test-branch" \
-H "Authorization: Bearer YOUR_TOKEN"
# Удалить тег v0.9.0-beta
curl -X DELETE "https://api.gitverse.ru/repos/user/APInewTestRepo/git/refs/tags/v0.9.0-beta" \
-H "Authorization: Bearer YOUR_TOKEN"
# Удалить кастомную ссылку
curl -X DELETE "https://api.gitverse.ru/repos/user/APInewTestRepo/git/refs/custom/my-ref" \
-H "Authorization: Bearer YOUR_TOKEN"Ответ (204 No Content)
Ссылка успешно удалена. Тело ответа отсутствует.
Коды ответа
| Код | Статус | Описание |
|---|---|---|
| 204 | No Content | Ссылка успешно удалена |
| 409 | Conflict | Репозиторий пуст; либо удаляется тег, привязанный к существующему release |
| 422 | Unprocessable Entity | Параметр ref пуст или имеет некорректный формат; ссылка не существует; попытка удалить default branch; попытка удалить protected branch; попытка удалить системную ссылку |
| 500 | Internal Server Error | Внутренняя ошибка при удалении |
Примечания
- Операция необратима. Восстановить ссылку можно только повторно создав ее через
POST /repos/{username}/{reponame}/git/refsс тем же SHA. Если SHA не сохранен — ссылка может быть утеряна. - Удаляется только ссылка. Коммит, на который она указывала, остается в git-базе и может быть удален сборщиком мусора (gc) позднее, если на него никто не ссылается.
- Параметр
refпередается без префиксаrefs/: пишитеheads/test, неrefs/heads/test. - Имя может содержать символы
/(для веток видаfeature/auth): передавайте какheads/feature/auth.