Создать вебхук для репозитория

POST /repos/{owner}/{repo}/hooks

Описание

Этот метод позволяет создать новый вебхук для указанного репозитория.

Токен

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

Заголовки

ПараметрОбязательныйОписание
AuthorizationДаЗаголовок авторизации. Формат: Bearer <token>
AcceptНетТип содержимого ответа. Рекомендуется установить значение application/vnd.gitverse.object+json;version=latest
Content-TypeДаТип содержимого тела запроса. Значение: application/json

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

ПараметрОбязательныйОписание
ownerДаИмя владельца репозитория
repoДаНазвание репозитория

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

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

Тело запроса

Тело запроса должно содержать параметры вебхука в формате JSON.

ПолеТипОбязательныйОписание
activebooleanНетАктивен ли вебхук
eventsarray of stringsНетСобытия, на которые будет реагировать вебхук
configobjectДаКонфигурация вебхука

Поля конфигурации config

ПолеТипОбязательныйОписание
urlstringДаURL, на который будут отправляться вебхуки
content_typestringНетТип контента
http_methodstringНетHTTP метод для отправки
authorization_headerstringНетЗаголовок авторизации, который будет добавляться к запросам
branch_filterstringНетФильтр событий по имени ветки (например, main или release/*)

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

curl -X POST "https://api.gitverse.ru/repos/myuser/myrepo/hooks" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/vnd.gitverse.object+json;version=latest" \
  -H "Content-Type: application/json" \
  -d '{
    "active": true,
    "events": ["push", "pull_request"],
    "config": {
      "url": "https://example.com/webhook",
      "content_type": "json",
      "http_method": "POST"
    }
  }'

Ответ (201 Created)

Возвращает созданный вебхук.

{
  "id": 124,
  "active": true,
  "type": "web",
  "events": [
    "push",
    "pull_request"
  ],
  "config": {
    "url": "https://example.com/webhook",
    "content_type": "json",
    "http_method": "POST",
    "authorization_header": "",
    "branch_filter": ""
  },
  "created_at": "2023-01-01T00:00:00Z",
  "updated_at": "2023-01-01T00:00:00Z",
  "last_response_status": ""
}

Поля ответа

ПолеТипОписание
idintegerУникальный идентификатор вебхука
activebooleanАктивен ли вебхук
typestringТип вебхука
eventsarray of stringsСобытия, на которые реагирует вебхук
configobjectКонфигурация вебхука
created_atstringДата создания вебхука
updated_atstringДата последнего обновления вебхука
last_response_statusstringСтатус последнего ответа от вебхука

Поля конфигурации config

ПолеТипОписание
urlstringURL, на который будут отправляться вебхуки
content_typestringТип контента
http_methodstringHTTP метод для отправки
authorization_headerstringЗаголовок авторизации, который будет добавляться к запросам
branch_filterstringФильтр событий по имени ветки (например, main или release/*)

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

Коды ответов

КодСтатусОписание
201CreatedВебхук успешно создан
400Bad RequestНекорректные параметры запроса
401UnauthorizedНеобходима авторизация
403ForbiddenДоступ запрещен
404Not FoundРепозиторий не найден
429Too Many RequestsПревышен лимит запросов
500Internal Server ErrorВнутренняя ошибка сервера

Примечания

  • поля events должны содержать допустимые типы событий: create, delete, fork, push, pull_request, pull_request_comment, pull_request_review;
  • убедитесь, что URL вебхука доступен и правильно обрабатывает входящие запросы.