Публичный APIРепозитории7. DELETE /repos/{owner}/{repo}/contents/{filename} — удалить файл

7. DELETE /repos/{owner}/{repo}/contents/{filename} — Удалить файл

Описание

Удаляет указанный файл из репозитория. Операция выполняется через создание нового коммита.
Поддерживается указание ветки, сообщения коммита и других параметров.

⚠️ Для удаления файла обязательно указывать SHA-хеш текущей версии файла (поле sha в теле запроса).

Параметры URL

ПараметрОбязательныйОписание
ownerДаВладелец репозитория (пользователь или организация)
repoДаНазвание репозитория (без расширения .git)
filenameДаПуть к файлу в репозитории (например, docs/README.md)

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

Данный метод не принимает параметров в строке запроса.

Тело запроса

Тело запроса обязательно и должно быть в формате JSON. Поддерживаемые поля:

ПолеТипОбязательныйОписание
messagestringНетСообщение коммита (по умолчанию: "Delete file via API")
branchstringНетЦелевая ветка (по умолчанию — ветка по умолчанию репозитория)
shastringДаSHA-хеш текущей версии удаляемого файла
new_branchstringНетЕсли указано — создается новая ветка на основе branch и в нее вносится изменение
signoffbooleanНетДобавить подпись 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

Коды ответа

КодСтатусОписание
200OKФайл успешно удален
400Bad RequestНекорректное тело запроса или отсутствует sha
401UnauthorizedНе передан или недействителен токен авторизации
403ForbiddenНет прав на запись в репозиторий
404Not FoundРепозиторий, файл или указанная ветка не найдены
409ConflictSHA не совпадает с текущей версией файла
422Unprocessable EntityОшибка валидации (например, попытка удалить несуществующий файл)
500Internal Server ErrorВнутренняя ошибка сервера