9. POST /repos/{username}/{reponame}/git/refs — создать Git-ссылку

9. POST /repos/{username}/{reponame}/git/refs — создать Git-ссылку

Описание

Создает новую ветку (refs/heads/), тег (refs/tags/) или кастомную ссылку (refs/*/) в указанном репозитории. Для веток предусмотрена интеграция с трекером задач (например, автоматическое создание задачи при создании ветки в определенном формате).

Тело запроса

Тело содержит параметры создания Git-ссылки.

ПолеТипОписание
refstringПолный путь к ссылке. Примеры: refs/heads/new-feature, refs/tags/v1.0.
shastringSHA хеш коммита, на который будет указывать созданная ссылка.

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

ПолеТипОписаниеОбязательность
usernamePathИмя владельца репозитория (пользователь или организация).Обязательный
reponamePathНазвание репозитория.Обязательный
AuthorizationHeaderТокен авторизации в формате Bearer <access_token>.Обязательный
bodyBodyОбъект с параметрами создания ссылки (см. выше).Обязательный

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

{
  "ref": "refs/heads/feature/new-ui",
  "sha": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2"
}

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

curl -X POST "https://api.gitverse.ru/repos/dlborun/APInewTestRepo4.3/git/refs" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "ref": "refs/heads/feature/new-ui",
    "sha": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2"
  }'

Ответ (201 Created)

{
  "ref": "refs/heads/feature/new-ui",
  "url": "https://api.gitverse.ru/repos/dlborun/APInewTestRepo4.3/git/refs/heads/feature/new-ui",
  "object": {
    "sha": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2",
    "type": "commit",
    "url": "https://api.gitverse.ru/repos/dlborun/APInewTestRepo4.3/git/commits/a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2"
  }
}

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

Коды ответов

КодСтатусОписание
201CreatedСсылка успешно создана.
400Bad RequestНекорректные параметры запроса (например, неверный формат ref).
403ForbiddenНет прав на создание ссылки в этом репозитории.
409ConflictСсылка с таким именем уже существует.
422Unprocessable EntityОшибка валидации: неверный SHA, некорректный путь ссылки и т.д.
500Internal Server ErrorВнутренняя ошибка сервера.

Примечания

  1. Поддерживаются любые ссылки в пространстве refs/* (ветки, теги, кастомные ссылки).
  2. При создании ветки (refs/heads/...) может быть автоматически создана задача в трекере, если имя ветки соответствует шаблону (например, task-123-fix-bug).
  3. Убедитесь, что указанный sha существует в репозитории.