Вебхуки

В настройках проекта у вас есть возможность создания вебхуков

Общие поля вебхуков:

Поле Тип Описание
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
  }
}

В данной статье

Документация