Проекты
Этот раздел API описывает методы работы с проектами (Kanban-досками) репозитория: управление проектами и их колонками, а также привязка задач к проектам.
Проект — доска, состоящая из колонок — этапов рабочего процесса. Задача привязывается к проекту через поля project_id и project_status_id: первое указывает проект, второе — колонку, в которой находится задача (ее «статус» на доске).
Доступ к методам следует ролевой модели репозитория: читать проекты могут пользователи с доступом на чтение к репозиторию, создавать, изменять и удалять — пользователи с правами на запись.
Проекты
1. GET /repos/{owner}/{repo}/projects
Возвращает список проектов репозитория. Поддерживает пагинацию, фильтрацию по состоянию и поиск по названию/описанию.
2. POST /repos/{owner}/{repo}/projects
Создает новый проект. Опционально — со стандартным шаблоном Kanban-колонок.
3. GET /repos/{owner}/{repo}/projects/{project_id}
Возвращает проект со списком колонок.
4. PATCH /repos/{owner}/{repo}/projects/{project_id}
Обновляет проект: название, описание, приватность и состояние (open/closed).
5. DELETE /repos/{owner}/{repo}/projects/{project_id}
Удаляет проект вместе с колонками. Задачи не удаляются — только отвязываются от проекта.
Колонки проекта
6. POST /repos/{owner}/{repo}/projects/{project_id}/columns
Создает колонку на Kanban-доске проекта.
7. PATCH /repos/{owner}/{repo}/projects/{project_id}/columns/{column_id}
Обновляет колонку: название, цвет, позицию на доске.
8. DELETE /repos/{owner}/{repo}/projects/{project_id}/columns/{column_id}
Удаляет колонку из проекта. Колонку с задачами удалить нельзя.
Задачи и проекты
9. POST /repos/{owner}/{repo}/issues
Создает задачу и при необходимости сразу помещает ее в колонку проекта (поля project_id и project_status_id).
10. PATCH /repos/{owner}/{repo}/issues/{index}
Перемещает задачу в другой проект или колонку либо убирает ее из проекта.
Возможные ошибки
| Код | Описание |
|---|---|
400 Bad Request | Некорректный формат данных |
401 Unauthorized | Необходима авторизация |
403 Forbidden | Недостаточно прав |
404 Not Found | Репозиторий, проект, колонка или задача не найдены |
422 Unprocessable Entity | Ошибка валидации данных (при создании задачи — некорректные project_id/project_status_id) |
500 Internal Server Error | Внутренняя ошибка сервера |