Массовое удаление задач

DELETE /repos/{owner}/{repo}/issues/bulk/delete

Описание

Метод DELETE удаляет задачи, выбранные явным списком идентификаторов и/или query-фильтрами списка задач.

Выбор задач задается в теле запроса (список идентификаторов) и/или query-фильтрами списка задач.

Ответ содержит только задачи, которые не удалось удалить, и список ошибок. Если все задачи удалены успешно, data — пустой массив.

Важно: учитывается приватность репозитория. Если репозиторий приватный, а запрос выполняется не владельцем, соавтором или участником команды с доступом к репозиторию, возвращается ошибка 404.

Токен

Требуется токен с правами на Запись для Репозитория.

Заголовки

ПараметрОбязательныйОписание
AcceptНетТип содержимого ответа. Рекомендуется установить значение application/vnd.gitverse.object+json;version=1
AuthorizationДаТокен доступа. Формат: Bearer <YOUR-TOKEN> или token <YOUR-TOKEN>
Content-TypeДаapplication/vnd.gitverse.object+json;version=1

Параметры

ПараметрГде передатьТипОбязательныйОписание
owner, repoпутьstringДаВладелец и имя репозитория.
statequerystringНетСостояние задач, по которому отбираются задачи.
qquerystringНетСтроковый фильтр по задачам.
labelsquerystringНетФильтр по меткам.
milestonesquerystringНетФильтр по вехам.
created_byquerystringНетФильтр по создателям задач.
assigned_byquerystringНетФильтр по исполнителям задач.
mentioned_byquerystringНетФильтр по упомянутым в задачах пользователям.
typequerystringНетФильтр по типу задачи.
sincequerystringНетФильтр по дате обновления (с этой даты).
beforequerystringНетФильтр по дате обновления (до этой даты).

Тело запроса

ПолеТипОбязательныйОписание
dataarrayНетЯвный список идентификаторов задач для удаления (integer).
exclude_issue_idsarrayНетСписок идентификаторов задач для исключения из выборки по фильтрам (integer).

Задачи удаляются либо по явному списку data, либо по query-фильтрам; exclude_issue_ids исключает задачи из выборки по фильтрам.

Пример запроса

curl -X DELETE "https://api.gitverse.ru/repos/user/my-repo/issues/bulk/delete" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/vnd.gitverse.object+json;version=1" \
  -H "Content-Type: application/vnd.gitverse.object+json;version=1" \
  -d '{
    "data": [101, 102, 103]
  }'

Замените YOUR_TOKEN на ваш личный токен доступа.

Пример ответа (200 OK)

При успешном выполнении сервер возвращает список задач, которые не удалось удалить. Если все задачи удалены успешно, возвращается объект с пустым массивом:

{
    "data": []
}

При частичной ошибке:

{
    "data": [
        {
            "issue": {
                "id": 1759,
                "number": 42,
                "title": "Исправить баг"
            },
            "errors": [
                {
                    "field": "",
                    "message": "Недостаточно прав для удаления задачи",
                    "reason": "FORBIDDEN"
                }
            ]
        }
    ]
}

Структура ответа

Ответ — объект IssueBulkResult. Полная структура описана в графе объектов, раздел 24.4.

ПолеТипОписание
dataarrayМассив объектов IssueBulkFailure: задачи, которые не удалось удалить

Каждый элемент массива data:

ПолеТипОписание
issueobjectКраткая информация о задаче: id, number, title (объект IssueBulkSummary)
errorsarrayСписок ошибок: field, message, reason (объекты IssueBulkFieldError)

Коды ответа

КодСтатусОписание
200OKМассовое удаление выполнено; в ответе — неудаляемые задачи (при наличии).
400Bad RequestНекорректные параметры запроса.
401UnauthorizedНе передан или невалиден токен авторизации.
403ForbiddenНет прав на доступ к репозиторию.
404Not FoundРепозиторий не найден или нет доступа.
422Unprocessable EntityОшибка валидации данных запроса.
500Internal Server ErrorВнутренняя ошибка сервера GitVerse.

Пример тела ошибки

При ответе 401 тело ответа имеет следующий вид:

{
  "error": {
    "code": "UNAUTHORIZED",
    "documentation_url": "https://gitverse.ru/docs/developers/public-api/",
    "message": "Authorization is required",
    "status": 401
  }
}