2. POST /repos/{owner}/{repo}/hooks — создать вебхук для репозитория
Описание
Этот метод позволяет создать новый вебхук для указанного репозитория.
Параметры URL:
| Параметр | Обязательный | Описание |
|---|---|---|
owner | Да | Имя владельца репозитория |
repo | Да | Название репозитория |
Параметры запроса:
Данный метод не требует параметров запроса.
Тело запроса:
Тело запроса должно содержать параметры вебхука в формате JSON.
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
active | boolean | Нет | Активен ли вебхук. По-умолчанию: true |
events | array of strings | Да | События, на которые будет реагировать вебхук. По-умолчанию: ["push"] |
config | object | Да | Конфигурация вебхука |
Поля конфигурации config:
| Поле | Тип | Обязательный | Описание |
|---|---|---|---|
url | string | Да | URL, на который будут отправляться вебхуки |
content_type | string | Нет | Тип контента |
secret | string | Нет | Секретный ключ для подписи запросов |
http_method | string | Нет | HTTP метод для отправки. По-умолчанию: POST |
Пример запроса:
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",
"secret": "secret_key"
}
}'Требования
Убедитесь, что ключ API указан корректно и обладает необходимыми правами для доступа к репозиторию:
Репозитории -> Запись.
Ответ (201 Created):
Возвращает созданный вебхук.
{
"id": 124,
"active": true,
"events": [
"push",
"pull_request"
],
"config": {
"url": "https://example.com/webhook",
"content_type": "json",
"secret": "secret_key"
},
"created_at": "2023-01-01T00:00:00Z",
"updated_at": "2023-01-01T00:00:00Z",
"last_response_status": ""
}Поля ответа:
| Поле | Тип | Описание |
|---|---|---|
id | integer | Уникальный идентификатор вебхука |
active | boolean | Активен ли вебхук |
events | array of strings | События, на которые реагирует вебхук |
config | object | Конфигурация вебхука |
created_at | string | Дата создания вебхука |
updated_at | string | Дата последнего обновления вебхука |
last_response_status | string | Статус последнего ответа от вебхука |
Поля конфигурации config:
| Поле | Тип | Описание |
|---|---|---|
url | string | URL, на который будут отправляться вебхуки |
content_type | string | Тип контента |
secret | string | Секретный ключ для подписи запросов |
Формат ответа: application/vnd.gitverse.object+json;version=latest
Коды ответов
| Код | Статус | Описание |
|---|---|---|
201 | Created | Вебхук успешно создан |
400 | Bad Request | Некорректные параметры запроса |
401 | Unauthorized | Необходима авторизация |
403 | Forbidden | Доступ запрещен |
404 | Not Found | Репозиторий не найден |
500 | Internal Server Error | Внутренняя ошибка сервера |
Примечания:
- поля
eventsдолжны содержать допустимые типы событий:create,delete,fork,push,pull_request,pull_request_comment,pull_request_review; - убедитесь, что URL вебхука доступен и правильно обрабатывает входящие запросы.
1. GET /repos/{owner}/{repo}/hooks — получить список вебхуков репозитория3. GET /repos/{owner}/{repo}/hooks/{hook_id} — получить информацию о вебхуке