Создать вебхук для репозитория
POST /repos/{owner}/{repo}/hooks
Описание
Этот метод позволяет создать новый вебхук для указанного репозитория.
Токен
Требуется токен с правами на Запись для Репозитория.
Заголовки
| Параметр | Обязательный | Описание |
|---|---|---|
Authorization | Да | Заголовок авторизации. Формат: Bearer <token> |
Accept | Нет | Тип содержимого ответа. Рекомендуется установить значение application/vnd.gitverse.object+json;version=latest |
Content-Type | Да | Тип содержимого тела запроса. Значение: application/json |
Параметры пути
| Параметр | Обязательный | Описание |
|---|---|---|
owner | Да | Имя владельца репозитория |
repo | Да | Название репозитория |
Параметры запроса
Данный метод не требует параметров запроса.
Тело запроса
Тело запроса должно содержать параметры вебхука в формате JSON.
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
active | boolean | Нет | Активен ли вебхук |
events | array of strings | Нет | События, на которые будет реагировать вебхук |
config | object | Да | Конфигурация вебхука |
Поля конфигурации config
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
url | string | Да | URL, на который будут отправляться вебхуки |
content_type | string | Нет | Тип контента |
http_method | string | Нет | HTTP метод для отправки |
authorization_header | string | Нет | Заголовок авторизации, который будет добавляться к запросам |
branch_filter | string | Нет | Фильтр событий по имени ветки (например, 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": ""
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | integer | Уникальный идентификатор вебхука |
active | boolean | Активен ли вебхук |
type | string | Тип вебхука |
events | array of strings | События, на которые реагирует вебхук |
config | object | Конфигурация вебхука |
created_at | string | Дата создания вебхука |
updated_at | string | Дата последнего обновления вебхука |
last_response_status | string | Статус последнего ответа от вебхука |
Поля конфигурации config
| Поле | Тип | Описание |
|---|---|---|
url | string | URL, на который будут отправляться вебхуки |
content_type | string | Тип контента |
http_method | string | HTTP метод для отправки |
authorization_header | string | Заголовок авторизации, который будет добавляться к запросам |
branch_filter | string | Фильтр событий по имени ветки (например, main или release/*) |
Формат ответа: application/vnd.gitverse.object+json;version=latest
Коды ответов
| Код | Статус | Описание |
|---|---|---|
201 | Created | Вебхук успешно создан |
400 | Bad Request | Некорректные параметры запроса |
401 | Unauthorized | Необходима авторизация |
403 | Forbidden | Доступ запрещен |
404 | Not Found | Репозиторий не найден |
429 | Too Many Requests | Превышен лимит запросов |
500 | Internal Server Error | Внутренняя ошибка сервера |
Примечания
- поля
eventsдолжны содержать допустимые типы событий:create,delete,fork,push,pull_request,pull_request_comment,pull_request_review; - убедитесь, что URL вебхука доступен и правильно обрабатывает входящие запросы.