Обновить проект репозитория

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 запроса необходимо передать следующие идентификаторы ресурса:

ПараметрТипОбязательныйОписание
ownerstringДаВладелец репозитория (логин пользователя или имя организации)
repostringДаНазвание репозитория (без расширения .git)
project_idintegerДаУникальный идентификатор проекта

Тело запроса

ПараметрТипОбязательныйОписание
titlestringНетНовое название проекта
descriptionstringНетНовое описание проекта
privatebooleanНетФлаг приватности проекта (true — приватный, false — публичный)
statestringНетСостояние проекта. Допустимые значения: 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».

На корневом уровне объект содержит:

ПолеТипОписание
idintegerУникальный идентификатор проекта
title, descriptionstringНазвание и описание проекта
privatebooleanФлаг приватности проекта (true — приватный, false — публичный)
statestringСостояние проекта (open, closed)
created_at, updated_atstring (date-time)Даты создания и последнего обновления
closed_atstring (date-time) / nullДата закрытия проекта (если открыт — null)
columnsarrayСписок колонок проекта (см. ProjectColumn)

Вложенные объекты описаны в графе объектов.

Коды ответа

Результат выполнения запроса определяется по HTTP-статусу:

КодСтатусОписание
200OKПроект успешно обновлен
400Bad RequestНекорректные параметры запроса (например, недопустимое значение state)
401UnauthorizedНе передан или невалиден токен авторизации
403ForbiddenНет прав на запись в репозиторий
404Not FoundРепозиторий или проект не найдены
500Internal Server ErrorВнутренняя ошибка сервера GitVerse

Особенности метода

  • обновляются только поля, переданные в теле запроса. Остальные поля сохраняют прежние значения;
  • при закрытии проекта (state: "closed") полю closed_at присваивается текущее время; при повторном открытии (state: "open") поле closed_at сбрасывается в null;
  • закрытие проекта не удаляет колонки и не отвязывает задачи: данные проекта сохраняются, проект остается доступным для чтения.

Формат ответа и заголовки

Метод возвращает ответ в формате JSON. Заголовок Content-Type в ответе устанавливается в application/vnd.gitverse.object+json;version=latest.