7. DELETE /repos/{owner}/{repo}/contents/{filename} — Удалить файл
Описание
Удаляет указанный файл из репозитория. Операция выполняется через создание нового коммита.
Поддерживается указание ветки, сообщения коммита и других параметров.
⚠️ Для удаления файла обязательно указывать SHA-хеш текущей версии файла (поле
shaв теле запроса).
Параметры URL
| Параметр | Обязательный | Описание |
|---|---|---|
owner | Да | Владелец репозитория (пользователь или организация) |
repo | Да | Название репозитория (без расширения .git) |
filename | Да | Путь к файлу в репозитории (например, docs/README.md) |
Параметры запроса
Данный метод не принимает параметров в строке запроса.
Тело запроса
Тело запроса обязательно и должно быть в формате JSON. Поддерживаемые поля:
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
message | string | Нет | Сообщение коммита (по умолчанию: "Delete file via API") |
branch | string | Нет | Целевая ветка (по умолчанию — ветка по умолчанию репозитория) |
sha | string | Да | SHA-хеш текущей версии удаляемого файла |
new_branch | string | Нет | Если указано — создается новая ветка на основе branch и в нее вносится изменение |
signoff | boolean | Нет | Добавить подпись Signed-off-by в коммит |
Пример запроса
curl -X DELETE "https://api.gitverse.ru/repos/alice/my-project/contents/docs/README.md" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/vnd.gitverse.object+json;version=1" \
-d '{
"message": "Remove outdated documentation",
"branch": "main",
"sha": "a1b2c3d4e5f67890..."
}'Ответ (200 OK)
Пример JSON-ответа:
{
"content": null,
"commit": {
"sha": "d4c3b2a1...",
"html_url": "https://gitverse.ru/alice/my-project/commit/d4c3b2a1...",
"author": {
"name": "Alice",
"email": "alice@example.com",
"date": "2025-10-15T12:00:00Z"
},
"committer": {
"name": "Alice",
"email": "alice@example.com",
"date": "2025-10-15T12:00:00Z"
},
"message": "Remove outdated documentation"
}
}Формат ответа
application/vnd.gitverse.object+json;version=1
Коды ответа
| Код | Статус | Описание |
|---|---|---|
| 200 | OK | Файл успешно удален |
| 400 | Bad Request | Некорректное тело запроса или отсутствует sha |
| 401 | Unauthorized | Не передан или недействителен токен авторизации |
| 403 | Forbidden | Нет прав на запись в репозиторий |
| 404 | Not Found | Репозиторий, файл или указанная ветка не найдены |
| 409 | Conflict | SHA не совпадает с текущей версией файла |
| 422 | Unprocessable Entity | Ошибка валидации (например, попытка удалить несуществующий файл) |
| 500 | Internal Server Error | Внутренняя ошибка сервера |