Вебхуки
В настройках проекта у вас есть возможность создания вебхуков
Общие поля вебхуков:
Поле | Тип | Описание |
---|---|---|
action |
String | Конкретное действие (см.список событий вебхуков. |
project_id |
String | Айди проекта. |
Список событий вебхуков:
Cобытие | Описание |
---|---|
webhook.issue.create |
Создание задачи |
webhook.issue.update |
Обновление задачи |
webhook.merge-request.create |
Создание запроса на слияние |
webhook.merge-request.update |
Обновление запроса на слияние |
webhook.tag.create |
Создание тега |
webhook.tag.delete |
Удаление тега |
webhook.branch.create |
Создание ветки |
webhook.branch.delete |
Удаление ветки |
webhook.branch.update |
Обновление ветки |
webhook.collaborator.add |
Добавление участника |
webhook.collaborator.update |
Обновление прав участника |
webhook.collaborator.delete |
Удаление участника |
webhook.discussion.comment.create |
Создание дискуссии |
Создание задачи
Описание полей объекта issue
:
Поле | Тип | Описание |
---|---|---|
id |
String | Айди проблемы. |
user_id |
String | Айди пользователя, создавшего проблему. |
title |
String | Название проблемы. |
description |
String | Описание проблемы. |
status |
String | Статус проблемы. |
Payload:
{
"action": "webhook.issue.create",
"project_id": "130b3079-a138-4182-8043-7a67c43ada43",
"issue": {
"id": "9xex103c-31bd-442f-b8e3-98c9809bddeb",
"user_id": "a9f0x64-x437-4xf5-adab-d864e3945d41",
"title": "Названиe",
"description": "Описание",
"status": "OPEN"
}
}
Обновление задачи
Описание полей объекта issue
:
Поле | Тип | Описание |
---|---|---|
id |
String | Айди проблемы. |
user_id |
String | Айди пользователя, обновившего проблему. |
title |
String | Название проблемы. |
description |
String | Описание проблемы. |
status |
String | Статус проблемы. Возможные статусы: OPEN , IN_PROGRESS , CLOSED , COMPLETED |
Payload:
{
"action": "webhook.issue.update",
"project_id": "130b3079-a138-4182-8043-7a67c43ada43",
"issue": {
"id": "9qeq103c-31bd-442f-b8e3-98c9809bddeb",
"user_id": "a9f0x64-x437-4xf5-adab-d864e3945d41",
"title": "Названиеe",
"description": "Описаниеee",
"status": "COMPLETED"
}
}
Создание запроса на слияние
Описание полей объекта merge_request
:
Поле | Тип | Описание |
---|---|---|
id |
String | Айди запроса на слияение. |
user_id |
String | Айди пользователя, создавшего запрос на слияние. |
title |
String | Название запроса на слияние. |
description |
String | Описание запроса на слияние. |
status |
String | Статус запроса на слияние. |
source_branch |
String | Исходная ветка запроса на слияние. |
target_project_id |
String | Айди целевого проекта для слияния. |
target_branch |
String | Целевая ветка запроса на слияние. |
Payload:
{
"action": "webhook.merge-request.create",
"project_id": "437qq73c-be6e-4925-a179-d1878ff9c742",
"merge_request": {
"id": "ba394afb-d558-4925-9f2d-53ccce05b64a",
"user_id": "axf0a164-c437-42f5-adab-d864e3945d41",
"title": "Название запроса на слияние",
"description": "Описание запроса на слияние",
"status": "OPENED",
"source_branch": "develop",
"target_project_id": "437xx73c-be6e-4925-a179-d1878ff9c742",
"target_branch": "master"
}
}
Обновление запроса на слияние
Описание полей объекта merge_request
:
Поле | Тип | Описание |
---|---|---|
id |
String | Айди запроса на слияние. |
user_id |
String | Айди пользователя, создавшего запрос на слияние. |
title |
String | Название запроса на слияние. |
description |
String | Описание запроса на слияние. |
status |
String | Статус запроса на слияние. Возможные статусы: OPENED ,CLOSED ,MERGED ,FAILED ,CONFLICT ,CANCELED ,REVERTED . |
source_branch |
String | Исходная ветка запроса на слияние. |
target_project_id |
String | Айди целевого проекта для слияния. |
target_branch |
String | Целевая ветка запроса на слияние. |
Payload:
{
"action": "webhook.merge-request.update",
"project_id": "437qq73c-be6e-4925-a179-d1878ff9c742",
"merge_request": {
"id": "xx594afb-d558-4925-9f2d-53ccce05b64a",
"user_id": "axf0a164-c437-42f5-adab-d864e3945d41",
"title": "Название запроса на слияние",
"description": "Описание запроса на слияние",
"status": "OPENED",
"source_branch": "develop",
"target_project_id": "437xx73c-be6e-4925-a179-d1878ff9c742",
"target_branch": "master"
}
}
Создание тега
Описание полей объекта push
:
Поле | Тип | Описание |
---|---|---|
before |
String | Хэш предыдущего коммита. (Для новых тегов нулевой коммит) |
after |
String | Хэш текущего коммита (На этом коммите был создан тег) |
ref |
String | Ссылка на гит-объект |
commits |
Массив | Массив коммитов.(тег не содержит коммитов, лишь ссылку на коммит) |
total_commits_count |
String | Количество коммитов |
Payload:
{
"action": "webhook.tag.create",
"project_id": "130b3079-a138-4182-8043-7a67c43ada43",
"push": {
"before": "0000000000000000000000000000000000000000",
"after": "b352fa74ab4f6b392cf088df4ccb48a6bf739ede",
"ref": "refs/tags/v2",
"commits": [],
"total_commits_count": 0
}
}
Удаление тега
Описание полей объекта push
:
Поле | Тип | Описание |
---|---|---|
before |
String | Хэш предыдущего коммита. (На этом коммите был создан удалённый тег) |
after |
String | Хэш текущего коммита (Нулевой коммит для удаленного тега) |
ref |
String | Ссылка на гит-объект |
commits |
Массив | Массив коммитов.(тег не содержит коммитов, лишь ссылку на коммит) |
total_commits_count |
String | Количество коммитов |
Payload:
{
"action": "webhook.tag.delete",
"project_id": "130b3079-a138-4182-8043-7a67c43ada43",
"push": {
"before": "b353fa74ab4f6b392cf088df4ccb48a6bf739ede",
"after": "0000000000000000000000000000000000000000",
"ref": "refs/tags/v2",
"commits": [],
"total_commits_count": 0
}
}
Создание ветки
Описание полей объекта push
:
Поле | Тип | Описание |
---|---|---|
before |
String | Хэш предыдущего коммита. |
after |
String | Хэш текущего коммита (Последний коммит на созданной ветке) |
ref |
String | Ссылка на гит-объект |
commits |
Массив | Массив коммитов.(Если запушена ветка без новых коммитов, то массив будет пуст) |
total_commits_count |
String | Количество коммитов |
Описание полей объектов входящих в состав commits
:
Поле | Тип | Описание |
---|---|---|
id |
String | Айди коммита. |
message |
String | Сообщение коммита. |
author_name |
String | Имя автора коммита |
author_email |
String | Почта автора коммита |
timestamp |
String | Время коммита в формате UTC. |
Payload:
{
"action": "webhook.branch.create",
"project_id": "130b3079-a138-4182-8043-7a67c43ada43",
"push": {
"before": "0000000000000000000000000000000000000000",
"after": "646e92b2c03576aa22f39708074d36792bd1fed0",
"ref": "refs/heads/develop",
"commits": [
{
"id": "646e92b2c03576aa22f39708074d36792bd1fed0",
"message": "develop branch\n",
"author_name": "Ivan Ivanov",
"author_email": "ivanIvanov@mail.com",
"timestamp": "2022-04-13T14:12:51"
}
],
"total_commits_count": 1
}
}
Удаление ветки
Поле | Тип | Описание |
---|---|---|
before |
String | Хэш предыдущего коммита. |
after |
String | Хэш текущего коммита (Нулевой коммит для удалённой ветки) |
ref |
String | Ссылка на гит-объект |
commits |
Массив | Массив коммитов.(Пуст для удалённой ветки) |
total_commits_count |
String | Количество коммитов |
Payload:
{
"action": "webhook.branch.delete",
"project_id": "130b3079-a138-4182-8043-7a67c43ada43",
"push": {
"before": "646e92b2c03576aa22f39708074d36792bd1fed0",
"after": "0000000000000000000000000000000000000000",
"ref": "refs/heads/develop",
"commits": [],
"total_commits_count": 0
}
}
Обновление ветки
Описание полей объекта push
:
Поле | Тип | Описание |
---|---|---|
before |
String | Хэш предыдущего коммита. |
after |
String | Хэш текущего коммита. |
ref |
String | Ссылка на гит-объект |
commits |
Массив | Массив коммитов.(максимальное количество отображаемых коммитов 20) |
total_commits_count |
String | Количество коммитов |
Описание полей объектов входящих в состав commits
:
Поле | Тип | Описание |
---|---|---|
id |
String | Айди коммита. |
message |
String | Сообщение коммита. |
author_name |
String | Имя автора коммита |
author_email |
String | Почта автора коммита |
timestamp |
String | Время коммита в формате UTC. |
Payload:
"action": "webhook.branch.update",
"project_id": "130b3079-a138-4182-8043-7a67c43ada43",
"push": {
"before": "ad49abb508911caad935c4d9add93f4df4c926e2",
"after": "f716dabd68cbf6a70f26dc74bc806f179ad7029e",
"ref": "refs/heads/master",
"commits": [
{
"id": "f716dabd68cbf6a70f26dc74bc806f179ad7029e",
"message": "developer\n",
"author_name": "Alexey Menshov",
"author_email": "aleks7777k2@gmail.com",
"timestamp": "2022-04-13T14:17:32"
},
{
"id": "c01576001fbc13a961dd3aef9eb9a8d88733946c",
"message": "master\n",
"author_name": "Alexey Menshov",
"author_email": "aleks7777k2@gmail.com",
"timestamp": "2022-04-13T14:16:51"
}
],
"total_commits_count": 2
}
}
Добавление участника
Данный вебхук срабатывает в том случае, если пользователь принял приглашение в проект.
Описание полей объекта collaborator
:
Поле | Тип | Описание |
---|---|---|
userid |
String | Айди добавляемого пользователя. |
role |
String | Роль пользователя в проекте. |
Payload:
{
"action": "collaborator.add",
"project_id": "130b3079-a138-4182-8043-7a67c43ada43",
"collaborator": {
"userid": "325960c2-f71a-405b-87e0-bede348ef598",
"role": "ADMIN"
}
}
Удаление участника
Описание полей объекта collaborator
:
Поле | Тип | Описание |
---|---|---|
userid |
String | Айди добавляемого пользователя. |
role |
String | Роль пользователя в проекте. |
Payload:
{
"action": "collaborator.delete",
"project_id": "130b3079-a138-4182-8043-7a67c43ada43",
"collaborator": {
"userid": "0f3f65ac-2217-4dda-bed2-cf8125b0fd4d",
"role": "DEVELOPER"
}
}
Создание дискуссии
Описание полей объекта note
:
Поле | Тип | Описание |
---|---|---|
id |
String | Айди дискуссии. |
author_id |
String | Айди автора дискуссии. |
message |
String | Сообщение. |
old_path |
String | Старый путь файла на строке которого была создана дискуссия. |
new_path |
String | Новый путь файла на строке которого была создана дискуссия. |
type |
String | Тип дискуссии. |
created_at |
String | Дата создания в стандарте UTC. |
new_line |
Integer | Новая строка файла на которой была создана дискуссия. |
old_line |
Integer | Старая строка файла на которой была создана дискуссия. |
resolved |
Boolean | Закрыта ли дискуссия. |
Payload:
{
"action": "webhook.discussion.create",
"project_id": "1076cc9b-a9cb-4e8c-998c-9d1c7874ff9d",
"note": {
"id": "7f69bcdd-8b8a-4ee3-a375-49640ff8d369",
"author_id": "a1f0b164-c437-42f5-adab-d864e3945d41",
"message": "Это надо исправить",
"old_path": "pom.xml",
"new_path": "pom.xml",
"type": "MERGE_REQUEST_COMMENT",
"created_at": "2022-04-20T11:43:32.153282Z[UTC]",
"new_line": 60,
"old_line": 57,
"resolved": false
}
}
В данной статье
Документация
- Общая информация
- Основные настройки
- Авторизация и регистрация
- Уведомления
- Создание README для профиля
- Введение
- Получение Access Token
- Пагинация
- Методы для проектов
- Методы для пользователей
- Методы для команд
- Методы для компаний
- Методы для проблем
- Методы для комментариев к проблемам
- Методы для коммитов
- Методы для релизов
- Методы для запросов на слияние
- Методы для веток
- Методы для вебхуков
- Методы для тегов