Обновить проект репозитория
PATCH /repos/{owner}/{repo}/projects/{project_id}
Описание
Метод PATCH обновляет существующий проект в указанном репозитории по его идентификатору. В теле запроса можно передать новые значения для названия, описания, приватности и состояния проекта.
С помощью параметра state проект можно перевести в закрытое состояние (closed) или вернуть в открытое (open). Передавать все поля необязательно — обновятся только те, что указаны в теле запроса.
Метод применяется для завершения рабочих процессов, архивации завершенных проектов и синхронизации состояния проектов с внешними системами управления задачами.
Токен
Требуется токен с правами на Запись для Репозитория.
Заголовки
| Параметр | Обязательный | Описание |
|---|---|---|
| Accept | Нет | Тип содержимого ответа. Рекомендуется установить значение application/vnd.gitverse.object+json;version=latest |
| Authorization | Да | Токен доступа. Формат: Bearer <YOUR-TOKEN> или token <YOUR-TOKEN> |
| Content-Type | Да | Тип содержимого запроса: application/json |
Параметры пути
В URL запроса необходимо передать следующие идентификаторы ресурса:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| owner | string | Да | Владелец репозитория (логин пользователя или имя организации) |
| repo | string | Да | Название репозитория (без расширения .git) |
| project_id | integer | Да | Уникальный идентификатор проекта |
Тело запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| title | string | Нет | Новое название проекта |
| description | string | Нет | Новое описание проекта |
| private | boolean | Нет | Флаг приватности проекта (true — приватный, false — публичный) |
| state | string | Нет | Состояние проекта. Допустимые значения: open (открыть), closed (закрыть). Влияние на видимость: open — проект открыт и отображается в списке проектов; closed — проект закрыт и в списке проектов отображается только при фильтрации state=closed или state=all |
Пример тела запроса
{
"title": "Release planning",
"description": "Tasks for the next release",
"private": false,
"state": "closed"
}Пример запроса
Ниже приведен пример использования curl для закрытия проекта с идентификатором 42.
curl -X PATCH "https://api.gitverse.ru/repos/myorg/backend-api/projects/42" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/vnd.gitverse.object+json;version=latest" \
-H "Content-Type: application/json" \
-d '{
"state": "closed"
}'Замените YOUR_TOKEN на ваш личный токен доступа.
Ответ при успешном выполнении (200 OK)
При успешном обновлении проекта сервер вернет ответ с кодом 200 OK и телом в формате JSON, содержащим обновленный объект проекта:
{
"id": 42,
"title": "Release planning",
"description": "Tasks for the next release",
"private": false,
"state": "closed",
"created_at": "2026-09-14T10:00:00Z",
"updated_at": "2026-09-16T09:15:00Z",
"closed_at": "2026-09-16T09:15:00Z",
"columns": [
{
"id": 7,
"title": "To Do",
"color": "#0969DA",
"default": true,
"sorting": 1,
"created_at": "2026-09-14T10:00:00Z",
"updated_at": "2026-09-14T10:00:00Z"
},
{
"id": 8,
"title": "In progress",
"color": "#E3B341",
"default": false,
"sorting": 2,
"created_at": "2026-09-14T10:00:00Z",
"updated_at": "2026-09-14T10:00:00Z"
}
]
}Структура ответа
Ответ — объект Project (обновленный проект). Полная структура описана в графе объектов, раздел «Объект Project».
На корневом уровне объект содержит:
| Поле | Тип | Описание |
|---|---|---|
id | integer | Уникальный идентификатор проекта |
title, description | string | Название и описание проекта |
private | boolean | Флаг приватности проекта (true — приватный, false — публичный) |
state | string | Состояние проекта (open, closed) |
created_at, updated_at | string (date-time) | Даты создания и последнего обновления |
closed_at | string (date-time) / null | Дата закрытия проекта (если открыт — null) |
columns | array | Список колонок проекта (см. ProjectColumn) |
Вложенные объекты описаны в графе объектов.
Коды ответа
Результат выполнения запроса определяется по HTTP-статусу:
| Код | Статус | Описание |
|---|---|---|
| 200 | OK | Проект успешно обновлен |
| 400 | Bad Request | Некорректные параметры запроса (например, недопустимое значение state) |
| 401 | Unauthorized | Не передан или невалиден токен авторизации |
| 403 | Forbidden | Нет прав на запись в репозиторий |
| 404 | Not Found | Репозиторий или проект не найдены |
| 500 | Internal Server Error | Внутренняя ошибка сервера GitVerse |
Особенности метода
- обновляются только поля, переданные в теле запроса. Остальные поля сохраняют прежние значения;
- при закрытии проекта (
state: "closed") полюclosed_atприсваивается текущее время; при повторном открытии (state: "open") полеclosed_atсбрасывается вnull; - закрытие проекта не удаляет колонки и не отвязывает задачи: данные проекта сохраняются, проект остается доступным для чтения.
Формат ответа и заголовки
Метод возвращает ответ в формате JSON. Заголовок Content-Type в ответе устанавливается в application/vnd.gitverse.object+json;version=latest.