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
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"
]
}
To create the configuration in a specific repository in the body we will add the following data: "repository" : "pulzen-gateway"
Get the list of workspace configurations
Request
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
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
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
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
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
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": {
// ...
}
}
To capture the events we will use the endpoint /api/bitbucket/orgs
The type of event arrives through the X-Event-Key header
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
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
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
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
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
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
To capture the events we will use the endpoint /api/ado/orgs
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
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
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
curl -G https://api.pulzen-gateway/api/dashboard/hooks?provider=GITHUB&hookId=498868659 \
-H "Authorization: Basic {token}"
Response
498868659
Create webhook
Request
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
To capture the events we will use the endpoint /api/github/orgs
The type of event arrives through the X-Github-Event header
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.