Массовое обновление задач
POST /repos/{owner}/{repo}/issues/bulk/update
Описание
Метод POST обновляет поля задач, выбранных явным списком идентификаторов и/или 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 | Да | Владелец и имя репозитория. |
state | query | string | Нет | Состояние задач, по которому отбираются задачи. |
q | query | string | Нет | Строковый фильтр по задачам. |
labels | query | string | Нет | Фильтр по меткам. |
milestones | query | string | Нет | Фильтр по вехам. |
created_by | query | string | Нет | Фильтр по создателям задач. |
assigned_by | query | string | Нет | Фильтр по исполнителям задач. |
mentioned_by | query | string | Нет | Фильтр по упомянутым в задачах пользователям. |
type | query | string | Нет | Фильтр по типу задачи. |
since | query | string | Нет | Фильтр по дате обновления (с этой даты). |
before | query | string | Нет | Фильтр по дате обновления (до этой даты). |
Тело запроса
Тело запроса обязательно. В нем задается выбор задач и действия обновления по полям.
Note
В текущей версии спецификации API поля тела запроса не описаны. Редактируемые в массовом режиме поля и их доступные значения можно получить методом Получить значения полей для массового обновления задач: состояние, тип задачи, исполнители, метки, проект, контрольный срок. Для каждого поля можно выбрать режим редактирования: заменить, добавить или снять выбранное.
Пример запроса
curl -X POST "https://api.gitverse.ru/repos/user/my-repo/issues/bulk/update?labels=bug" \
-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 '{ ... }'
Замените YOUR_TOKEN на ваш личный токен доступа, а тело запроса заполните в соответствии с редактируемыми полями.
Пример ответа (200 OK)
При успешном выполнении сервер возвращает список задач, при обработке которых возникли ошибки. Если все задачи обработаны успешно, возвращается объект с пустым массивом:
{
"data": []
}
При частичной ошибке обработки:
{
"data": [
{
"issue": {
"id": 1759,
"number": 42,
"title": "Исправить баг"
},
"errors": [
{
"field": "labels",
"message": "Метка с таким именем не найдена",
"reason": "LABEL_NOT_FOUND"
}
]
}
]
}
Структура ответа
Ответ — объект IssueBulkResult. Полная структура описана в графе объектов, раздел 24.4.
| Поле | Тип | Описание |
|---|---|---|
data | array | Массив объектов IssueBulkFailure: задачи, при обработке которых возникли ошибки |
Каждый элемент массива data:
| Поле | Тип | Описание |
|---|---|---|
issue | object | Краткая информация о задаче: id, number, title (объект IssueBulkSummary) |
errors | array | Список ошибок по полям: field, message, reason (объекты IssueBulkFieldError) |
Коды ответа
| Код | Статус | Описание |
|---|---|---|
200 | OK | Массовое обновление выполнено; в ответе — необработанные задачи (при наличии). |
400 | Bad Request | Некорректные параметры запроса. |
401 | Unauthorized | Не передан или невалиден токен авторизации. |
403 | Forbidden | Нет прав на доступ к репозиторию. |
404 | Not Found | Репозиторий не найден или нет доступа. |
422 | Unprocessable Entity | Ошибка валидации данных запроса. |
500 | Internal Server Error | Внутренняя ошибка сервера GitVerse. |
Пример тела ошибки
При ответе 401 тело ответа имеет следующий вид:
{
"error": {
"code": "UNAUTHORIZED",
"documentation_url": "https://gitverse.ru/docs/developers/public-api/",
"message": "Authorization is required",
"status": 401
}
}