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

PATCH /repos/{owner}/{repo}

Описание

Позволяет изменить настройки репозитория: название, описание, приватность, ветку по умолчанию, политики слияния и другие параметры.
Для выполнения запроса требуется право на администрирование репозитория.

⚠️ Важно: Обновляются только те поля, которые переданы в теле запроса. Остальные параметры остаются без изменений.

Токен

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

Заголовки

ПараметрОбязательныйОписание
acceptНетТип содержимого ответа. Рекомендуется установить значение application/vnd.gitverse.object+json;version=latest

Параметры пути

ПараметрОбязательныйОписание
ownerДаВладелец репозитория (пользователь или организация)
repoДаНазвание репозитория (без расширения .git)

Параметры запроса

Данный метод не принимает параметров запроса.

Тело запроса

Тело должно быть в формате application/json и может содержать любые поля из request.RepositoryUpdateDTO.

ПолеТипОписание
namestringНовое название репозитория
descriptionstringОписание репозитория
privatebooleanПриватный (true) или публичный (false) репозиторий
default_branchstringВетка по умолчанию (например, main)
default_merge_stylestringСтратегия слияния по умолчанию: merge, rebase, squash
allow_mergebooleanРазрешить создание коммита слияния
allow_rebasebooleanРазрешить слияние через rebase
allow_squash_mergebooleanРазрешить squash-слияние
allow_rebase_mergebooleanРазрешить rebase и merge
allow_update_branchbooleanРазрешить обновление ветки через веб-интерфейс
delete_branch_on_mergebooleanУдалять ветку после слияния
archivedbooleanЗаархивировать репозиторий (только для чтения)
is_templatebooleanСделать репозиторий шаблоном
homepagestringURL домашней страницы проекта
ignore_whitespacebooleanИгнорировать изменения пробелов при сравнении
autodetect_manual_mergebooleanАвтоматически определять возможность ручного слияния

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

curl -X PATCH "https://api.gitverse.ru/repos/user/APInewTestRepo4.3" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/vnd.gitverse.object+json;version=1" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "updated-repo-name",
    "description": "Обновленное описание проекта",
    "private": true,
    "default_branch": "main",
    "allow_merge": false,
    "allow_squash_merge": true,
    "allow_rebase": true,
    "delete_branch_on_merge": true,
    "archived": false
  }'

Ответ (200 OK)

{
  "id": 143,
  "name": "updated-repo-name",
  "full_name": "user/updated-repo-name",
  "private": true,
  "html_url": "https://gitverse.ru/user/updated-repo-name",
  "description": "Обновленное описание проекта",
  "fork": false,
  "default_branch": "main",
  "visibility": "private",
  "has_issues": true,
  "has_projects": true,
  "has_wiki": true,
  "allow_merge_commit": false,
  "allow_squash_merge": true,
  "allow_rebase_merge": true,
  "delete_branch_on_merge": true,
  "archived": false,
  "permissions": {
    "pull": true,
    "push": true,
    "admin": true
  },
  "stargazers_count": 0,
  "watchers": 1,
  "size": 27,
  "language": null,
  "created_at": "2025-06-10T11:04:05Z",
  "updated_at": "2025-06-10T12:30:00Z",
  "pushed_at": "2025-06-10T11:04:06Z"
}

Формат ответа:
application/vnd.gitverse.object+json;version=1

Поля ответа

ПолеТипОписание
idnumberУникальный идентификатор репозитория
namestringНазвание репозитория (после возможного переименования)
full_namestringПолное имя репозитория в формате владелец/название
privatebooleanЯвляется ли репозиторий приватным
descriptionstring | nullОписание репозитория (может быть null)
default_branchstringВетка по умолчанию
visibilitystringУровень видимости: public, private, internal
has_issuesbooleanВключена ли система задач
has_projectsbooleanДоступны ли проекты
has_wikibooleanВключена ли вики
allow_merge_commitbooleanРазрешено ли создание коммита слияния
allow_squash_mergebooleanРазрешено ли squash-слияние
allow_rebase_mergebooleanРазрешено ли rebase-слияние
delete_branch_on_mergebooleanУдалять ветку после слияния
archivedbooleanЗаархивирован ли репозиторий
is_templatebooleanЯвляется ли шаблоном
permissions.pullbooleanПраво на чтение
permissions.pushbooleanПраво на запись
permissions.adminbooleanАдминистративные права
stargazers_countnumberКоличество звезд
watchersnumberКоличество наблюдателей
sizenumberРазмер репозитория в килобайтах
languagestring | nullОсновной язык программирования
created_atstringДата создания (ISO 8601)
updated_atstringДата последнего обновления
pushed_atstringДата последнего push

Коды ответа

КодСтатусОписание
200OKРепозиторий успешно обновлен
400Bad RequestНекорректные данные в теле запроса
401UnauthorizedНе передан или невалиден токен авторизации
403ForbiddenНет прав на изменение репозитория
404Not FoundРепозиторий не найден
422Unprocessable EntityНевозможно обработать запрос (например, имя занято)