Webhooks

In this guide, we will see how to consume webhooks in the application. With webhooks, we can know when something happens on Github, Bitbucket, and other platforms, and we can capture the events and process them.

Bitbucket configuration

Endpoints to configure webhooks

Create webhook configuration by workspace or repository

Request

POST
/api/dashboard/metrics/start
curl -G https://api.pulzen-gateway/api/dashboard/hooks\
  -H "Authorization: Basic {token}"

Request Body

{
  "description": "webhook productivo",
  "url": "https://api.pulzen-gateway/api/bitbucket/orgs/receive-web-hook",
  "provider" : "BITBUCKET",      
  "events": [
    "pullrequest:approved",
    "repo:commit_comment_created",
    "repo:commit_status_created",
    "issue:created",
    "issue:comment_created",
    "pullrequest:created",
    "pullrequest:changes_request_created",
    "pullrequest:comment_created",
    "pullrequest:comment_deleted",
    "repo:fork",
    "pullrequest:fulfilled",
    "repo:push",
    "pullrequest:rejected",
    "pullrequest:changes_request_removed",
    "pullrequest:comment_reopened",
    "pullrequest:comment_resolved",
    "pullrequest:unapproved",
    "repo:commit_status_updated",
    "issue:updated",
    "pullrequest:updated",
    "pullrequest:comment_updated",
    "repo:updated"
  ]
}

Get the list of workspace configurations

Request

GET
api/dashboard/hooks/all?provider=BITBUCKET
curl -G https://api.pulzen-gateway/api/dashboard/hooks/all?provider=BITBUCKET \
  -H "Authorization: Basic {token}"


Response

{
"uuid": "{f8dcfef6-89e6-4397-ab91-0db1d165f872}",
"description": "webhook productivo",
"url": "https://api.pulzen-gateway/api/bitbucket/orgs/receive-web-hook",
"events": [
    "pullrequest:approved",
    "repo:commit_comment_created",
    "repo:commit_status_created",
    "issue:created",
    "issue:comment_created",
    "pullrequest:created",
    "pullrequest:changes_request_created",
    "pullrequest:comment_created",
    "pullrequest:comment_deleted",
    "repo:fork",
    "pullrequest:fulfilled",
    "repo:push",
    "pullrequest:rejected",
    "pullrequest:changes_request_removed",
    "pullrequest:comment_reopened",
    "pullrequest:comment_resolved",
    "pullrequest:unapproved",
    "repo:commit_status_updated",
    "issue:updated",
    "pullrequest:updated",
    "pullrequest:comment_updated",
    "repo:updated"
],
"active": true
}

Get the list of repository configurations

Request

GET
/api/dashboard/hooks/all/repository?provider=BITBUCKET&repository=pulzen-gateway
curl -G https://api.pulzen-gateway/api/dashboard/hooks/all/repository?provider=BITBUCKET&repository=pulzen-gateway \
  -H "Authorization: Basic {token}"


Response

{
"uuid": "{573b0cc4-9d23-45c2-8d6a-1b815beaaad9}",
"description": "webhook productivo",
"url": "https://api.pulzen-gateway/api/bitbucket/orgs/receive-web-hook",
"events": [
    "pullrequest:approved",
    "repo:commit_comment_created",
    "repo:commit_status_created",
    "issue:created",
    "issue:comment_created",
    "pullrequest:created",
    "pullrequest:changes_request_created",
    "pullrequest:comment_created",
    "pullrequest:comment_deleted",
    "repo:fork",
    "pullrequest:fulfilled",
    "repo:push",
    "pullrequest:rejected",
    "pullrequest:changes_request_removed",
    "pullrequest:comment_reopened",
    "pullrequest:comment_resolved",
    "pullrequest:unapproved",
    "repo:commit_status_updated",
    "issue:updated",
    "pullrequest:updated",
    "pullrequest:comment_updated",
    "repo:updated"
],
"active": true
}

Get a workspace configuration by its ID

Request

GET
/api/dashboard/hooks?provider=BITBUCKET&hookId=f8dcfef6-89e6-4397-ab91-0db1d165f872
curl -G https://api.pulzen-gateway/api/dashboard/hooks?provider=BITBUCKET&hookId=f8dcfef6-89e6-4397-ab91-0db1d165f872 \
  -H "Authorization: Basic {token}"


Response

{
"uuid": "{573b0cc4-9d23-45c2-8d6a-1b815beaaad9}",
"description": "webhook productivo",
"url": "https://api.pulzen-gateway/api/bitbucket/orgs/receive-web-hook",
"events": [
    "pullrequest:approved",
    "repo:commit_comment_created",
    "repo:commit_status_created",
    "issue:created",
    "issue:comment_created",
    "pullrequest:created",
    "pullrequest:changes_request_created",
    "pullrequest:comment_created",
    "pullrequest:comment_deleted",
    "repo:fork",
    "pullrequest:fulfilled",
    "repo:push",
    "pullrequest:rejected",
    "pullrequest:changes_request_removed",
    "pullrequest:comment_reopened",
    "pullrequest:comment_resolved",
    "pullrequest:unapproved",
    "repo:commit_status_updated",
    "issue:updated",
    "pullrequest:updated",
    "pullrequest:comment_updated",
    "repo:updated"
],
"active": true
}

Get a repository configuration by its Id

Request

GET
/api/dashboard/hooks/repository?provider=BITBUCKET&hookId=c72d7135-1fda-476d-972d-b00fa099b2c3&repository=pulzen-gateway
curl -G https://api.pulzen-gateway/api/dashboard/hooks/repository?provider=BITBUCKET&hookId=c72d7135-1fda-476d-972d-b00fa099b2c3&repository=pulzen-gateway \
  -H "Authorization: Basic {token}"


Response

{
"uuid": "{573b0cc4-9d23-45c2-8d6a-1b815beaaad9}",
"description": "webhook productivo",
"url": "https://api.pulzen-gateway/api/bitbucket/orgs/receive-web-hook",
"events": [
    "pullrequest:approved",
    "repo:commit_comment_created",
    "repo:commit_status_created",
    "issue:created",
    "issue:comment_created",
    "pullrequest:created",
    "pullrequest:changes_request_created",
    "pullrequest:comment_created",
    "pullrequest:comment_deleted",
    "repo:fork",
    "pullrequest:fulfilled",
    "repo:push",
    "pullrequest:rejected",
    "pullrequest:changes_request_removed",
    "pullrequest:comment_reopened",
    "pullrequest:comment_resolved",
    "pullrequest:unapproved",
    "repo:commit_status_updated",
    "issue:updated",
    "pullrequest:updated",
    "pullrequest:comment_updated",
    "repo:updated"
],
"active": true
}

Delete a workspace configuration by its ID

Request

DELETE
/api/dashboard/hooks?provider=BITBUCKET&hookId=f8dcfef6-89e6-4397-ab91-0db1d165f872
curl -G https://api.pulzen-gateway/api/dashboard/hooks?provider=BITBUCKET&hookId=f8dcfef6-89e6-4397-ab91-0db1d165f872 \
  -H "Authorization: Basic {token}"

Delete a configuration from the repository by its Id

Request

DELETE
/api/dashboard/hooks/repository?provider=BITBUCKET&hookId=573b0cc4-9d23-45c2-8d6a-1b815beaaad9&repository=pulzen-gateway
curl -G https://api.pulzen-gateway/api/dashboard/hooks/repository?provider=BITBUCKET&hookId=573b0cc4-9d23-45c2-8d6a-1b815beaaad9&repository=pulzen-gateway \
  -H "Authorization: Basic {token}"

Bitbucket events

Below we show a general example of payload and essential information on event types and examples.

Example Bitbucket webhook payload

{
  "repository": {
    // ...
  }
  "actor": {
    // ...
  }
  "push": {
    // ...
  }
  "pullrequest": {
    // ...
  }
  "comment": {
    // ...
  }
}

Bitbucket Event types

  • Name
    repo:push
    Type
    Description

    A new commit was created.

  • Name
    pullrequest:created
    Type
    Description

    A new pull request was created.

  • Name
    pullrequest:updated
    Type
    Description

    A pull request was updated.

  • Name
    pullrequest:approved
    Type
    Description

    A pull request was approved.

  • Name
    pullrequest:fulfilled
    Type
    Description

    A pull request was merged.

  • Name
    pullrequest:unapproved
    Type
    Description

    A pull request was unapproved.

  • Name
    pullrequest:rejected
    Type
    Description

    A pull request was rejected.

  • Name
    pullrequest:comment_created
    Type
    Description

    A new comment was created.

  • Name
    pullrequest:comment_updated
    Type
    Description

    A comment was updated.

  • Name
    pullrequest:comment_resolved
    Type
    Description

    A comment was resolved.

  • Name
    pullrequest:comment_deleted
    Type
    Description

    A comment was deleted.

Bitbucket payload examples

Example commit payload

{
  "push": {
    "changes": [
      {
        "old": null,
        "new": {
          "name": "feature/test-webhook",
          "target": {
            "type": "commit",
            "hash": "e3c6226ff467225138511f1c06ecbb3e7a7d178a",
            "date": "2024-05-02T10:08:53+00:00",
            "author": {
              "type": "author",
              "raw": "Externo Airy Rosales <[email protected]>",
              "user": {
                "display_name": "Externo Airy Rosales",
                "links": {
                  "self": {
                    "href": "https://api.bitbucket.org/2.0/users/%7B03470bfb-3e8d-4943-af7d-43af6d254555%7D"
                  },
                  "avatar": {
                    "href": "https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/initials/ER-3.png"
                  },
                  "html": {
                    "href": "https://bitbucket.org/%7B03470bfb-3e8d-4943-af7d-43af6d254555%7D/"
                  }
                },
                "type": "user",
                "uuid": "{03470bfb-3e8d-4943-af7d-43af6d254555}",
                "account_id": "63ee4a98af665dfde8918002",
                "nickname": "ext.airy.rosales"
              }
            },
            "message": "I am adding just comment in order to test the webhook\n",
            "summary": {
              "type": "rendered",
              "raw": "I am adding just comment in order to test the webhook\n",
              "markup": "markdown",
              "html": "<p>I am adding just comment in order to test the webhook</p>"
            },
            "links": {
              "self": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/e3c6226ff467225138511f1c06ecbb3e7a7d178a"
              },
              "html": {
                "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/e3c6226ff467225138511f1c06ecbb3e7a7d178a"
              }
            },
            "parents": [
              {
                "hash": "c51a324a1e528613bcd4fd0f45d86cfcb8ec7287",
                "links": {
                  "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/c51a324a1e528613bcd4fd0f45d86cfcb8ec7287"
                  },
                  "html": {
                    "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/c51a324a1e528613bcd4fd0f45d86cfcb8ec7287"
                  }
                },
                "type": "commit"
              }
            ],
            "rendered": {},
            "properties": {}
          },
          "links": {
            "self": {
              "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/refs/branches/feature/test-webhook"
            },
            "commits": {
              "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commits/feature/test-webhook"
            },
            "html": {
              "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/branch/feature/test-webhook"
            }
          },
          "type": "branch",
          "merge_strategies": [
            "merge_commit",
            "squash",
            "fast_forward"
          ],
          "default_merge_strategy": "merge_commit"
        },
        "truncated": true,
        "created": true,
        "forced": false,
        "closed": false,
        "links": {
          "commits": {
            "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commits?include=e3c6226ff467225138511f1c06ecbb3e7a7d178a"
          },
          "html": {
            "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/branch/feature/test-webhook"
          }
        },
        "commits": [
          {
            "type": "commit",
            "hash": "e3c6226ff467225138511f1c06ecbb3e7a7d178a",
            "date": "2024-05-02T10:08:53+00:00",
            "author": {
              "type": "author",
              "raw": "Externo Airy Rosales <[email protected]>",
              "user": {
                "display_name": "Externo Airy Rosales",
                "links": {
                  "self": {
                    "href": "https://api.bitbucket.org/2.0/users/%7B03470bfb-3e8d-4943-af7d-43af6d254555%7D"
                  },
                  "avatar": {
                    "href": "https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/initials/ER-3.png"
                  },
                  "html": {
                    "href": "https://bitbucket.org/%7B03470bfb-3e8d-4943-af7d-43af6d254555%7D/"
                  }
                },
                "type": "user",
                "uuid": "{03470bfb-3e8d-4943-af7d-43af6d254555}",
                "account_id": "63ee4a98af665dfde8918002",
                "nickname": "ext.airy.rosales"
              }
            },
            "message": "I am adding just comment in order to test the webhook\n",
            "summary": {
              "type": "rendered",
              "raw": "I am adding just comment in order to test the webhook\n",
              "markup": "markdown",
              "html": "<p>I am adding just comment in order to test the webhook</p>"
            },
            "links": {
              "self": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/e3c6226ff467225138511f1c06ecbb3e7a7d178a"
              },
              "html": {
                "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/e3c6226ff467225138511f1c06ecbb3e7a7d178a"
              },
              "diff": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/diff/e3c6226ff467225138511f1c06ecbb3e7a7d178a"
              },
              "approve": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/e3c6226ff467225138511f1c06ecbb3e7a7d178a/approve"
              },
              "comments": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/e3c6226ff467225138511f1c06ecbb3e7a7d178a/comments"
              },
              "statuses": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/e3c6226ff467225138511f1c06ecbb3e7a7d178a/statuses"
              },
              "patch": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/patch/e3c6226ff467225138511f1c06ecbb3e7a7d178a"
              }
            },
            "parents": [
              {
                "hash": "c51a324a1e528613bcd4fd0f45d86cfcb8ec7287",
                "links": {
                  "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/c51a324a1e528613bcd4fd0f45d86cfcb8ec7287"
                  },
                  "html": {
                    "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/c51a324a1e528613bcd4fd0f45d86cfcb8ec7287"
                  }
                },
                "type": "commit"
              }
            ],
            "rendered": {},
            "properties": {}
          },
          {
            "type": "commit",
            "hash": "c51a324a1e528613bcd4fd0f45d86cfcb8ec7287",
            "date": "2024-04-29T16:02:39+00:00",
            "author": {
              "type": "author",
              "raw": "airyclever <[email protected]>"
            },
            "message": "Merge pull request #115 from CleveritDemo/fb/gitlab/load-groups\n\nload groups",
            "summary": {
              "type": "rendered",
              "raw": "Merge pull request #115 from CleveritDemo/fb/gitlab/load-groups\n\nload groups",
              "markup": "markdown",
              "html": "<p>Merge pull request #115 from CleveritDemo/fb/gitlab/load-groups</p>\n<p>load groups</p>"
            },
            "links": {
              "self": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/c51a324a1e528613bcd4fd0f45d86cfcb8ec7287"
              },
              "html": {
                "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/c51a324a1e528613bcd4fd0f45d86cfcb8ec7287"
              },
              "diff": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/diff/c51a324a1e528613bcd4fd0f45d86cfcb8ec7287"
              },
              "approve": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/c51a324a1e528613bcd4fd0f45d86cfcb8ec7287/approve"
              },
              "comments": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/c51a324a1e528613bcd4fd0f45d86cfcb8ec7287/comments"
              },
              "statuses": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/c51a324a1e528613bcd4fd0f45d86cfcb8ec7287/statuses"
              }
            },
            "parents": [
              {
                "hash": "6ee0ee834c29e317d9e1948cbc55632f1c02ea92",
                "links": {
                  "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/6ee0ee834c29e317d9e1948cbc55632f1c02ea92"
                  },
                  "html": {
                    "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/6ee0ee834c29e317d9e1948cbc55632f1c02ea92"
                  }
                },
                "type": "commit"
              },
              {
                "hash": "67d063acf9400295693877ee7834145618186056",
                "links": {
                  "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/67d063acf9400295693877ee7834145618186056"
                  },
                  "html": {
                    "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/67d063acf9400295693877ee7834145618186056"
                  }
                },
                "type": "commit"
              }
            ],
            "rendered": {},
            "properties": {}
          },
          {
            "type": "commit",
            "hash": "67d063acf9400295693877ee7834145618186056",
            "date": "2024-04-29T15:21:34+00:00",
            "author": {
              "type": "author",
              "raw": "yoel <[email protected]>"
            },
            "message": "load groups",
            "summary": {
              "type": "rendered",
              "raw": "load groups",
              "markup": "markdown",
              "html": "<p>load groups</p>"
            },
            "links": {
              "self": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/67d063acf9400295693877ee7834145618186056"
              },
              "html": {
                "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/67d063acf9400295693877ee7834145618186056"
              },
              "diff": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/diff/67d063acf9400295693877ee7834145618186056"
              },
              "approve": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/67d063acf9400295693877ee7834145618186056/approve"
              },
              "comments": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/67d063acf9400295693877ee7834145618186056/comments"
              },
              "statuses": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/67d063acf9400295693877ee7834145618186056/statuses"
              },
              "patch": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/patch/67d063acf9400295693877ee7834145618186056"
              }
            },
            "parents": [
              {
                "hash": "6ee0ee834c29e317d9e1948cbc55632f1c02ea92",
                "links": {
                  "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/6ee0ee834c29e317d9e1948cbc55632f1c02ea92"
                  },
                  "html": {
                    "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/6ee0ee834c29e317d9e1948cbc55632f1c02ea92"
                  }
                },
                "type": "commit"
              }
            ],
            "rendered": {},
            "properties": {}
          },
          {
            "type": "commit",
            "hash": "6ee0ee834c29e317d9e1948cbc55632f1c02ea92",
            "date": "2024-04-26T17:55:58+00:00",
            "author": {
              "type": "author",
              "raw": "airyclever <[email protected]>"
            },
            "message": "Merge pull request #113 from CleveritDemo/fb/shared/support-pull-request\n\nSe agregan los archivos de soporte del pr",
            "summary": {
              "type": "rendered",
              "raw": "Merge pull request #113 from CleveritDemo/fb/shared/support-pull-request\n\nSe agregan los archivos de soporte del pr",
              "markup": "markdown",
              "html": "<p>Merge pull request #113 from CleveritDemo/fb/shared/support-pull-request</p>\n<p>Se agregan los archivos de soporte del pr</p>"
            },
            "links": {
              "self": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/6ee0ee834c29e317d9e1948cbc55632f1c02ea92"
              },
              "html": {
                "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/6ee0ee834c29e317d9e1948cbc55632f1c02ea92"
              },
              "diff": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/diff/6ee0ee834c29e317d9e1948cbc55632f1c02ea92"
              },
              "approve": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/6ee0ee834c29e317d9e1948cbc55632f1c02ea92/approve"
              },
              "comments": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/6ee0ee834c29e317d9e1948cbc55632f1c02ea92/comments"
              },
              "statuses": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/6ee0ee834c29e317d9e1948cbc55632f1c02ea92/statuses"
              }
            },
            "parents": [
              {
                "hash": "5dba0967744016e42632d39fd47ad01a8979c774",
                "links": {
                  "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/5dba0967744016e42632d39fd47ad01a8979c774"
                  },
                  "html": {
                    "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/5dba0967744016e42632d39fd47ad01a8979c774"
                  }
                },
                "type": "commit"
              },
              {
                "hash": "3c5ddce3185684e6e3bf23a6bdf74a22dc85b79c",
                "links": {
                  "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/3c5ddce3185684e6e3bf23a6bdf74a22dc85b79c"
                  },
                  "html": {
                    "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/3c5ddce3185684e6e3bf23a6bdf74a22dc85b79c"
                  }
                },
                "type": "commit"
              }
            ],
            "rendered": {},
            "properties": {}
          },
          {
            "type": "commit",
            "hash": "3c5ddce3185684e6e3bf23a6bdf74a22dc85b79c",
            "date": "2024-04-25T22:37:38+00:00",
            "author": {
              "type": "author",
              "raw": "Externo Airy Rosales <[email protected]>",
              "user": {
                "display_name": "Externo Airy Rosales",
                "links": {
                  "self": {
                    "href": "https://api.bitbucket.org/2.0/users/%7B03470bfb-3e8d-4943-af7d-43af6d254555%7D"
                  },
                  "avatar": {
                    "href": "https://avatar-management--avatars.us-west-2.prod.public.atl-paas.net/initials/ER-3.png"
                  },
                  "html": {
                    "href": "https://bitbucket.org/%7B03470bfb-3e8d-4943-af7d-43af6d254555%7D/"
                  }
                },
                "type": "user",
                "uuid": "{03470bfb-3e8d-4943-af7d-43af6d254555}",
                "account_id": "63ee4a98af665dfde8918002",
                "nickname": "ext.airy.rosales"
              }
            },
            "message": "Se agrega la validacion para conocer el problema que existe\n",
            "summary": {
              "type": "rendered",
              "raw": "Se agrega la validacion para conocer el problema que existe\n",
              "markup": "markdown",
              "html": "<p>Se agrega la validacion para conocer el problema que existe</p>"
            },
            "links": {
              "self": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/3c5ddce3185684e6e3bf23a6bdf74a22dc85b79c"
              },
              "html": {
                "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/3c5ddce3185684e6e3bf23a6bdf74a22dc85b79c"
              },
              "diff": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/diff/3c5ddce3185684e6e3bf23a6bdf74a22dc85b79c"
              },
              "approve": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/3c5ddce3185684e6e3bf23a6bdf74a22dc85b79c/approve"
              },
              "comments": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/3c5ddce3185684e6e3bf23a6bdf74a22dc85b79c/comments"
              },
              "statuses": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/3c5ddce3185684e6e3bf23a6bdf74a22dc85b79c/statuses"
              },
              "patch": {
                "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/patch/3c5ddce3185684e6e3bf23a6bdf74a22dc85b79c"
              }
            },
            "parents": [
              {
                "hash": "8ddfb18ff4e3c7bb7990dcae205f261bd57082bf",
                "links": {
                  "self": {
                    "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/8ddfb18ff4e3c7bb7990dcae205f261bd57082bf"
                  },
                  "html": {
                    "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/8ddfb18ff4e3c7bb7990dcae205f261bd57082bf"
                  }
                },
                "type": "commit"
              }
            ],
            "rendered": {},
            "properties": {}
          }
        ]
      }
    ]
  },
  "repository": {
    "type": "repository",
    "full_name": "cleverit-group/pulzen-gateway",
    "links": {
      "self": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway"
      },
      "html": {
        "href": "https://bitbucket.org/cleverit-group/pulzen-gateway"
      },
      "avatar": {
        "href": "https://bytebucket.org/ravatar/%7B1100b61a-5cf9-4014-9874-a7a1fde68bf8%7D?ts=default"
      }
    },
    "name": "pulzen-gateway",
    "scm": "git",
    "website": null,
    "owner": {
      "display_name": "Cleverit Group",
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/workspaces/%7B43aa3e48-f467-4ce4-b035-94099e822572%7D"
        },
        "avatar": {
          "href": "https://bitbucket.org/account/cleverit-group/avatar/"
        },
        "html": {
          "href": "https://bitbucket.org/%7B43aa3e48-f467-4ce4-b035-94099e822572%7D/"
        }
      },
      "type": "team",
      "uuid": "{43aa3e48-f467-4ce4-b035-94099e822572}",
      "username": "cleverit-group"
    },
    "workspace": {
      "type": "workspace",
      "uuid": "{43aa3e48-f467-4ce4-b035-94099e822572}",
      "name": "Cleverit Group",
      "slug": "cleverit-group",
      "links": {
        "avatar": {
          "href": "https://bitbucket.org/workspaces/cleverit-group/avatar/?ts=1714415543"
        },
        "html": {
          "href": "https://bitbucket.org/cleverit-group/"
        },
        "self": {
          "href": "https://api.bitbucket.org/2.0/workspaces/cleverit-group"
        }
      }
    },
    "is_private": true,
    "project": {
      "type": "project",
      "key": "CLEV",
      "uuid": "{ac0fdb66-a523-4b88-b5b2-1b81e7b400ca}",
      "name": "CleverIT",
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/workspaces/cleverit-group/projects/CLEV"
        },
        "html": {
          "href": "https://bitbucket.org/cleverit-group/workspace/projects/CLEV"
        },
        "avatar": {
          "href": "https://bitbucket.org/account/user/cleverit-group/projects/CLEV/avatar/32?ts=1714416492"
        }
      }
    },
    "uuid": "{1100b61a-5cf9-4014-9874-a7a1fde68bf8}",
    "parent": null
  },
  "actor": {
    "display_name": "Cleverit Group",
    "links": {
      "self": {
        "href": "https://api.bitbucket.org/2.0/workspaces/%7B43aa3e48-f467-4ce4-b035-94099e822572%7D"
      },
      "avatar": {
        "href": "https://bitbucket.org/account/cleverit-group/avatar/"
      },
      "html": {
        "href": "https://bitbucket.org/%7B43aa3e48-f467-4ce4-b035-94099e822572%7D/"
      }
    },
    "type": "team",
    "uuid": "{43aa3e48-f467-4ce4-b035-94099e822572}",
    "username": "cleverit-group"
  }
}

Example pull request payload

{
  "repository": {
    "type": "repository",
    "full_name": "cleverit-group/pulzen-gateway",
    "links": {
      "self": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway"
      },
      "html": {
        "href": "https://bitbucket.org/cleverit-group/pulzen-gateway"
      },
      "avatar": {
        "href": "https://bytebucket.org/ravatar/%7B1100b61a-5cf9-4014-9874-a7a1fde68bf8%7D?ts=default"
      }
    },
    "name": "pulzen-gateway",
    "scm": "git",
    "website": null,
    "owner": {
      "display_name": "Cleverit Group",
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/workspaces/%7B43aa3e48-f467-4ce4-b035-94099e822572%7D"
        },
        "avatar": {
          "href": "https://bitbucket.org/account/cleverit-group/avatar/"
        },
        "html": {
          "href": "https://bitbucket.org/%7B43aa3e48-f467-4ce4-b035-94099e822572%7D/"
        }
      },
      "type": "team",
      "uuid": "{43aa3e48-f467-4ce4-b035-94099e822572}",
      "username": "cleverit-group"
    },
    "workspace": {
      "type": "workspace",
      "uuid": "{43aa3e48-f467-4ce4-b035-94099e822572}",
      "name": "Cleverit Group",
      "slug": "cleverit-group",
      "links": {
        "avatar": {
          "href": "https://bitbucket.org/workspaces/cleverit-group/avatar/?ts=1714415543"
        },
        "html": {
          "href": "https://bitbucket.org/cleverit-group/"
        },
        "self": {
          "href": "https://api.bitbucket.org/2.0/workspaces/cleverit-group"
        }
      }
    },
    "is_private": true,
    "project": {
      "type": "project",
      "key": "CLEV",
      "uuid": "{ac0fdb66-a523-4b88-b5b2-1b81e7b400ca}",
      "name": "CleverIT",
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/workspaces/cleverit-group/projects/CLEV"
        },
        "html": {
          "href": "https://bitbucket.org/cleverit-group/workspace/projects/CLEV"
        },
        "avatar": {
          "href": "https://bitbucket.org/account/user/cleverit-group/projects/CLEV/avatar/32?ts=1714416492"
        }
      }
    },
    "uuid": "{1100b61a-5cf9-4014-9874-a7a1fde68bf8}",
    "parent": null
  },
  "actor": {
    "display_name": "Yoel Cruz",
    "links": {
      "self": {
        "href": "https://api.bitbucket.org/2.0/users/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D"
      },
      "avatar": {
        "href": "https://secure.gravatar.com/avatar/94794691c72e26fc855cf69db0b1a5a5?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYC-6.png"
      },
      "html": {
        "href": "https://bitbucket.org/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D/"
      }
    },
    "type": "user",
    "uuid": "{1208dcec-20e7-4688-93cb-d6a4693a5654}",
    "account_id": "633de99c2eaaa5dcfa171cc7",
    "nickname": "Yoel Cruz"
  },
  "pullrequest": {
    "comment_count": 1,
    "task_count": 0,
    "type": "pullrequest",
    "id": 4,
    "title": "Revert \"I am adding just comment in order to test the webhook (pull request #1)\"",
    "description": "",
    "rendered": {
      "title": {
        "type": "rendered",
        "raw": "Revert \"I am adding just comment in order to test the webhook (pull request #1)\"",
        "markup": "markdown",
        "html": "<p>Revert \"I am adding just comment in order to test the webhook (<a href=\"https://bitbucket.org/cleverit-group/pulzen-gateway/pull-requests/1/i-am-adding-just-comment-in-order-to-test\" rel=\"nofollow\" class=\"ap-connect-link\">pull request #1</a>)\"</p>"
      },
      "description": {
        "type": "rendered",
        "raw": "",
        "markup": "markdown",
        "html": ""
      }
    },
    "state": "MERGED",
    "merge_commit": {
      "hash": "a8e59f7aacc9",
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/a8e59f7aacc9"
        },
        "html": {
          "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/a8e59f7aacc9"
        }
      },
      "type": "commit"
    },
    "close_source_branch": false,
    "closed_by": {
      "display_name": "Yoel Cruz",
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/users/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D"
        },
        "avatar": {
          "href": "https://secure.gravatar.com/avatar/94794691c72e26fc855cf69db0b1a5a5?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYC-6.png"
        },
        "html": {
          "href": "https://bitbucket.org/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D/"
        }
      },
      "type": "user",
      "uuid": "{1208dcec-20e7-4688-93cb-d6a4693a5654}",
      "account_id": "633de99c2eaaa5dcfa171cc7",
      "nickname": "Yoel Cruz"
    },
    "author": {
      "display_name": "Yoel Cruz",
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/users/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D"
        },
        "avatar": {
          "href": "https://secure.gravatar.com/avatar/94794691c72e26fc855cf69db0b1a5a5?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYC-6.png"
        },
        "html": {
          "href": "https://bitbucket.org/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D/"
        }
      },
      "type": "user",
      "uuid": "{1208dcec-20e7-4688-93cb-d6a4693a5654}",
      "account_id": "633de99c2eaaa5dcfa171cc7",
      "nickname": "Yoel Cruz"
    },
    "reason": "",
    "created_on": "2024-05-06T19:11:34.612618+00:00",
    "updated_on": "2024-05-06T19:12:25.306132+00:00",
    "destination": {
      "branch": {
        "name": "dev"
      },
      "commit": {
        "hash": "8c0a903eeccd",
        "links": {
          "self": {
            "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/8c0a903eeccd"
          },
          "html": {
            "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/8c0a903eeccd"
          }
        },
        "type": "commit"
      },
      "repository": {
        "type": "repository",
        "full_name": "cleverit-group/pulzen-gateway",
        "links": {
          "self": {
            "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway"
          },
          "html": {
            "href": "https://bitbucket.org/cleverit-group/pulzen-gateway"
          },
          "avatar": {
            "href": "https://bytebucket.org/ravatar/%7B1100b61a-5cf9-4014-9874-a7a1fde68bf8%7D?ts=default"
          }
        },
        "name": "pulzen-gateway",
        "uuid": "{1100b61a-5cf9-4014-9874-a7a1fde68bf8}"
      }
    },
    "source": {
      "branch": {
        "name": "revert-pr-1"
      },
      "commit": {
        "hash": "a62879d5b7c3",
        "links": {
          "self": {
            "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/a62879d5b7c3"
          },
          "html": {
            "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/a62879d5b7c3"
          }
        },
        "type": "commit"
      },
      "repository": {
        "type": "repository",
        "full_name": "cleverit-group/pulzen-gateway",
        "links": {
          "self": {
            "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway"
          },
          "html": {
            "href": "https://bitbucket.org/cleverit-group/pulzen-gateway"
          },
          "avatar": {
            "href": "https://bytebucket.org/ravatar/%7B1100b61a-5cf9-4014-9874-a7a1fde68bf8%7D?ts=default"
          }
        },
        "name": "pulzen-gateway",
        "uuid": "{1100b61a-5cf9-4014-9874-a7a1fde68bf8}"
      }
    },
    "reviewers": [],
    "participants": [
      {
        "type": "participant",
        "user": {
          "display_name": "Yoel Cruz",
          "links": {
            "self": {
              "href": "https://api.bitbucket.org/2.0/users/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D"
            },
            "avatar": {
              "href": "https://secure.gravatar.com/avatar/94794691c72e26fc855cf69db0b1a5a5?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYC-6.png"
            },
            "html": {
              "href": "https://bitbucket.org/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D/"
            }
          },
          "type": "user",
          "uuid": "{1208dcec-20e7-4688-93cb-d6a4693a5654}",
          "account_id": "633de99c2eaaa5dcfa171cc7",
          "nickname": "Yoel Cruz"
        },
        "role": "PARTICIPANT",
        "approved": true,
        "state": "approved",
        "participated_on": "2024-05-06T19:12:19.486003+00:00"
      }
    ],
    "links": {
      "self": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/4"
      },
      "html": {
        "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/pull-requests/4"
      },
      "commits": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/4/commits"
      },
      "approve": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/4/approve"
      },
      "request-changes": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/4/request-changes"
      },
      "diff": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/diff/cleverit-group/pulzen-gateway:a62879d5b7c3%0D8c0a903eeccd?from_pullrequest_id=4&topic=true"
      },
      "diffstat": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/diffstat/cleverit-group/pulzen-gateway:a62879d5b7c3%0D8c0a903eeccd?from_pullrequest_id=4&topic=true"
      },
      "comments": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/4/comments"
      },
      "activity": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/4/activity"
      },
      "merge": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/4/merge"
      },
      "decline": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/4/decline"
      },
      "statuses": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/4/statuses"
      }
    },
    "summary": {
      "type": "rendered",
      "raw": "",
      "markup": "markdown",
      "html": ""
    }
  }
}

Example code review payload

{
  "repository": {
    "type": "repository",
    "full_name": "cleverit-group/pulzen-gateway",
    "links": {
      "self": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway"
      },
      "html": {
        "href": "https://bitbucket.org/cleverit-group/pulzen-gateway"
      },
      "avatar": {
        "href": "https://bytebucket.org/ravatar/%7B1100b61a-5cf9-4014-9874-a7a1fde68bf8%7D?ts=default"
      }
    },
    "name": "pulzen-gateway",
    "scm": "git",
    "website": null,
    "owner": {
      "display_name": "Cleverit Group",
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/workspaces/%7B43aa3e48-f467-4ce4-b035-94099e822572%7D"
        },
        "avatar": {
          "href": "https://bitbucket.org/account/cleverit-group/avatar/"
        },
        "html": {
          "href": "https://bitbucket.org/%7B43aa3e48-f467-4ce4-b035-94099e822572%7D/"
        }
      },
      "type": "team",
      "uuid": "{43aa3e48-f467-4ce4-b035-94099e822572}",
      "username": "cleverit-group"
    },
    "workspace": {
      "type": "workspace",
      "uuid": "{43aa3e48-f467-4ce4-b035-94099e822572}",
      "name": "Cleverit Group",
      "slug": "cleverit-group",
      "links": {
        "avatar": {
          "href": "https://bitbucket.org/workspaces/cleverit-group/avatar/?ts=1714415543"
        },
        "html": {
          "href": "https://bitbucket.org/cleverit-group/"
        },
        "self": {
          "href": "https://api.bitbucket.org/2.0/workspaces/cleverit-group"
        }
      }
    },
    "is_private": true,
    "project": {
      "type": "project",
      "key": "CLEV",
      "uuid": "{ac0fdb66-a523-4b88-b5b2-1b81e7b400ca}",
      "name": "CleverIT",
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/workspaces/cleverit-group/projects/CLEV"
        },
        "html": {
          "href": "https://bitbucket.org/cleverit-group/workspace/projects/CLEV"
        },
        "avatar": {
          "href": "https://bitbucket.org/account/user/cleverit-group/projects/CLEV/avatar/32?ts=1714416492"
        }
      }
    },
    "uuid": "{1100b61a-5cf9-4014-9874-a7a1fde68bf8}",
    "parent": null
  },
  "actor": {
    "display_name": "Yoel Cruz",
    "links": {
      "self": {
        "href": "https://api.bitbucket.org/2.0/users/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D"
      },
      "avatar": {
        "href": "https://secure.gravatar.com/avatar/94794691c72e26fc855cf69db0b1a5a5?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYC-6.png"
      },
      "html": {
        "href": "https://bitbucket.org/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D/"
      }
    },
    "type": "user",
    "uuid": "{1208dcec-20e7-4688-93cb-d6a4693a5654}",
    "account_id": "633de99c2eaaa5dcfa171cc7",
    "nickname": "Yoel Cruz"
  },
  "pullrequest": {
    "comment_count": 4,
    "task_count": 0,
    "type": "pullrequest",
    "id": 2,
    "title": "Fb/github/fixing users",
    "description": "* Add functionality to fix missing user data in commits\n\n    This update incorporates the ability to locate and rectify commits that are missing user data. New interface classes have been created for CommitClient and CommitStorage, while changes have been done to the CommitDao and CommitDto classes. Additionally, the commit modification logic has been encapsulated in the CommitUserFix class.\n\n\n* added commit fixer, WIP\n* funciona pero hay que arreglarlo\n\n‌",
    "rendered": {
      "title": {
        "type": "rendered",
        "raw": "Fb/github/fixing users",
        "markup": "markdown",
        "html": "<p>Fb/github/fixing users</p>"
      },
      "description": {
        "type": "rendered",
        "raw": "* Add functionality to fix missing user data in commits\n\n    This update incorporates the ability to locate and rectify commits that are missing user data. New interface classes have been created for CommitClient and CommitStorage, while changes have been done to the CommitDao and CommitDto classes. Additionally, the commit modification logic has been encapsulated in the CommitUserFix class.\n\n\n* added commit fixer, WIP\n* funciona pero hay que arreglarlo\n\n‌",
        "markup": "markdown",
        "html": "<ul>\n<li>\n<p>Add functionality to fix missing user data in commits</p>\n<p>This update incorporates the ability to locate and rectify commits that are missing user data. New interface classes have been created for CommitClient and CommitStorage, while changes have been done to the CommitDao and CommitDto classes. Additionally, the commit modification logic has been encapsulated in the CommitUserFix class.</p>\n</li>\n<li>\n<p>added commit fixer, WIP</p>\n</li>\n<li>funciona pero hay que arreglarlo</li>\n</ul>\n<p>‌</p>"
      }
    },
    "state": "OPEN",
    "merge_commit": null,
    "close_source_branch": false,
    "closed_by": null,
    "author": {
      "display_name": "Yoel Cruz",
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/users/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D"
        },
        "avatar": {
          "href": "https://secure.gravatar.com/avatar/94794691c72e26fc855cf69db0b1a5a5?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYC-6.png"
        },
        "html": {
          "href": "https://bitbucket.org/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D/"
        }
      },
      "type": "user",
      "uuid": "{1208dcec-20e7-4688-93cb-d6a4693a5654}",
      "account_id": "633de99c2eaaa5dcfa171cc7",
      "nickname": "Yoel Cruz"
    },
    "reason": "",
    "created_on": "2024-05-06T18:41:03.507218+00:00",
    "updated_on": "2024-05-07T20:24:13.144008+00:00",
    "destination": {
      "branch": {
        "name": "dev"
      },
      "commit": {
        "hash": "a8e59f7aacc9",
        "links": {
          "self": {
            "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/a8e59f7aacc9"
          },
          "html": {
            "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/a8e59f7aacc9"
          }
        },
        "type": "commit"
      },
      "repository": {
        "type": "repository",
        "full_name": "cleverit-group/pulzen-gateway",
        "links": {
          "self": {
            "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway"
          },
          "html": {
            "href": "https://bitbucket.org/cleverit-group/pulzen-gateway"
          },
          "avatar": {
            "href": "https://bytebucket.org/ravatar/%7B1100b61a-5cf9-4014-9874-a7a1fde68bf8%7D?ts=default"
          }
        },
        "name": "pulzen-gateway",
        "uuid": "{1100b61a-5cf9-4014-9874-a7a1fde68bf8}"
      }
    },
    "source": {
      "branch": {
        "name": "fb/github/fixing-users"
      },
      "commit": {
        "hash": "33fbbb292df0",
        "links": {
          "self": {
            "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/commit/33fbbb292df0"
          },
          "html": {
            "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/commits/33fbbb292df0"
          }
        },
        "type": "commit"
      },
      "repository": {
        "type": "repository",
        "full_name": "cleverit-group/pulzen-gateway",
        "links": {
          "self": {
            "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway"
          },
          "html": {
            "href": "https://bitbucket.org/cleverit-group/pulzen-gateway"
          },
          "avatar": {
            "href": "https://bytebucket.org/ravatar/%7B1100b61a-5cf9-4014-9874-a7a1fde68bf8%7D?ts=default"
          }
        },
        "name": "pulzen-gateway",
        "uuid": "{1100b61a-5cf9-4014-9874-a7a1fde68bf8}"
      }
    },
    "reviewers": [],
    "participants": [
      {
        "type": "participant",
        "user": {
          "display_name": "Yoel Cruz",
          "links": {
            "self": {
              "href": "https://api.bitbucket.org/2.0/users/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D"
            },
            "avatar": {
              "href": "https://secure.gravatar.com/avatar/94794691c72e26fc855cf69db0b1a5a5?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYC-6.png"
            },
            "html": {
              "href": "https://bitbucket.org/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D/"
            }
          },
          "type": "user",
          "uuid": "{1208dcec-20e7-4688-93cb-d6a4693a5654}",
          "account_id": "633de99c2eaaa5dcfa171cc7",
          "nickname": "Yoel Cruz"
        },
        "role": "PARTICIPANT",
        "approved": true,
        "state": "approved",
        "participated_on": "2024-05-06T18:59:33.200475+00:00"
      }
    ],
    "links": {
      "self": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/2"
      },
      "html": {
        "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/pull-requests/2"
      },
      "commits": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/2/commits"
      },
      "approve": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/2/approve"
      },
      "request-changes": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/2/request-changes"
      },
      "diff": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/diff/cleverit-group/pulzen-gateway:33fbbb292df0%0Da8e59f7aacc9?from_pullrequest_id=2&topic=true"
      },
      "diffstat": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/diffstat/cleverit-group/pulzen-gateway:33fbbb292df0%0Da8e59f7aacc9?from_pullrequest_id=2&topic=true"
      },
      "comments": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/2/comments"
      },
      "activity": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/2/activity"
      },
      "merge": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/2/merge"
      },
      "decline": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/2/decline"
      },
      "statuses": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/2/statuses"
      }
    },
    "summary": {
      "type": "rendered",
      "raw": "* Add functionality to fix missing user data in commits\n\n    This update incorporates the ability to locate and rectify commits that are missing user data. New interface classes have been created for CommitClient and CommitStorage, while changes have been done to the CommitDao and CommitDto classes. Additionally, the commit modification logic has been encapsulated in the CommitUserFix class.\n\n\n* added commit fixer, WIP\n* funciona pero hay que arreglarlo\n\n‌",
      "markup": "markdown",
      "html": "<ul>\n<li>\n<p>Add functionality to fix missing user data in commits</p>\n<p>This update incorporates the ability to locate and rectify commits that are missing user data. New interface classes have been created for CommitClient and CommitStorage, while changes have been done to the CommitDao and CommitDto classes. Additionally, the commit modification logic has been encapsulated in the CommitUserFix class.</p>\n</li>\n<li>\n<p>added commit fixer, WIP</p>\n</li>\n<li>funciona pero hay que arreglarlo</li>\n</ul>\n<p>‌</p>"
    }
  },
  "comment": {
    "id": 499059091,
    "created_on": "2024-05-07T20:24:13.144008+00:00",
    "updated_on": "2024-05-07T20:24:13.144008+00:00",
    "content": {
      "type": "rendered",
      "raw": "otra prueba",
      "markup": "markdown",
      "html": "<p>otra prueba</p>"
    },
    "user": {
      "display_name": "Yoel Cruz",
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/users/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D"
        },
        "avatar": {
          "href": "https://secure.gravatar.com/avatar/94794691c72e26fc855cf69db0b1a5a5?d=https%3A%2F%2Favatar-management--avatars.us-west-2.prod.public.atl-paas.net%2Finitials%2FYC-6.png"
        },
        "html": {
          "href": "https://bitbucket.org/%7B1208dcec-20e7-4688-93cb-d6a4693a5654%7D/"
        }
      },
      "type": "user",
      "uuid": "{1208dcec-20e7-4688-93cb-d6a4693a5654}",
      "account_id": "633de99c2eaaa5dcfa171cc7",
      "nickname": "Yoel Cruz"
    },
    "deleted": false,
    "inline": {
      "from": null,
      "to": 5,
      "path": "src/main/java/com/cleveritgroup/gitdashboard/application/usecases/gitevents/exception/CommitFixAuthorException.java",
      "outdated": false,
      "context_lines": "--- a/src/main/java/com/cleveritgroup/gitdashboard/application/usecases/gitevents/exception/CommitFixAuthorException.java\n+++ b/src/main/java/com/cleveritgroup/gitdashboard/application/usecases/gitevents/exception/CommitFixAuthorException.java\n@@ -0,0 +2,6 @@\n+\n+public class CommitFixAuthorException extends RuntimeException{\n+    public CommitFixAuthorException(String cause) {\n+        super(cause);\n+    }\n+}\n"
    },
    "pending": false,
    "type": "pullrequest_comment",
    "links": {
      "self": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/2/comments/499059091"
      },
      "html": {
        "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/pull-requests/2/_/diff#comment-499059091"
      },
      "code": {
        "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/diff/cleverit-group/pulzen-gateway:33fbbb292df0..a8e59f7aacc9?path=src%2Fmain%2Fjava%2Fcom%2Fcleveritgroup%2Fgitdashboard%2Fapplication%2Fusecases%2Fgitevents%2Fexception%2FCommitFixAuthorException.java"
      }
    },
    "pullrequest": {
      "type": "pullrequest",
      "id": 2,
      "title": "Fb/github/fixing users",
      "links": {
        "self": {
          "href": "https://api.bitbucket.org/2.0/repositories/cleverit-group/pulzen-gateway/pullrequests/2"
        },
        "html": {
          "href": "https://bitbucket.org/cleverit-group/pulzen-gateway/pull-requests/2"
        }
      }
    }
  }
}

Azure Devops configuration

Endpoints to configure webhooks

Get the list of workspace configurations

Request

GET
api/dashboard/hooks/all?provider=AZUREDEVOPS
curl -G https://api.pulzen-gateway/api/dashboard/hooks/all?provider=AZUREDEVOPS \
  -H "Authorization: Basic {token}"


Response

{
    "uuid": "b83276f6-03ef-4137-a4a7-c3279e36539b",
    "description": "2024-07-18T21:10:15.23Z | https://cleveritspace.azurewebsites.net/api/ado/orgs/receive-web-hook/push",
    "url": "https://dev.azure.com/cleveritcl/_apis/hooks/subscriptions/b83276f6-03ef-4137-a4a7-c3279e36539b",
    "events": [
        "git.push"
    ],
    "active": true
}
{
    "uuid": "a23aeeba-b940-4c55-b2f1-5807be129e3e",
    "description": "2024-07-18T21:10:16.54Z | https://cleveritspace.azurewebsites.net/api/ado/orgs/receive-web-hook/pullrequest-merge",
    "url": "https://dev.azure.com/cleveritcl/_apis/hooks/subscriptions/a23aeeba-b940-4c55-b2f1-5807be129e3e",
    "events": [
        "git.pullrequest.merged"
    ],
    "active": true
}

Get a workspace configuration by its ID

Request

GET
/api/dashboard/hooks?provider=AZUREDEVOPS&hookId=8142dc36-13fb-4ac5-94b5-12e1a2b96fa4
curl -G https://api.pulzen-gateway/api/dashboard/hooks?provider=AZUREDEVOPS&hookId=8142dc36-13fb-4ac5-94b5-12e1a2b96fa4 \
  -H "Authorization: Basic {token}"


Response

    {
        "uuid": "b83276f6-03ef-4137-a4a7-c3279e36539b",
        "description": "2024-07-18T21:10:15.23Z | https://cleveritspace.azurewebsites.net/api/ado/orgs/receive-web-hook/push",
        "url": "https://dev.azure.com/cleveritcl/_apis/hooks/subscriptions/b83276f6-03ef-4137-a4a7-c3279e36539b",
        "events": [
            "git.push"
        ],
        "active": true
    }


Delete a configuration from the repository by its Id

Request

DELETE
api/dashboard/hooks?provider=AZUREDEVOPS&hookId=b83276f6-03ef-4137-a4a7-c3279e36539b
curl -G https://api.pulzen-gateway/api/dashboard/hooks?provider=AZUREDEVOPS&hookId=b83276f6-03ef-4137-a4a7-c3279e36539b \
  -H "Authorization: Basic {token}"


Response

  The record b83276f6-03ef-4137-a4a7-c3279e36539b was deleted.


Delete all the configuration

Request

DELETE
api/dashboard/hooks/repository?provider=AZUREDEVOPS&repository=ALL&hookId=ALL
curl -G https://api.pulzen-gateway/api/dashboard/hooks/repository?provider=AZUREDEVOPS&repository=ALL&hookId=ALL \
  -H "Authorization: Basic {token}"


Response

  All webhooks were deleted successfully.

Create webhook

Request

POST
api/dashboard/hooks
curl -G https://api.pulzen-gateway/api/dashboard/hooks \
  -H "Authorization: Basic {token}"

Request Body

{
"project_id": "8142dc36-13fb-4ac5-94b5-12e1a2b96fa4",
"description": "",
"url": "https://cleveritspace.azurewebsites.net",
"events": [
    "push",
    "pr_create",
    "pr_merge",
    "task_create",
    "task_update"
],
"provider": "AZUREDEVOPS"
}


Response

{
"uuid": null,
"description": "",
"url": "https://cleveritspace.azurewebsites.net",
"events": [
    "push",
    "pr_create",
    "pr_merge",
    "task_create",
    "task_update"
],
"active": true
}

Azure Devops events

Azure Devops Event types

  • Name
    git.push
    Type
    Description

    A new commit was created.

  • Name
    git.pullrequest.created
    Type
    Description

    A new pull request was created.

  • Name
    git.pullrequest.merged
    Type
    Description

    A new pull request was merged.

Github configuration

Endpoints to configure webhooks

Get the list of organization configurations

Request

GET
api/dashboard/hooks/all?provider=GITHUB
curl -G https://api.pulzen-gateway/api/dashboard/hooks/all?provider=GITHUB \
  -H "Authorization: Basic {token}"


Response

{
  "uuid": "498869961",
  "description": "web",
  "url": "https://space.cleveritgroup.com/api/github/orgs/receive-web-hook",
  "events": [
      "commit_comment",
      "deployment",
      "deploy_key",
      "member",
      "membership",
      "pull_request",
      "pull_request_review",
      "pull_request_review_comment",
      "pull_request_review_thread",
      "push",
      "release",
      "repository",
      "team",
      "workflow_run"
  ],
  "active": true
}

Get a organization configuration by its ID

Request

GET
/api/dashboard/hooks?provider=GITHUB&hookId=498869961
curl -G https://api.pulzen-gateway/api/dashboard/hooks?provider=GITHUB&hookId=498869961 \
  -H "Authorization: Basic {token}"


Response

    {
  "uuid": "498869961",
  "description": "web",
  "url": "https://space.cleveritgroup.com/api/github/orgs/receive-web-hook",
  "events": [
      "commit_comment",
      "deployment",
      "deploy_key",
      "member",
      "membership",
      "pull_request",
      "pull_request_review",
      "pull_request_review_comment",
      "pull_request_review_thread",
      "push",
      "release",
      "repository",
      "team",
      "workflow_run"
  ],
  "active": true
}


Delete organization configuration by its ID

Request

DELETE
api/dashboard/hooks?provider=GITHUB&hookId=498868659
curl -G https://api.pulzen-gateway/api/dashboard/hooks?provider=GITHUB&hookId=498868659 \
  -H "Authorization: Basic {token}"


Response

  498868659

Create webhook

Request

POST
api/dashboard/hooks
curl -G https://api.pulzen-gateway/api/dashboard/hooks \
  -H "Authorization: Basic {token}"

Request Body

{
  "description": "Pulzen Gateway Webhook",
  "url": "https://pulzen-gateway.com/api/github/orgs/receive-web-hook",
  "provider" : "GITHUB",      
  "events": [
    "commit_comment",
    "deployment",
    "deploy_key",
    "member",
    "membership",
    "pull_request",
    "pull_request_review",
    "pull_request_review_comment",
    "pull_request_review_thread",
    "push",
    "release",
    "repository",
    "team",
    "workflow_run"
  ]
}


Response

{
"uuid": "500060981",
"description": "web",
"url": "https://pulzen-gateway.com/api/github/orgs/receive-web-hook",
"events": [
    "commit_comment",
    "deployment",
    "deploy_key",
    "member",
    "membership",
    "pull_request",
    "pull_request_review",
    "pull_request_review_comment",
    "pull_request_review_thread",
    "push",
    "release",
    "repository",
    "team",
    "workflow_run"
],
"active": true
}

Github events

Github Event types

  • Name
    push
    Type
    Description

    A new commit was created.

  • Name
    pull_request
    Type
    Description

    A new pull request was created or updated.

  • Name
    pull_request_review
    Type
    Description

    A new pull request review was created or updated.

  • Name
    deployment
    Type
    Description

    A new deploy was created.

  • Name
    workflow_run
    Type
    Description

    A new workflow was created.

  • Name
    release
    Type
    Description

    A new release was created.

  • Name
    team
    Type
    Description

    A new team was created.

  • Name
    membership
    Type
    Description

    A new membership was created.