Удаление файла в репозиторииBeta
Описание
Этот раздел документации описывает процесс удаления файла из репозитория через публичное API. Этот метод позволяет удалять файлы, указывая SHA хеш файла и ветку, в которой находится файл.
Общие замечания
- Для версий API указывайте заголовок
Accept
с соответствующей версией:
Accept: application/vnd.gitverse+json;version=1
- Для работы с приватными ресурсами требуется авторизация через
Bearer
токен:
Authorization: Bearer \{user_token}
- Базовый URL для всех конечных точек:
https://api.gitverse.ru
-
Если запрос завершается неудачно, API возвращает объект ошибки с кодом состояния HTTP и сообщением.
-
Все даты возвращаются в формате ISO 8601.
Описание метода: удаление файла
DELETE /public/api/repos/{username}/{reponame}/contents/{filename}
Параметры пути
{username}
— имя владельца репозитория;{reponame}
— название репозитория;{filename}
— путь к файлу, который будет удален (например,README.md
,src/main.go
).
Заголовки запроса
Content-Type: application/json
: указывает, что тело запроса будет в формате JSON;Accept: application/vnd.gitverse+json;version=1
: указывает версию API. В данном случае используется версия1
;Authorization: Bearer {user_token}
: токен авторизации пользователя, который удаляет файл.
Тело запроса
Тело запроса должно содержать JSON-объект с параметрами для удаления файла:
- sha (
string
, обязательно): SHA хеш текущего содержимого файла. Требуется для проверки, что файл не был изменён другим пользователем; - branch (
string
, опционально): имя существующей ветки, в которой находится файл. Если не указано, используется ветка по умолчанию (обычноmain
илиmaster
); - message (
string
, опционально): сообщение коммита для удаления файла; - new_branch (
string
, опционально): имя новой ветки, которая будет создана для этого изменения. Если указано, изменение будет выполнено в новой ветке; - signoff (
boolean
, опционально): добавлять ли подпись (Signed-off-by
) в коммит. По умолчаниюfalse
.
Пример тела запроса
{
"sha": "1a6731dcd606ebe6723a703d7f3e663bf0e35403",
"branch": "main",
"message": "Delete README.md",
"new_branch": "",
"signoff": true
}
Ответ сервера
Ответ содержит информацию об удалённом файле и связанном коммите.
Пример успешного ответа
{
"content": null,
"commit": {
"sha": "cc33bd2dd8f0812eafd7e4fd64998139169c6b05",
"node_id": "MDY6Q29tbWl0MTIzNDU2Nzg5OA==",
"url": "https://api.gitverse.ru/public/api/repos/example_user/russia/git/commits/cc33bd2dd8f0812eafd7e4fd64998139169c6b05",
"html_url": "https://gitverse.ru/example_user/russia/commit/cc33bd2dd8f0812eafd7e4fd64998139169c6b05",
"author": {
"name": "example_user",
"email": "qwe@mail.com",
"date": "2025-04-14T16:37:35+03:00"
},
"committer": {
"name": "example_user",
"email": "qwe@mail.com",
"date": "2025-04-14T16:37:35+03:00"
},
"message": "Delete README.md",
"tree": {
"sha": "eaf894a5ebd8e5a75aa2eecac4965ea86d2d571e",
"url": "https://api.gitverse.ru/public/api/repos/example_user/russia/git/trees/eaf894a5ebd8e5a75aa2eecac4965ea86d2d571e"
},
"parents": [
{
"sha": "abc123def456ghi789jkl012mno345pqr678stu901",
"url": "https://api.gitverse.ru/public/api/repos/example_user/russia/git/commits/abc123def456ghi789jkl012mno345pqr678stu901",
"html_url": "https://gitverse.ru/example_user/russia/commit/abc123def456ghi789jkl012mno345pqr678stu901"
}
]
}
}
Обработка ошибок
Если запрос завершается неудачно, API возвращает объект ошибки с кодом состояния HTTP и сообщением.
Пример ошибки
{
"error": "Unauthorized",
"message": "Authentication is required to access this resource.",
"status": 401
}
Возможные коды ошибок
400 Bad Request
: неверные параметры запроса (например, отсутствуют обязательные поля);401 Unauthorized
: необходима авторизация;403 Forbidden
: у пользователя нет прав на выполнение действия;404 Not Found
: репозиторий или файл не найдены;409 Conflict
: SHA хеш не совпадает с текущим состоянием файла;500 Internal Server Error
: внутренняя ошибка сервера.
Дополнительная информация
- Для удаления файла требуется авторизация через токен.
- Если параметр
branch
не указан, используется ветка по умолчанию (обычноmain
илиmaster
). - Если параметр
new_branch
указан, изменение будет выполнено в новой ветке. - Если SHA хеш файла не совпадает с текущим состоянием файла, запрос завершится ошибкой
409 Conflict
.
Если у вас возникнут вопросы или потребуется дополнительная информация, пожалуйста, обратитесь к документации API или свяжитесь с поддержкой.