snapshot of https://github.com/zulip/zulip.git @ 48c69911c7dd4e03b20552eb3bd77ad8151c1357 (2026-09-15)
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
Some checks failed
Code scanning / CodeQL (push) Failing after 15s
Zulip production suite / Ubuntu 22.04 production build (push) Failing after 26s
Zulip production suite / Debian 12 production install with custom db name and user (push) Has been skipped
Zulip production suite / Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga (push) Has been skipped
Zulip production suite / Ubuntu 24.04 production install (push) Has been skipped
Zulip production suite / Ubuntu 26.04 production install (push) Has been skipped
Zulip production suite / Debian 13 production install (push) Has been skipped
Zulip production suite / 7.0 Version Upgrade (push) Has been skipped
Zulip production suite / 8.0 Version Upgrade (push) Has been skipped
Zulip production suite / 6.0 Version Upgrade (push) Has been skipped
Zulip production suite / 10.0 Version Upgrade (push) Has been skipped
Zulip production suite / 9.0 Version Upgrade (push) Has been skipped
Zulip production suite / 12.0 Version Upgrade (push) Has been skipped
Zulip production suite / 11.0 Version Upgrade (push) Has been skipped
GitHub Actions Security Analysis with zizmor / zizmor (push) Failing after 3s
Zulip CI / Debian 12 (Python 3.11, backend + documentation) (push) Failing after 26s
Zulip CI / Ubuntu 22.04 (Python 3.10, backend + frontend) (push) Failing after 3s
Zulip CI / Ubuntu 24.04 (Python 3.12, backend) (push) Failing after 25s
Zulip CI / Ubuntu 26.04 (Python 3.14, backend) (push) Failing after 25s
Zulip CI / Debian 13 (Python 3.13, backend) (push) Failing after 28s
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
API Documentation Update Check / check-feature-level-updated (push) Has been cancelled
API Documentation Update Check / notify-if-api-docs-changed (push) Has been cancelled
This commit is contained in:
0
zerver/webhooks/bitbucket/__init__.py
Normal file
0
zerver/webhooks/bitbucket/__init__.py
Normal file
47
zerver/webhooks/bitbucket/doc.md
Normal file
47
zerver/webhooks/bitbucket/doc.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# Zulip Bitbucket integration
|
||||
|
||||
Receive Bitbucket Cloud notifications in Zulip!
|
||||
|
||||
Zulip supports both Git and Mercurial notifications from Bitbucket.
|
||||
|
||||
!!! warn ""
|
||||
|
||||
For Bitbucket Data Center webhooks, see the [Zulip Bitbucket
|
||||
Data Center](/integrations/bitbucketdatacenter) integration.
|
||||
|
||||
{start_tabs}
|
||||
|
||||
1. {!create-an-incoming-webhook.md!}
|
||||
|
||||
1. {!generate-webhook-url-with-branch-filtering.md!}
|
||||
|
||||
1. On your repository's web page, go to **Settings**. Select
|
||||
**Webhooks**, and then click **Add webhook**.
|
||||
|
||||
1. Set **Title** to a title of your choice, such as `Zulip`. Set **URL**
|
||||
to the URL generated above, and toggle the **Active** checkbox.
|
||||
Select the **Triggers** you'd like to be notified about, and click
|
||||
**Save**.
|
||||
|
||||
{end_tabs}
|
||||
|
||||
!!! tip ""
|
||||
|
||||
If you configure a [custom profile field](/help/custom-profile-fields)
|
||||
in your Zulip organization for Atlassian Cloud account IDs,
|
||||
this integration will refer to Bitbucket users using
|
||||
[Zulip silent mentions](/help/mention-a-user-or-group#silently-mention-a-user),
|
||||
rather than their Bitbucket display name. See [how to find Atlassian
|
||||
account IDs][atlassian-account-id].
|
||||
|
||||
[atlassian-account-id]: https://developer.atlassian.com/cloud/automation/resources/how-to-get-user-account-IDs/
|
||||
|
||||
{!congrats.md!}
|
||||
|
||||

|
||||
|
||||
{!event-filtering-additional-feature.md!}
|
||||
|
||||
### Related documentation
|
||||
|
||||
{!webhooks-url-specification.md!}
|
||||
114
zerver/webhooks/bitbucket/fixtures/commit_comment_created.json
Normal file
114
zerver/webhooks/bitbucket/fixtures/commit_comment_created.json
Normal file
@@ -0,0 +1,114 @@
|
||||
{
|
||||
"comment":{
|
||||
"user":{
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"type":"user"
|
||||
},
|
||||
"commit":{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/32c4ea19aa3af10acd08e419e2c354941a365d74"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/32c4ea19aa3af10acd08e419e2c354941a365d74"
|
||||
}
|
||||
},
|
||||
"hash":"32c4ea19aa3af10acd08e419e2c354941a365d74",
|
||||
"type":"commit"
|
||||
},
|
||||
"id":3354963,
|
||||
"content":{
|
||||
"html":"<p>Nice fix!</p>",
|
||||
"markup":"markdown",
|
||||
"raw":"Nice fix!"
|
||||
},
|
||||
"updated_on":"2016-07-02T07:18:52.542184+00:00",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/32c4ea19aa3af10acd08e419e2c354941a365d74#comment-3354963"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/32c4ea19aa3af10acd08e419e2c354941a365d74/comments/3354963"
|
||||
}
|
||||
},
|
||||
"created_on":"2016-07-02T07:18:52.537287+00:00"
|
||||
},
|
||||
"commit":{
|
||||
"links":{
|
||||
|
||||
},
|
||||
"hash":"32c4ea19aa3af10acd08e419e2c354941a365d74",
|
||||
"type":"base_commit",
|
||||
"message":"c\n"
|
||||
},
|
||||
"actor":{
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"type":"user"
|
||||
},
|
||||
"repository":{
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"scm":"git",
|
||||
"is_private":true,
|
||||
"owner":{
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"type":"user"
|
||||
},
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"website":"",
|
||||
"name":"Repository name",
|
||||
"type":"repository",
|
||||
"full_name":"kolaszek/repository-name"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"actor": {
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"type":"user"
|
||||
},
|
||||
"repository": {
|
||||
"scm":"git",
|
||||
"is_private":true,
|
||||
"type":"repository",
|
||||
"website":"",
|
||||
"name":"Repository name",
|
||||
"owner":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}"
|
||||
},
|
||||
"commit_status": {
|
||||
"name": "Unit Tests (Python)",
|
||||
"description": "Build finished",
|
||||
"state": "SUCCESSFUL",
|
||||
"key": "mybuildtool",
|
||||
"url": "https://my-build-tool.com/builds/MY-PROJECT/BUILD-777",
|
||||
"type": "build",
|
||||
"created_on": "2015-11-19T20:37:35.547563+00:00",
|
||||
"updated_on": "2015-11-19T20:37:35.547563+00:00",
|
||||
"links": {
|
||||
"commit": {
|
||||
"href": "http://api.bitbucket.org/2.0/repositories/tk/test/commit/9fec847784abb10b2fa567ee63b85bd238955d0e"
|
||||
},
|
||||
"self": {
|
||||
"href": "http://api.bitbucket.org/2.0/repositories/tk/test/commit/9fec847784abb10b2fa567ee63b85bd238955d0e/statuses/build/mybuildtool"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
425
zerver/webhooks/bitbucket/fixtures/force_push.json
Normal file
425
zerver/webhooks/bitbucket/fixtures/force_push.json
Normal file
@@ -0,0 +1,425 @@
|
||||
{
|
||||
"repository":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"scm":"git",
|
||||
"uuid":"{ede265ff-3649-4068-a7da-81ac581b6f47}",
|
||||
"name":"Repository name",
|
||||
"owner":{
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz"
|
||||
},
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"type":"repository",
|
||||
"website":null,
|
||||
"is_private":true
|
||||
},
|
||||
"actor":{
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz"
|
||||
},
|
||||
"push":{
|
||||
"changes":[
|
||||
{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/branch/master"
|
||||
},
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits?include=25f93d22b719e2d678a7ad5ee0ef0d1fcdf39c12&exclude=32c4ea19aa3af10acd08e419e2c354941a365d74"
|
||||
}
|
||||
},
|
||||
"forced":true,
|
||||
"new":{
|
||||
"target":{
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>",
|
||||
"user":{
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz"
|
||||
}
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/25f93d22b719e2d678a7ad5ee0ef0d1fcdf39c12"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/25f93d22b719e2d678a7ad5ee0ef0d1fcdf39c12"
|
||||
}
|
||||
},
|
||||
"date":"2016-10-05T19:07:51+00:00",
|
||||
"message":"c\n",
|
||||
"hash":"25f93d22b719e2d678a7ad5ee0ef0d1fcdf39c12",
|
||||
"type":"commit",
|
||||
"parents":[
|
||||
{
|
||||
"hash":"f438e1c1b456b7d9ff278991aaca24123e7a591c",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/f438e1c1b456b7d9ff278991aaca24123e7a591c"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/f438e1c1b456b7d9ff278991aaca24123e7a591c"
|
||||
}
|
||||
},
|
||||
"type":"commit"
|
||||
}
|
||||
]
|
||||
},
|
||||
"repository":{
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"repository",
|
||||
"uuid":"{ede265ff-3649-4068-a7da-81ac581b6f47}",
|
||||
"name":"Repository name"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/refs/branches/master"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/branch/master"
|
||||
},
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits/master"
|
||||
}
|
||||
},
|
||||
"type":"branch",
|
||||
"name":"master"
|
||||
},
|
||||
"closed":false,
|
||||
"truncated":false,
|
||||
"created":false,
|
||||
"commits":[
|
||||
{
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>",
|
||||
"user":{
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz"
|
||||
}
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/25f93d22b719e2d678a7ad5ee0ef0d1fcdf39c12"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/25f93d22b719e2d678a7ad5ee0ef0d1fcdf39c12"
|
||||
}
|
||||
},
|
||||
"date":"2016-10-05T19:07:51+00:00",
|
||||
"message":"c\n",
|
||||
"hash":"25f93d22b719e2d678a7ad5ee0ef0d1fcdf39c12",
|
||||
"type":"commit",
|
||||
"parents":[
|
||||
{
|
||||
"hash":"f438e1c1b456b7d9ff278991aaca24123e7a591c",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/f438e1c1b456b7d9ff278991aaca24123e7a591c"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/f438e1c1b456b7d9ff278991aaca24123e7a591c"
|
||||
}
|
||||
},
|
||||
"type":"commit"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>",
|
||||
"user":{
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz"
|
||||
}
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/f438e1c1b456b7d9ff278991aaca24123e7a591c"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/f438e1c1b456b7d9ff278991aaca24123e7a591c"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:47:37+00:00",
|
||||
"message":"b\n",
|
||||
"hash":"f438e1c1b456b7d9ff278991aaca24123e7a591c",
|
||||
"type":"commit",
|
||||
"parents":[
|
||||
{
|
||||
"hash":"60cc02a3056062e20247a5b72c9e07d751d92e6f",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/60cc02a3056062e20247a5b72c9e07d751d92e6f"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/60cc02a3056062e20247a5b72c9e07d751d92e6f"
|
||||
}
|
||||
},
|
||||
"type":"commit"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>",
|
||||
"user":{
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz"
|
||||
}
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/60cc02a3056062e20247a5b72c9e07d751d92e6f"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/60cc02a3056062e20247a5b72c9e07d751d92e6f"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:46:22+00:00",
|
||||
"message":"a\n",
|
||||
"hash":"60cc02a3056062e20247a5b72c9e07d751d92e6f",
|
||||
"type":"commit",
|
||||
"parents":[
|
||||
{
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"type":"commit"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>",
|
||||
"user":{
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz"
|
||||
}
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"message":"first commit\n",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"type":"commit",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
}
|
||||
],
|
||||
"old":{
|
||||
"target":{
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>",
|
||||
"user":{
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz"
|
||||
}
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/32c4ea19aa3af10acd08e419e2c354941a365d74"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/32c4ea19aa3af10acd08e419e2c354941a365d74"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:47:51+00:00",
|
||||
"message":"c\n",
|
||||
"hash":"32c4ea19aa3af10acd08e419e2c354941a365d74",
|
||||
"type":"commit",
|
||||
"parents":[
|
||||
{
|
||||
"hash":"f438e1c1b456b7d9ff278991aaca24123e7a591c",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/f438e1c1b456b7d9ff278991aaca24123e7a591c"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/f438e1c1b456b7d9ff278991aaca24123e7a591c"
|
||||
}
|
||||
},
|
||||
"type":"commit"
|
||||
}
|
||||
]
|
||||
},
|
||||
"repository":{
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"repository",
|
||||
"uuid":"{ede265ff-3649-4068-a7da-81ac581b6f47}",
|
||||
"name":"Repository name"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/refs/branches/master"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/branch/master"
|
||||
},
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits/master"
|
||||
}
|
||||
},
|
||||
"type":"branch",
|
||||
"name":"master"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
75
zerver/webhooks/bitbucket/fixtures/fork.json
Normal file
75
zerver/webhooks/bitbucket/fixtures/fork.json
Normal file
@@ -0,0 +1,75 @@
|
||||
{
|
||||
"actor":{
|
||||
"type":"user",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz"
|
||||
},
|
||||
"repository":{
|
||||
"name":"Repository name",
|
||||
"website":"",
|
||||
"type":"repository",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"scm":"git",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"is_private":true,
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"owner":{
|
||||
"type":"user",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz"
|
||||
}
|
||||
},
|
||||
"fork":{
|
||||
"full_name":"kolaszek/repository-name2",
|
||||
"name":"Repository name2",
|
||||
"type":"repository",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name2"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name2/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name2"
|
||||
}
|
||||
},
|
||||
"uuid":"{ede265ff-3649-4068-a7da-81ac581b6f47}"
|
||||
}
|
||||
}
|
||||
172
zerver/webhooks/bitbucket/fixtures/issue_commented.json
Normal file
172
zerver/webhooks/bitbucket/fixtures/issue_commented.json
Normal file
@@ -0,0 +1,172 @@
|
||||
{
|
||||
"issue":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2"
|
||||
},
|
||||
"watch":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2/watch"
|
||||
},
|
||||
"comments":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2/comments"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/issues/2/bug"
|
||||
},
|
||||
"attachments":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2/attachments"
|
||||
},
|
||||
"vote":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2/vote"
|
||||
}
|
||||
},
|
||||
"updated_on":"2016-07-04T19:16:59.037577+00:00",
|
||||
"kind":"bug",
|
||||
"reporter":{
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"version":null,
|
||||
"milestone":null,
|
||||
"component":null,
|
||||
"content":{
|
||||
"raw":"Such a bug more description",
|
||||
"markup":"markdown",
|
||||
"html":"<p>Such a bug more description</p>"
|
||||
},
|
||||
"watches":1,
|
||||
"assignee":{
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"priority":"major",
|
||||
"created_on":"2016-07-04T17:36:51.890354+00:00",
|
||||
"id":1,
|
||||
"type":"issue",
|
||||
"title":"Bug",
|
||||
"votes":0,
|
||||
"state":"new",
|
||||
"edited_on":null
|
||||
},
|
||||
"repository":{
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"scm":"git",
|
||||
"owner":{
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"type":"user",
|
||||
"nickname":""
|
||||
},
|
||||
"name":"Repository name",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"is_private":true,
|
||||
"type":"repository",
|
||||
"website":""
|
||||
},
|
||||
"comment":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2/comments/28973596"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/issues/2#comment-28973596"
|
||||
}
|
||||
},
|
||||
"updated_on":null,
|
||||
"id":28973596,
|
||||
"created_on":"2016-07-04T19:16:59.031212+00:00",
|
||||
"user":{
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"content":{
|
||||
"raw":"Add comment",
|
||||
"markup":"markdown",
|
||||
"html":"<p>Add comment</p>"
|
||||
},
|
||||
"type":"issue_comment"
|
||||
},
|
||||
"actor":{
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
}
|
||||
}
|
||||
135
zerver/webhooks/bitbucket/fixtures/issue_created.json
Normal file
135
zerver/webhooks/bitbucket/fixtures/issue_created.json
Normal file
@@ -0,0 +1,135 @@
|
||||
{
|
||||
"actor":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"type":"user",
|
||||
"display_name":"Tomasz",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"issue":{
|
||||
"votes":0,
|
||||
"edited_on":null,
|
||||
"kind":"bug",
|
||||
"links":{
|
||||
"vote":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2/vote"
|
||||
},
|
||||
"comments":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2/comments"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/issues/2/bug"
|
||||
},
|
||||
"watch":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2/watch"
|
||||
},
|
||||
"attachments":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2/attachments"
|
||||
}
|
||||
},
|
||||
"content":{
|
||||
"raw":"Such a bug",
|
||||
"html":"<p>Such a bug</p>",
|
||||
"markup":"markdown"
|
||||
},
|
||||
"version":null,
|
||||
"component":null,
|
||||
"created_on":"2016-07-04T17:36:51.890354+00:00",
|
||||
"type":"issue",
|
||||
"id":1,
|
||||
"milestone":null,
|
||||
"reporter":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"type":"user",
|
||||
"display_name":"Tomasz",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"priority":"major",
|
||||
"title":"Bug",
|
||||
"watches":1,
|
||||
"updated_on":"2016-07-04T17:36:51.890354+00:00",
|
||||
"assignee":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"type":"user",
|
||||
"display_name":"Tomasz",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"state":"new"
|
||||
},
|
||||
"repository":{
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"scm":"git",
|
||||
"website":"",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"name":"Repository name",
|
||||
"owner":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"type":"user",
|
||||
"display_name":"Tomasz",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"is_private":true,
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"type":"repository"
|
||||
}
|
||||
}
|
||||
192
zerver/webhooks/bitbucket/fixtures/issue_updated.json
Normal file
192
zerver/webhooks/bitbucket/fixtures/issue_updated.json
Normal file
@@ -0,0 +1,192 @@
|
||||
{
|
||||
"actor":{
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"type":"user"
|
||||
},
|
||||
"comment":{
|
||||
"updated_on":null,
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2/comments/28972394"
|
||||
}
|
||||
},
|
||||
"user":{
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"type":"user"
|
||||
},
|
||||
"created_on":"2016-07-04T17:38:33.962551+00:00",
|
||||
"type":"issue_comment",
|
||||
"content":{
|
||||
"html":"",
|
||||
"markup":"markdown",
|
||||
"raw":null
|
||||
},
|
||||
"id":28972394
|
||||
},
|
||||
"repository":{
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"scm":"git",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"is_private":true,
|
||||
"name":"Repository name",
|
||||
"owner":{
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"type":"user"
|
||||
},
|
||||
"type":"repository",
|
||||
"website":""
|
||||
},
|
||||
"changes":{
|
||||
"content":{
|
||||
"old":"Such a bug",
|
||||
"new":"Such a bug more description"
|
||||
}
|
||||
},
|
||||
"issue":{
|
||||
"votes":0,
|
||||
"assignee":{
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"type":"user"
|
||||
},
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/issues/2/bug"
|
||||
},
|
||||
"vote":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2/vote"
|
||||
},
|
||||
"comments":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2/comments"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2"
|
||||
},
|
||||
"watch":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2/watch"
|
||||
},
|
||||
"attachments":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/issues/2/attachments"
|
||||
}
|
||||
},
|
||||
"updated_on":"2016-07-04T17:38:33.949326+00:00",
|
||||
"created_on":"2016-07-04T17:36:51.890354+00:00",
|
||||
"state":"new",
|
||||
"component":null,
|
||||
"content":{
|
||||
"html":"<p>Such a bug more description</p>",
|
||||
"markup":"markdown",
|
||||
"raw":"Such a bug more description"
|
||||
},
|
||||
"watches":1,
|
||||
"title":"Bug",
|
||||
"edited_on":null,
|
||||
"milestone":null,
|
||||
"priority":"major",
|
||||
"version":null,
|
||||
"repository":{
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"name":"Repository name",
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"type":"repository",
|
||||
"full_name":"kolaszek/repository-name"
|
||||
},
|
||||
"kind":"bug",
|
||||
"type":"issue",
|
||||
"id":1,
|
||||
"reporter":{
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"type":"user"
|
||||
}
|
||||
}
|
||||
}
|
||||
248
zerver/webhooks/bitbucket/fixtures/more_than_one_push_event.json
Normal file
248
zerver/webhooks/bitbucket/fixtures/more_than_one_push_event.json
Normal file
@@ -0,0 +1,248 @@
|
||||
{
|
||||
"repository":{
|
||||
"type":"repository",
|
||||
"scm":"git",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"name":"Repository name",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"is_private":false,
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"owner":{
|
||||
"display_name":"Tomasz",
|
||||
"type":"user",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"website":""
|
||||
},
|
||||
"push":{
|
||||
"changes":[
|
||||
{
|
||||
"truncated":false,
|
||||
"closed":false,
|
||||
"new":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/refs/branches/master"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/branch/master"
|
||||
},
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits/master"
|
||||
}
|
||||
},
|
||||
"type":"branch",
|
||||
"repository":{
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"repository",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"name":"Repository name"
|
||||
},
|
||||
"name":"master",
|
||||
"target":{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
}
|
||||
},
|
||||
"old":null,
|
||||
"created":true,
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/branch/master"
|
||||
},
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits?include=84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"commits":[
|
||||
{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
}
|
||||
],
|
||||
"forced":false
|
||||
},
|
||||
{
|
||||
"links":{
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits?include=c47631f097fd69c294486b5f9b99deb4a05cb285"
|
||||
}
|
||||
},
|
||||
"forced":false,
|
||||
"created":true,
|
||||
"closed":false,
|
||||
"truncated":false,
|
||||
"new":{
|
||||
"links":{
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits/a"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/refs/tags/a"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/tag/a"
|
||||
}
|
||||
},
|
||||
"target":{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/450118afff93569d1ce362174e9f1a7f104f9166"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/450118afff93569d1ce362174e9f1a7f104f9166"
|
||||
}
|
||||
},
|
||||
"parents":[
|
||||
{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/c47631f097fd69c294486b5f9b99deb4a05cb285"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/c47631f097fd69c294486b5f9b99deb4a05cb285"
|
||||
}
|
||||
},
|
||||
"hash":"c47631f097fd69c294486b5f9b99deb4a05cb285",
|
||||
"type":"commit"
|
||||
}
|
||||
],
|
||||
"message":"abc\n",
|
||||
"hash":"450118afff93569d1ce362174e9f1a7f104f9166",
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@go2.pl>"
|
||||
},
|
||||
"date":"2016-11-09T12:52:38+00:00",
|
||||
"type":"commit"
|
||||
},
|
||||
"type":"tag",
|
||||
"name":"a"
|
||||
},
|
||||
"old":null
|
||||
}
|
||||
]
|
||||
},
|
||||
"actor":{
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"location":null,
|
||||
"created_on":"2016-06-29T17:51:47.001868+00:00",
|
||||
"display_name":"Tomasz",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"website":null,
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,208 @@
|
||||
{
|
||||
"pullrequest":{
|
||||
"reviewers":[
|
||||
|
||||
],
|
||||
"type":"pullrequest",
|
||||
"description":"Updated description",
|
||||
"updated_on":"2016-07-04T19:40:31.002905+00:00",
|
||||
"state":"OPEN",
|
||||
"merge_commit":null,
|
||||
"source":{
|
||||
"branch":{
|
||||
"name":"new-branch"
|
||||
},
|
||||
"repository":{
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"name":"Repository name",
|
||||
"type":"repository",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}"
|
||||
},
|
||||
"commit":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/9c833166dcef"
|
||||
}
|
||||
},
|
||||
"hash":"9c833166dcef"
|
||||
}
|
||||
},
|
||||
"reason":"",
|
||||
"author":{
|
||||
"type":"user",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz"
|
||||
},
|
||||
"closed_by":null,
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/pull-requests/1"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/pullrequests/1"
|
||||
}
|
||||
},
|
||||
"title":"new commit",
|
||||
"close_source_branch":false,
|
||||
"created_on":"2016-07-04T19:15:30.118942+00:00",
|
||||
"destination":{
|
||||
"branch":{
|
||||
"name":"master"
|
||||
},
|
||||
"repository":{
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"name":"Repository name",
|
||||
"type":"repository",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}"
|
||||
},
|
||||
"commit":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/32c4ea19aa3a"
|
||||
}
|
||||
},
|
||||
"hash":"32c4ea19aa3a"
|
||||
}
|
||||
},
|
||||
"participants":[
|
||||
{
|
||||
"type":"participant",
|
||||
"approved":true,
|
||||
"user":{
|
||||
"type":"user",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz"
|
||||
},
|
||||
"role":"PARTICIPANT"
|
||||
}
|
||||
],
|
||||
"id":1,
|
||||
"task_count":0,
|
||||
"comment_count":0
|
||||
},
|
||||
"approval":{
|
||||
"user":{
|
||||
"type":"user",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz"
|
||||
},
|
||||
"date":"2016-07-04T19:40:30.999805+00:00"
|
||||
},
|
||||
"repository":{
|
||||
"name":"Repository name",
|
||||
"website":"",
|
||||
"type":"repository",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"scm":"git",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"is_private":true,
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"owner":{
|
||||
"type":"user",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz"
|
||||
}
|
||||
},
|
||||
"actor":{
|
||||
"type":"user",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,237 @@
|
||||
{
|
||||
"comment":{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/pull-requests/3/_/diff#comment-20576503"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/pullrequests/3/comments/20576503"
|
||||
}
|
||||
},
|
||||
"created_on":"2016-07-04T20:47:38.606358+00:00",
|
||||
"type":"pullrequest_comment",
|
||||
"user":{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz",
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"updated_on":"2016-07-04T20:47:38.608171+00:00",
|
||||
"content":{
|
||||
"markup":"markdown",
|
||||
"html":"<p>Comment1</p>",
|
||||
"raw":"Comment1"
|
||||
},
|
||||
"pullrequest":{
|
||||
"title":"new commit",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/pull-requests/3"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/pullrequests/3"
|
||||
}
|
||||
},
|
||||
"type":"pullrequest",
|
||||
"id":1
|
||||
},
|
||||
"id":20576503
|
||||
},
|
||||
"repository":{
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"scm":"git",
|
||||
"type":"repository",
|
||||
"owner":{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz",
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"name":"Repository name",
|
||||
"is_private":true,
|
||||
"website":""
|
||||
},
|
||||
"actor":{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz",
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"pullrequest":{
|
||||
"title":"new commit",
|
||||
"task_count":0,
|
||||
"created_on":"2016-07-04T20:47:02.153006+00:00",
|
||||
"reason":"",
|
||||
"comment_count":1,
|
||||
"updated_on":"2016-07-04T20:47:38.613320+00:00",
|
||||
"state":"OPEN",
|
||||
"description":"",
|
||||
"id":1,
|
||||
"reviewers":[
|
||||
|
||||
],
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/pull-requests/3"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/pullrequests/3"
|
||||
}
|
||||
},
|
||||
"author":{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz",
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"type":"pullrequest",
|
||||
"merge_commit":null,
|
||||
"destination":{
|
||||
"branch":{
|
||||
"name":"master"
|
||||
},
|
||||
"commit":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/0a3bbea5e914"
|
||||
}
|
||||
},
|
||||
"hash":"0a3bbea5e914"
|
||||
},
|
||||
"repository":{
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"name":"Repository name",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"repository"
|
||||
}
|
||||
},
|
||||
"closed_by":null,
|
||||
"source":{
|
||||
"branch":{
|
||||
"name":"new-branch"
|
||||
},
|
||||
"commit":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/1b3f5c4294f3"
|
||||
}
|
||||
},
|
||||
"hash":"1b3f5c4294f3"
|
||||
},
|
||||
"repository":{
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"name":"Repository name",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"repository"
|
||||
}
|
||||
},
|
||||
"close_source_branch":false,
|
||||
"participants":[
|
||||
{
|
||||
"approved":false,
|
||||
"role":"PARTICIPANT",
|
||||
"type":"participant",
|
||||
"user":{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz",
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"pullrequest":{
|
||||
"source":{
|
||||
"repository":{
|
||||
"type":"repository",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"name":"Repository name"
|
||||
},
|
||||
"commit":{
|
||||
"hash":"9c833166dcef",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/9c833166dcef"
|
||||
}
|
||||
}
|
||||
},
|
||||
"branch":{
|
||||
"name":"new-branch"
|
||||
}
|
||||
},
|
||||
"state":"OPEN",
|
||||
"destination":{
|
||||
"repository":{
|
||||
"type":"repository",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"name":"Repository name"
|
||||
},
|
||||
"commit":{
|
||||
"hash":"32c4ea19aa3a",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/32c4ea19aa3a"
|
||||
}
|
||||
}
|
||||
},
|
||||
"branch":{
|
||||
"name":"master"
|
||||
}
|
||||
},
|
||||
"reviewers":[
|
||||
{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/%7Bbf830c24-bde2-41f1-a790-2c9372a2e789%7D"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7Bbf830c24-bde2-41f1-a790-2c9372a2e789%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7Bbf830c24-bde2-41f1-a790-2c9372a2e789%7D/avatar/32/"
|
||||
} },
|
||||
"type":"user",
|
||||
"nickname":"T Kolek",
|
||||
"uuid":"{bf830c24-bde2-41f1-a790-2c9372a2e789}",
|
||||
"account_id":"557058:d8e78bc0-2e36-4b47-8c5c-1c8c22f5b1e3",
|
||||
"display_name":"Tomasz Kolek"
|
||||
}
|
||||
],
|
||||
"reason":"",
|
||||
"author":{
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"display_name":"Tomasz",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"task_count":0,
|
||||
"title":"new commit",
|
||||
"closed_by":null,
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/pullrequests/1"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/pull-requests/1"
|
||||
}
|
||||
},
|
||||
"close_source_branch":false,
|
||||
"participants":[
|
||||
|
||||
],
|
||||
"created_on":"2016-07-04T19:15:30.118942+00:00",
|
||||
"description":"description",
|
||||
"comment_count":0,
|
||||
"id":1,
|
||||
"updated_on":"2016-07-04T19:15:30.141038+00:00",
|
||||
"type":"pullrequest",
|
||||
"merge_commit":null
|
||||
},
|
||||
"actor":{
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"display_name":"Tomasz",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"repository":{
|
||||
"website":"",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"type":"repository",
|
||||
"name":"Repository name",
|
||||
"scm":"git",
|
||||
"is_private":true,
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"owner":{
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"display_name":"Tomasz",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
{
|
||||
"pullrequest":{
|
||||
"source":{
|
||||
"repository":{
|
||||
"type":"repository",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"name":"Repository name"
|
||||
},
|
||||
"commit":{
|
||||
"hash":"9c833166dcef",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/9c833166dcef"
|
||||
}
|
||||
}
|
||||
},
|
||||
"branch":{
|
||||
"name":"new-branch"
|
||||
}
|
||||
},
|
||||
"state":"OPEN",
|
||||
"destination":{
|
||||
"repository":{
|
||||
"type":"repository",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"name":"Repository name"
|
||||
},
|
||||
"commit":{
|
||||
"hash":"32c4ea19aa3a",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/32c4ea19aa3a"
|
||||
}
|
||||
}
|
||||
},
|
||||
"branch":{
|
||||
"name":"master"
|
||||
}
|
||||
},
|
||||
"reviewers":[
|
||||
{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/%7Bbf830c24-bde2-41f1-a790-2c9372a2e789%7D"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7Bbf830c24-bde2-41f1-a790-2c9372a2e789%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7Bbf830c24-bde2-41f1-a790-2c9372a2e789%7D/avatar/32/"
|
||||
} },
|
||||
"type":"user",
|
||||
"uuid":"{bf830c24-bde2-41f1-a790-2c9372a2e789}",
|
||||
"account_id":"557058:d8e78bc0-2e36-4b47-8c5c-1c8c22f5b1e3",
|
||||
"display_name":"Tomasz Kolek"
|
||||
}
|
||||
],
|
||||
"reason":"",
|
||||
"author":{
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"display_name":"Tomasz",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"task_count":0,
|
||||
"title":"new commit",
|
||||
"closed_by":null,
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/pullrequests/1"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/pull-requests/1"
|
||||
}
|
||||
},
|
||||
"close_source_branch":false,
|
||||
"participants":[
|
||||
|
||||
],
|
||||
"created_on":"2016-07-04T19:15:30.118942+00:00",
|
||||
"description":"description",
|
||||
"comment_count":0,
|
||||
"id":1,
|
||||
"updated_on":"2016-07-04T19:15:30.141038+00:00",
|
||||
"type":"pullrequest",
|
||||
"merge_commit":null
|
||||
},
|
||||
"actor":{
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"display_name":"Tomasz",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"repository":{
|
||||
"website":"",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"type":"repository",
|
||||
"name":"Repository name",
|
||||
"scm":"git",
|
||||
"is_private":true,
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"owner":{
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"display_name":"Tomasz",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
{
|
||||
"actor":{
|
||||
"type":"user",
|
||||
"display_name":"Tomasz",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"pullrequest":{
|
||||
"title":"new commit",
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/pull-requests/1"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/pullrequests/1"
|
||||
}
|
||||
},
|
||||
"reviewers":[
|
||||
|
||||
],
|
||||
"closed_by":{
|
||||
"type":"user",
|
||||
"display_name":"Tomasz",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"author":{
|
||||
"type":"user",
|
||||
"display_name":"Tomasz",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"updated_on":"2016-07-04T20:17:13.680242+00:00",
|
||||
"source":{
|
||||
"branch":{
|
||||
"name":"new-branch"
|
||||
},
|
||||
"commit":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/9c833166dcef"
|
||||
}
|
||||
},
|
||||
"hash":"9c833166dcef"
|
||||
},
|
||||
"repository":{
|
||||
"type":"repository",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"name":"Repository name",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"full_name":"kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"merge_commit":null,
|
||||
"type":"pullrequest",
|
||||
"comment_count":0,
|
||||
"destination":{
|
||||
"branch":{
|
||||
"name":"master"
|
||||
},
|
||||
"commit":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/32c4ea19aa3a"
|
||||
}
|
||||
},
|
||||
"hash":"32c4ea19aa3a"
|
||||
},
|
||||
"repository":{
|
||||
"type":"repository",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"name":"Repository name",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"full_name":"kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"close_source_branch":false,
|
||||
"id":1,
|
||||
"state":"DECLINED",
|
||||
"task_count":0,
|
||||
"description":"Updated description",
|
||||
"created_on":"2016-07-04T19:15:30.118942+00:00",
|
||||
"reason":"Declined!",
|
||||
"participants":[
|
||||
|
||||
]
|
||||
},
|
||||
"repository":{
|
||||
"type":"repository",
|
||||
"scm":"git",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"website":"",
|
||||
"owner":{
|
||||
"type":"user",
|
||||
"display_name":"Tomasz",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"name":"Repository name",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"is_private":true
|
||||
}
|
||||
}
|
||||
187
zerver/webhooks/bitbucket/fixtures/push.json
Normal file
187
zerver/webhooks/bitbucket/fixtures/push.json
Normal file
@@ -0,0 +1,187 @@
|
||||
{
|
||||
"actor":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"repository":{
|
||||
"scm":"git",
|
||||
"is_private":true,
|
||||
"type":"repository",
|
||||
"website":"",
|
||||
"name":"Repository name",
|
||||
"owner":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}"
|
||||
},
|
||||
"push":{
|
||||
"changes":[
|
||||
{
|
||||
"truncated":false,
|
||||
"closed":false,
|
||||
"new":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/refs/branches/master"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/branch/master"
|
||||
},
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits/master"
|
||||
}
|
||||
},
|
||||
"type":"branch",
|
||||
"repository":{
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"repository",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"name":"Repository name"
|
||||
},
|
||||
"name":"master",
|
||||
"target":{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
}
|
||||
},
|
||||
"old":null,
|
||||
"created":true,
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/branch/master"
|
||||
},
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits?include=84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"commits":[
|
||||
{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
}
|
||||
],
|
||||
"forced":false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
406
zerver/webhooks/bitbucket/fixtures/push_commits_above_limit.json
Normal file
406
zerver/webhooks/bitbucket/fixtures/push_commits_above_limit.json
Normal file
@@ -0,0 +1,406 @@
|
||||
{
|
||||
"actor":{
|
||||
"website":null,
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"display_name":"Tomasz",
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"location":null,
|
||||
"created_on":"2016-06-29T17:51:47.001868+00:00"
|
||||
},
|
||||
"push":{
|
||||
"changes":[
|
||||
{
|
||||
"commits":[
|
||||
{
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@go2.pl>"
|
||||
},
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"comments":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0/comments"
|
||||
},
|
||||
"approve":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0/approve"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"diff":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/diff/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"patch":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/patch/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"statuses":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0/statuses"
|
||||
}
|
||||
},
|
||||
"parents":[
|
||||
{
|
||||
"hash":"1221f2fda6f1e3654b09f1f3a08390e4cb25bb48",
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"date":"2016-11-09T13:21:09+00:00",
|
||||
"hash":"6f161a7bced94430ac8947d87dbf45c6deee3fb0",
|
||||
"message":"a\n"
|
||||
},
|
||||
{
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@go2.pl>"
|
||||
},
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"comments":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0/comments"
|
||||
},
|
||||
"approve":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0/approve"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"diff":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/diff/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"patch":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/patch/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"statuses":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0/statuses"
|
||||
}
|
||||
},
|
||||
"parents":[
|
||||
{
|
||||
"hash":"1221f2fda6f1e3654b09f1f3a08390e4cb25bb48",
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"date":"2016-11-09T13:21:09+00:00",
|
||||
"hash":"6f161a7bced94430ac8947d87dbf45c6deee3fb0",
|
||||
"message":"a\n"
|
||||
},
|
||||
{
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@go2.pl>"
|
||||
},
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"comments":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0/comments"
|
||||
},
|
||||
"approve":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0/approve"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"diff":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/diff/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"patch":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/patch/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"statuses":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0/statuses"
|
||||
}
|
||||
},
|
||||
"parents":[
|
||||
{
|
||||
"hash":"1221f2fda6f1e3654b09f1f3a08390e4cb25bb48",
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"date":"2016-11-09T13:21:09+00:00",
|
||||
"hash":"6f161a7bced94430ac8947d87dbf45c6deee3fb0",
|
||||
"message":"a\n"
|
||||
},
|
||||
{
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@go2.pl>"
|
||||
},
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"comments":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0/comments"
|
||||
},
|
||||
"approve":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0/approve"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"diff":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/diff/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"patch":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/patch/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"statuses":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0/statuses"
|
||||
}
|
||||
},
|
||||
"parents":[
|
||||
{
|
||||
"hash":"1221f2fda6f1e3654b09f1f3a08390e4cb25bb48",
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"date":"2016-11-09T13:21:09+00:00",
|
||||
"hash":"6f161a7bced94430ac8947d87dbf45c6deee3fb0",
|
||||
"message":"a\n"
|
||||
},
|
||||
{
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@go2.pl>"
|
||||
},
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"comments":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0/comments"
|
||||
},
|
||||
"approve":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0/approve"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"diff":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/diff/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"patch":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/patch/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"statuses":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0/statuses"
|
||||
}
|
||||
},
|
||||
"parents":[
|
||||
{
|
||||
"hash":"1221f2fda6f1e3654b09f1f3a08390e4cb25bb48",
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"date":"2016-11-09T13:21:09+00:00",
|
||||
"hash":"6f161a7bced94430ac8947d87dbf45c6deee3fb0",
|
||||
"message":"a\n"
|
||||
}
|
||||
],
|
||||
"old":{
|
||||
"name":"master",
|
||||
"target":{
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@go2.pl>"
|
||||
},
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
}
|
||||
},
|
||||
"parents":[
|
||||
{
|
||||
"hash":"07132e6a3bbdc5f3c9ac2bd5ff40828e7bdafdd2",
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/07132e6a3bbdc5f3c9ac2bd5ff40828e7bdafdd2"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/07132e6a3bbdc5f3c9ac2bd5ff40828e7bdafdd2"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"date":"2016-11-09T13:10:48+00:00",
|
||||
"hash":"1221f2fda6f1e3654b09f1f3a08390e4cb25bb48",
|
||||
"message":"a\n"
|
||||
},
|
||||
"type":"branch",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/refs/branches/master"
|
||||
},
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits/master"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/branch/master"
|
||||
}
|
||||
}
|
||||
},
|
||||
"links":{
|
||||
"diff":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/diff/6f161a7bced94430ac8947d87dbf45c6deee3fb0..1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
},
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits?include=6f161a7bced94430ac8947d87dbf45c6deee3fb0&exclude=1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/branches/compare/6f161a7bced94430ac8947d87dbf45c6deee3fb0..1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
}
|
||||
},
|
||||
"created":false,
|
||||
"closed":false,
|
||||
"forced":false,
|
||||
"new":{
|
||||
"name":"master",
|
||||
"target":{
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@go2.pl>"
|
||||
},
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/6f161a7bced94430ac8947d87dbf45c6deee3fb0"
|
||||
}
|
||||
},
|
||||
"parents":[
|
||||
{
|
||||
"hash":"1221f2fda6f1e3654b09f1f3a08390e4cb25bb48",
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/1221f2fda6f1e3654b09f1f3a08390e4cb25bb48"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"date":"2016-11-09T13:21:09+00:00",
|
||||
"hash":"6f161a7bced94430ac8947d87dbf45c6deee3fb0",
|
||||
"message":"a\n"
|
||||
},
|
||||
"type":"branch",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/refs/branches/master"
|
||||
},
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits/master"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/branch/master"
|
||||
}
|
||||
}
|
||||
},
|
||||
"truncated":true
|
||||
}
|
||||
]
|
||||
},
|
||||
"repository":{
|
||||
"owner":{
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"display_name":"Tomasz",
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"scm":"git",
|
||||
"type":"repository",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"name":"Repository name",
|
||||
"is_private":false,
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"website":"",
|
||||
"full_name":"kolaszek/repository-name"
|
||||
}
|
||||
}
|
||||
181
zerver/webhooks/bitbucket/fixtures/push_more_than_one_tag.json
Normal file
181
zerver/webhooks/bitbucket/fixtures/push_more_than_one_tag.json
Normal file
@@ -0,0 +1,181 @@
|
||||
{
|
||||
"actor":{
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"website":null,
|
||||
"display_name":"Tomasz",
|
||||
"created_on":"2016-06-29T17:51:47.001868+00:00",
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"location":null,
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"repository":{
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"owner":{
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz",
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"name":"Repository name",
|
||||
"is_private":false,
|
||||
"type":"repository",
|
||||
"website":"",
|
||||
"scm":"git"
|
||||
},
|
||||
"push":{
|
||||
"changes":[
|
||||
{
|
||||
"links":{
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits?include=c47631f097fd69c294486b5f9b99deb4a05cb285"
|
||||
}
|
||||
},
|
||||
"forced":false,
|
||||
"created":true,
|
||||
"closed":false,
|
||||
"truncated":false,
|
||||
"new":{
|
||||
"links":{
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits/a"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/refs/tags/a"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/tag/a"
|
||||
}
|
||||
},
|
||||
"target":{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/450118afff93569d1ce362174e9f1a7f104f9166"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/450118afff93569d1ce362174e9f1a7f104f9166"
|
||||
}
|
||||
},
|
||||
"parents":[
|
||||
{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/c47631f097fd69c294486b5f9b99deb4a05cb285"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/c47631f097fd69c294486b5f9b99deb4a05cb285"
|
||||
}
|
||||
},
|
||||
"hash":"c47631f097fd69c294486b5f9b99deb4a05cb285",
|
||||
"type":"commit"
|
||||
}
|
||||
],
|
||||
"message":"abc\n",
|
||||
"hash":"450118afff93569d1ce362174e9f1a7f104f9166",
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@go2.pl>"
|
||||
},
|
||||
"date":"2016-11-09T12:52:38+00:00",
|
||||
"type":"commit"
|
||||
},
|
||||
"type":"tag",
|
||||
"name":"a"
|
||||
},
|
||||
"old":null
|
||||
},
|
||||
{
|
||||
"links":{
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits?include=c47631f097fd69c294486b5f9b99deb4a05cb285"
|
||||
}
|
||||
},
|
||||
"forced":false,
|
||||
"created":true,
|
||||
"closed":false,
|
||||
"truncated":false,
|
||||
"new":{
|
||||
"links":{
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits/b"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/refs/tags/b"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/tag/b"
|
||||
}
|
||||
},
|
||||
"target":{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/450118afff93569d1ce362174e9f1a7f104f9166"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/450118afff93569d1ce362174e9f1a7f104f9166"
|
||||
}
|
||||
},
|
||||
"parents":[
|
||||
{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/c47631f097fd69c294486b5f9b99deb4a05cb285"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/c47631f097fd69c294486b5f9b99deb4a05cb285"
|
||||
}
|
||||
},
|
||||
"hash":"c47631f097fd69c294486b5f9b99deb4a05cb285",
|
||||
"type":"commit"
|
||||
}
|
||||
],
|
||||
"message":"abc\n",
|
||||
"hash":"450118afff93569d1ce362174e9f1a7f104f9166",
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@go2.pl>"
|
||||
},
|
||||
"date":"2016-11-09T12:52:38+00:00",
|
||||
"type":"commit"
|
||||
},
|
||||
"type":"tag",
|
||||
"name":"b"
|
||||
},
|
||||
"old":null
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
264
zerver/webhooks/bitbucket/fixtures/push_multiple_committers.json
Normal file
264
zerver/webhooks/bitbucket/fixtures/push_multiple_committers.json
Normal file
@@ -0,0 +1,264 @@
|
||||
{
|
||||
"actor":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"repository":{
|
||||
"scm":"git",
|
||||
"is_private":true,
|
||||
"type":"repository",
|
||||
"website":"",
|
||||
"name":"Repository name",
|
||||
"owner":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}"
|
||||
},
|
||||
"push":{
|
||||
"changes":[
|
||||
{
|
||||
"truncated":false,
|
||||
"closed":false,
|
||||
"new":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/refs/branches/master"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/branch/master"
|
||||
},
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits/master"
|
||||
}
|
||||
},
|
||||
"type":"branch",
|
||||
"repository":{
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"repository",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"name":"Repository name"
|
||||
},
|
||||
"name":"master",
|
||||
"target":{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
}
|
||||
},
|
||||
"old":null,
|
||||
"created":true,
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/branch/master"
|
||||
},
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits?include=84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"commits":[
|
||||
{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Zev Benjamin",
|
||||
"display_name":"Ben",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Benjamin Simon <ben-simon@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Zev Benjamin",
|
||||
"display_name":"Ben",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Benjamin Simon <ben-simon@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
}
|
||||
],
|
||||
"forced":false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,530 @@
|
||||
{
|
||||
"actor":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"repository":{
|
||||
"scm":"git",
|
||||
"is_private":true,
|
||||
"type":"repository",
|
||||
"website":"",
|
||||
"name":"Repository name",
|
||||
"owner":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}"
|
||||
},
|
||||
"push":{
|
||||
"changes":[
|
||||
{
|
||||
"truncated":false,
|
||||
"closed":false,
|
||||
"new":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/refs/branches/master"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/branch/master"
|
||||
},
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits/master"
|
||||
}
|
||||
},
|
||||
"type":"branch",
|
||||
"repository":{
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"repository",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"name":"Repository name"
|
||||
},
|
||||
"name":"master",
|
||||
"target":{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
}
|
||||
},
|
||||
"old":null,
|
||||
"created":true,
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/branch/master"
|
||||
},
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits?include=84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"commits":[
|
||||
{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"display_name":"Tomasz",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"James Franklin",
|
||||
"display_name":"James",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"James Franklin <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"James Franklin",
|
||||
"display_name":"James",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"James Franklin <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"James Kolek",
|
||||
"display_name":"James",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"James Kolek <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Brendon Rogers",
|
||||
"display_name":"Brendon",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Brendon Rogers <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
},
|
||||
{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Brendon Rogers",
|
||||
"display_name":"Brendon",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Brendon Rogers <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
},
|
||||
|
||||
{
|
||||
"type":"commit",
|
||||
"hash":"84b96adc644a30fd6465b3d196369d880762afed",
|
||||
"message":"first commit\n",
|
||||
"author":{
|
||||
"user":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
}
|
||||
},
|
||||
"type":"user",
|
||||
"nickname":"Zev Benjamin",
|
||||
"display_name":"Ben",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Benjamin Simon <ben-simon@o2.pl>"
|
||||
},
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed"
|
||||
}
|
||||
},
|
||||
"date":"2016-06-30T15:32:24+00:00",
|
||||
"parents":[
|
||||
|
||||
]
|
||||
}
|
||||
],
|
||||
"forced":false
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
123
zerver/webhooks/bitbucket/fixtures/push_one_tag.json
Normal file
123
zerver/webhooks/bitbucket/fixtures/push_one_tag.json
Normal file
@@ -0,0 +1,123 @@
|
||||
{
|
||||
"actor":{
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"website":null,
|
||||
"display_name":"Tomasz",
|
||||
"created_on":"2016-06-29T17:51:47.001868+00:00",
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"location":null,
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"repository":{
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"owner":{
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
},
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"display_name":"Tomasz",
|
||||
"type":"user",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"name":"Repository name",
|
||||
"is_private":false,
|
||||
"type":"repository",
|
||||
"website":"",
|
||||
"scm":"git"
|
||||
},
|
||||
"push":{
|
||||
"changes":[
|
||||
{
|
||||
"links":{
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits?include=c47631f097fd69c294486b5f9b99deb4a05cb285"
|
||||
}
|
||||
},
|
||||
"forced":false,
|
||||
"created":true,
|
||||
"closed":false,
|
||||
"truncated":false,
|
||||
"new":{
|
||||
"links":{
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits/a"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/refs/tags/a"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/tag/a"
|
||||
}
|
||||
},
|
||||
"target":{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/450118afff93569d1ce362174e9f1a7f104f9166"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/450118afff93569d1ce362174e9f1a7f104f9166"
|
||||
}
|
||||
},
|
||||
"parents":[
|
||||
{
|
||||
"links":{
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/c47631f097fd69c294486b5f9b99deb4a05cb285"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/c47631f097fd69c294486b5f9b99deb4a05cb285"
|
||||
}
|
||||
},
|
||||
"hash":"c47631f097fd69c294486b5f9b99deb4a05cb285",
|
||||
"type":"commit"
|
||||
}
|
||||
],
|
||||
"message":"abc\n",
|
||||
"hash":"450118afff93569d1ce362174e9f1a7f104f9166",
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@go2.pl>"
|
||||
},
|
||||
"date":"2016-11-09T12:52:38+00:00",
|
||||
"type":"commit"
|
||||
},
|
||||
"type":"tag",
|
||||
"name":"a"
|
||||
},
|
||||
"old":null
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
118
zerver/webhooks/bitbucket/fixtures/push_remove_tag.json
Normal file
118
zerver/webhooks/bitbucket/fixtures/push_remove_tag.json
Normal file
@@ -0,0 +1,118 @@
|
||||
{
|
||||
"repository":{
|
||||
"type":"repository",
|
||||
"scm":"git",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"name":"Repository name",
|
||||
"uuid":"{59005838-3978-410b-84fd-8b4ce1b41089}",
|
||||
"is_private":false,
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"owner":{
|
||||
"display_name":"Tomasz",
|
||||
"type":"user",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
},
|
||||
"website":""
|
||||
},
|
||||
"push":{
|
||||
"changes":[
|
||||
{
|
||||
"closed":true,
|
||||
"old":{
|
||||
"target":{
|
||||
"message":"abc\n",
|
||||
"author":{
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@go2.pl>"
|
||||
},
|
||||
"type":"commit",
|
||||
"parents":[
|
||||
{
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/c47631f097fd69c294486b5f9b99deb4a05cb285"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/c47631f097fd69c294486b5f9b99deb4a05cb285"
|
||||
}
|
||||
},
|
||||
"hash":"c47631f097fd69c294486b5f9b99deb4a05cb285"
|
||||
}
|
||||
],
|
||||
"date":"2016-11-09T12:52:38+00:00",
|
||||
"hash":"450118afff93569d1ce362174e9f1a7f104f9166",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/450118afff93569d1ce362174e9f1a7f104f9166"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/450118afff93569d1ce362174e9f1a7f104f9166"
|
||||
}
|
||||
}
|
||||
},
|
||||
"type":"tag",
|
||||
"links":{
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits/a"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/refs/tags/a"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/tag/a"
|
||||
}
|
||||
},
|
||||
"name":"a"
|
||||
},
|
||||
"created":false,
|
||||
"forced":false,
|
||||
"new":null,
|
||||
"truncated":false
|
||||
}
|
||||
]
|
||||
},
|
||||
"actor":{
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443",
|
||||
"location":null,
|
||||
"created_on":"2016-06-29T17:51:47.001868+00:00",
|
||||
"display_name":"Tomasz",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"website":null,
|
||||
"nickname":"Tomasz Kolaszek"
|
||||
}
|
||||
}
|
||||
80
zerver/webhooks/bitbucket/fixtures/push_without_changes.json
Normal file
80
zerver/webhooks/bitbucket/fixtures/push_without_changes.json
Normal file
@@ -0,0 +1,80 @@
|
||||
{
|
||||
"push":{
|
||||
"changes":[
|
||||
|
||||
]
|
||||
},
|
||||
"actor":{
|
||||
"nickname":"Eeshan Garg",
|
||||
"type":"user",
|
||||
"display_name":"eeshangarg",
|
||||
"uuid":"{a161e482-30e8-47ef-b6ab-c4e4cfaa0dce}",
|
||||
"account_id":"557058:a4e12c67-3c4d-4567-8e90-1f2c3d4e5678",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:a4e12c67-3c4d-4567-8e90-1f2c3d4e5678"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7Ba161e482-30e8-47ef-b6ab-c4e4cfaa0dce%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7Ba161e482-30e8-47ef-b6ab-c4e4cfaa0dce%7D/avatar/32/"
|
||||
}
|
||||
}
|
||||
},
|
||||
"repository":{
|
||||
"scm":"git",
|
||||
"website":"",
|
||||
"name":"test-repo",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/webhooktest/test-repo"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/webhooktest/test-repo"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/webhooktest/test-repo/avatar/32/"
|
||||
}
|
||||
},
|
||||
"project":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/teams/webhooktest/projects/TES"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/account/user/webhooktest/projects/TES"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/user/webhooktest/projects/TES/avatar/32"
|
||||
}
|
||||
},
|
||||
"type":"project",
|
||||
"uuid":"{c9b1f7ee-1949-4f6e-ba2b-6333fdbe6bf6}",
|
||||
"key":"TES",
|
||||
"name":"test-project"
|
||||
},
|
||||
"full_name":"webhooktest/test-repo",
|
||||
"owner":{
|
||||
"nickname":"Webhook Test",
|
||||
"type":"team",
|
||||
"display_name":"webhooktest",
|
||||
"uuid":"{31358906-183f-4b53-b83c-f70ba0ca5d3c}",
|
||||
"account_id":"557058:aaaa1111-2222-3333-4444-555566667777",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/teams/557058:aaaa1111-2222-3333-4444-555566667777"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B31358906-183f-4b53-b83c-f70ba0ca5d3c%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B31358906-183f-4b53-b83c-f70ba0ca5d3c%7D/avatar/32/"
|
||||
}
|
||||
}
|
||||
},
|
||||
"type":"repository",
|
||||
"is_private":true,
|
||||
"uuid":"{79e5af61-a749-45c5-be24-ba1cba7b662e}"
|
||||
}
|
||||
}
|
||||
150
zerver/webhooks/bitbucket/fixtures/remove_branch.json
Normal file
150
zerver/webhooks/bitbucket/fixtures/remove_branch.json
Normal file
@@ -0,0 +1,150 @@
|
||||
{
|
||||
"repository":{
|
||||
"is_private":true,
|
||||
"type":"repository",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"name":"Repository name",
|
||||
"website":null,
|
||||
"scm":"git",
|
||||
"owner":{
|
||||
"display_name":"Tomasz",
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"uuid":"{ede265ff-3649-4068-a7da-81ac581b6f47}",
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
}
|
||||
}
|
||||
},
|
||||
"push":{
|
||||
"changes":[
|
||||
{
|
||||
"old":{
|
||||
"repository":{
|
||||
"type":"repository",
|
||||
"name":"Repository name",
|
||||
"full_name":"kolaszek/repository-name",
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name"
|
||||
}
|
||||
},
|
||||
"uuid":"{ede265ff-3649-4068-a7da-81ac581b6f47}"
|
||||
},
|
||||
"type":"branch",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/refs/branches/master"
|
||||
},
|
||||
"commits":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commits/master"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/branch/master"
|
||||
}
|
||||
},
|
||||
"target":{
|
||||
"author":{
|
||||
"user":{
|
||||
"display_name":"Tomasz",
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"raw":"Tomasz Kolek <tomasz-kolek@o2.pl>"
|
||||
},
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/25f93d22b719e2d678a7ad5ee0ef0d1fcdf39c12"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/25f93d22b719e2d678a7ad5ee0ef0d1fcdf39c12"
|
||||
}
|
||||
},
|
||||
"hash":"25f93d22b719e2d678a7ad5ee0ef0d1fcdf39c12",
|
||||
"parents":[
|
||||
{
|
||||
"type":"commit",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/kolaszek/repository-name/commit/f438e1c1b456b7d9ff278991aaca24123e7a591c"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/kolaszek/repository-name/commits/f438e1c1b456b7d9ff278991aaca24123e7a591c"
|
||||
}
|
||||
},
|
||||
"hash":"f438e1c1b456b7d9ff278991aaca24123e7a591c"
|
||||
}
|
||||
],
|
||||
"date":"2016-10-05T19:07:51+00:00",
|
||||
"message":"c\n"
|
||||
},
|
||||
"name":"master"
|
||||
},
|
||||
"closed":true,
|
||||
"new":null,
|
||||
"created":false,
|
||||
"forced":false,
|
||||
"truncated":false
|
||||
}
|
||||
]
|
||||
},
|
||||
"actor":{
|
||||
"display_name":"Tomasz",
|
||||
"links":{
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/avatar/32/"
|
||||
},
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B678ab31f-9f88-4d7a-b343-1bdf9f024917%7D/"
|
||||
}
|
||||
},
|
||||
"nickname":"Tomasz Kolaszek",
|
||||
"type":"user",
|
||||
"uuid":"{678ab31f-9f88-4d7a-b343-1bdf9f024917}",
|
||||
"account_id":"557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"
|
||||
}
|
||||
}
|
||||
109
zerver/webhooks/bitbucket/fixtures/repo_updated.json
Normal file
109
zerver/webhooks/bitbucket/fixtures/repo_updated.json
Normal file
@@ -0,0 +1,109 @@
|
||||
{
|
||||
"changes":{
|
||||
"website":{
|
||||
"new":"http://zulipchat.com",
|
||||
"old":""
|
||||
},
|
||||
"name":{
|
||||
"new":"new-name",
|
||||
"old":"test-repo"
|
||||
},
|
||||
"links":{
|
||||
"new":{
|
||||
|
||||
},
|
||||
"old":{
|
||||
|
||||
}
|
||||
},
|
||||
"language":{
|
||||
"new":"python",
|
||||
"old":""
|
||||
},
|
||||
"full_name":{
|
||||
"new":"webhooktest/new-name",
|
||||
"old":"webhooktest/test-repo"
|
||||
},
|
||||
"slug":{
|
||||
"new":"new-name",
|
||||
"old":"test-repo"
|
||||
},
|
||||
"description":{
|
||||
"new":"Random description.",
|
||||
"old":""
|
||||
}
|
||||
},
|
||||
"actor":{
|
||||
"nickname":"Eeshan Garg",
|
||||
"type":"user",
|
||||
"display_name":"eeshangarg",
|
||||
"uuid":"{a161e482-30e8-47ef-b6ab-c4e4cfaa0dce}",
|
||||
"account_id":"557058:a4e12c67-3c4d-4567-8e90-1f2c3d4e5678",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/users/557058:a4e12c67-3c4d-4567-8e90-1f2c3d4e5678"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7Ba161e482-30e8-47ef-b6ab-c4e4cfaa0dce%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7Ba161e482-30e8-47ef-b6ab-c4e4cfaa0dce%7D/avatar/32/"
|
||||
}
|
||||
}
|
||||
},
|
||||
"repository":{
|
||||
"scm":"git",
|
||||
"website":"http://zulipchat.com",
|
||||
"name":"new-name",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/repositories/webhooktest/new-name"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/webhooktest/new-name"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/webhooktest/new-name/avatar/32/"
|
||||
}
|
||||
},
|
||||
"project":{
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/teams/webhooktest/projects/TES"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/account/user/webhooktest/projects/TES"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/user/webhooktest/projects/TES/avatar/32"
|
||||
}
|
||||
},
|
||||
"type":"project",
|
||||
"uuid":"{c9b1f7ee-1949-4f6e-ba2b-6333fdbe6bf6}",
|
||||
"key":"TES",
|
||||
"name":"test-project"
|
||||
},
|
||||
"full_name":"webhooktest/new-name",
|
||||
"owner":{
|
||||
"nickname":"Webhook Test",
|
||||
"type":"team",
|
||||
"display_name":"webhooktest",
|
||||
"uuid":"{31358906-183f-4b53-b83c-f70ba0ca5d3c}",
|
||||
"account_id":"557058:aaaa1111-2222-3333-4444-555566667777",
|
||||
"links":{
|
||||
"self":{
|
||||
"href":"https://api.bitbucket.org/2.0/teams/557058:aaaa1111-2222-3333-4444-555566667777"
|
||||
},
|
||||
"html":{
|
||||
"href":"https://bitbucket.org/%7B31358906-183f-4b53-b83c-f70ba0ca5d3c%7D/"
|
||||
},
|
||||
"avatar":{
|
||||
"href":"https://bitbucket.org/account/%7B31358906-183f-4b53-b83c-f70ba0ca5d3c%7D/avatar/32/"
|
||||
}
|
||||
}
|
||||
},
|
||||
"type":"repository",
|
||||
"is_private":true,
|
||||
"uuid":"{79e5af61-a749-45c5-be24-ba1cba7b662e}"
|
||||
}
|
||||
}
|
||||
471
zerver/webhooks/bitbucket/tests.py
Normal file
471
zerver/webhooks/bitbucket/tests.py
Normal file
@@ -0,0 +1,471 @@
|
||||
from unittest.mock import MagicMock, patch
|
||||
|
||||
from zerver.actions.custom_profile_fields import try_add_realm_default_custom_profile_field
|
||||
from zerver.lib.request import RequestNotes
|
||||
from zerver.lib.test_classes import WebhookTestCase
|
||||
from zerver.lib.test_helpers import HostRequestMock
|
||||
from zerver.lib.validator import wrap_wild_value
|
||||
from zerver.models.clients import get_client
|
||||
from zerver.models.realms import get_realm
|
||||
from zerver.webhooks.bitbucket.view import get_user_info
|
||||
|
||||
TOPIC = "Repository name"
|
||||
TOPIC_PR_EVENTS = "Repository name / PR #1 new commit"
|
||||
TOPIC_ISSUE_EVENTS = "Repository name / issue #1 Bug"
|
||||
TOPIC_BRANCH_EVENTS = "Repository name / master"
|
||||
|
||||
|
||||
class BitbucketHookTests(WebhookTestCase):
|
||||
def test_legacy_urls(self) -> None:
|
||||
commit_info = "* first commit ([84b96adc644](https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed))"
|
||||
expected_message = f"Tomasz [pushed](https://bitbucket.org/kolaszek/repository-name/branch/master) 1 commit to branch master.\n\n{commit_info}"
|
||||
|
||||
legacy_names = ["bitbucket2"]
|
||||
for legacy_name in legacy_names:
|
||||
self.url = self.build_webhook_url(legacy_name=legacy_name)
|
||||
self.check_webhook("push", TOPIC_BRANCH_EVENTS, expected_message)
|
||||
|
||||
def test_push_event(self) -> None:
|
||||
commit_info = "* first commit ([84b96adc644](https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed))"
|
||||
expected_message = f"Tomasz [pushed](https://bitbucket.org/kolaszek/repository-name/branch/master) 1 commit to branch master.\n\n{commit_info}"
|
||||
self.check_webhook("push", TOPIC_BRANCH_EVENTS, expected_message)
|
||||
|
||||
def test_push_commits_multiple_committers(self) -> None:
|
||||
commit_info = "* first commit ([84b96adc644](https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed))\n"
|
||||
expected_message = f"""Tomasz [pushed](https://bitbucket.org/kolaszek/repository-name/branch/master) 3 commits to branch master. Commits by Ben (2) and Tomasz (1).\n\n{commit_info * 2}* first commit ([84b96adc644](https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed))"""
|
||||
self.check_webhook("push_multiple_committers", TOPIC_BRANCH_EVENTS, expected_message)
|
||||
|
||||
def test_push_commits_multiple_committers_with_others(self) -> None:
|
||||
commit_info = "* first commit ([84b96adc644](https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed))\n"
|
||||
expected_message = f"""Tomasz [pushed](https://bitbucket.org/kolaszek/repository-name/branch/master) 10 commits to branch master. Commits by Tomasz (4), James (3), Brendon (2) and others (1).\n\n{commit_info * 9}* first commit ([84b96adc644](https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed))"""
|
||||
self.check_webhook(
|
||||
"push_multiple_committers_with_others", TOPIC_BRANCH_EVENTS, expected_message
|
||||
)
|
||||
|
||||
def test_push_commits_multiple_committers_filtered_by_branches(self) -> None:
|
||||
self.url = self.build_webhook_url(branches="master,development")
|
||||
commit_info = "* first commit ([84b96adc644](https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed))\n"
|
||||
expected_message = f"""Tomasz [pushed](https://bitbucket.org/kolaszek/repository-name/branch/master) 3 commits to branch master. Commits by Ben (2) and Tomasz (1).\n\n{commit_info * 2}* first commit ([84b96adc644](https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed))"""
|
||||
self.check_webhook("push_multiple_committers", TOPIC_BRANCH_EVENTS, expected_message)
|
||||
|
||||
def test_push_commits_multiple_committers_with_others_filtered_by_branches(
|
||||
self,
|
||||
) -> None:
|
||||
self.url = self.build_webhook_url(branches="master,development")
|
||||
commit_info = "* first commit ([84b96adc644](https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed))\n"
|
||||
expected_message = f"""Tomasz [pushed](https://bitbucket.org/kolaszek/repository-name/branch/master) 10 commits to branch master. Commits by Tomasz (4), James (3), Brendon (2) and others (1).\n\n{commit_info * 9}* first commit ([84b96adc644](https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed))"""
|
||||
self.check_webhook(
|
||||
"push_multiple_committers_with_others", TOPIC_BRANCH_EVENTS, expected_message
|
||||
)
|
||||
|
||||
def test_push_event_filtered_by_branches(self) -> None:
|
||||
self.url = self.build_webhook_url(branches="master,development")
|
||||
commit_info = "* first commit ([84b96adc644](https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed))"
|
||||
expected_message = f"Tomasz [pushed](https://bitbucket.org/kolaszek/repository-name/branch/master) 1 commit to branch master.\n\n{commit_info}"
|
||||
self.check_webhook("push", TOPIC_BRANCH_EVENTS, expected_message)
|
||||
|
||||
def test_push_commits_above_limit_event(self) -> None:
|
||||
commit_info = "* a ([6f161a7bced](https://bitbucket.org/kolaszek/repository-name/commits/6f161a7bced94430ac8947d87dbf45c6deee3fb0))\n"
|
||||
expected_message = f"Tomasz [pushed](https://bitbucket.org/kolaszek/repository-name/branches/compare/6f161a7bced94430ac8947d87dbf45c6deee3fb0..1221f2fda6f1e3654b09f1f3a08390e4cb25bb48) 5 commits to branch master.\n\n{(commit_info * 5)}[and more commit(s)]"
|
||||
self.check_webhook("push_commits_above_limit", TOPIC_BRANCH_EVENTS, expected_message)
|
||||
|
||||
def test_push_commits_above_limit_filtered_by_branches(self) -> None:
|
||||
self.url = self.build_webhook_url(branches="master,development")
|
||||
commit_info = "* a ([6f161a7bced](https://bitbucket.org/kolaszek/repository-name/commits/6f161a7bced94430ac8947d87dbf45c6deee3fb0))\n"
|
||||
expected_message = f"Tomasz [pushed](https://bitbucket.org/kolaszek/repository-name/branches/compare/6f161a7bced94430ac8947d87dbf45c6deee3fb0..1221f2fda6f1e3654b09f1f3a08390e4cb25bb48) 5 commits to branch master.\n\n{(commit_info * 5)}[and more commit(s)]"
|
||||
|
||||
self.check_webhook("push_commits_above_limit", TOPIC_BRANCH_EVENTS, expected_message)
|
||||
|
||||
def test_force_push_event(self) -> None:
|
||||
expected_message = "Tomasz [force pushed](https://bitbucket.org/kolaszek/repository-name/branch/master) to branch master. Head is now 25f93d22b719e2d678a7ad5ee0ef0d1fcdf39c12."
|
||||
self.check_webhook("force_push", TOPIC_BRANCH_EVENTS, expected_message)
|
||||
|
||||
def test_force_push_event_filtered_by_branches(self) -> None:
|
||||
self.url = self.build_webhook_url(branches="master,development")
|
||||
expected_message = "Tomasz [force pushed](https://bitbucket.org/kolaszek/repository-name/branch/master) to branch master. Head is now 25f93d22b719e2d678a7ad5ee0ef0d1fcdf39c12."
|
||||
self.check_webhook("force_push", TOPIC_BRANCH_EVENTS, expected_message)
|
||||
|
||||
def test_remove_branch_event(self) -> None:
|
||||
expected_message = "Tomasz deleted branch master."
|
||||
self.check_webhook("remove_branch", TOPIC_BRANCH_EVENTS, expected_message)
|
||||
|
||||
def test_fork_event(self) -> None:
|
||||
expected_message = "Tomasz forked the repository into [kolaszek/repository-name2](https://bitbucket.org/kolaszek/repository-name2)."
|
||||
self.check_webhook("fork", TOPIC, expected_message)
|
||||
|
||||
def test_commit_comment_created_event(self) -> None:
|
||||
expected_message = "Tomasz [commented](https://bitbucket.org/kolaszek/repository-name/commits/32c4ea19aa3af10acd08e419e2c354941a365d74#comment-3354963) on [32c4ea19aa3](https://bitbucket.org/kolaszek/repository-name/commits/32c4ea19aa3af10acd08e419e2c354941a365d74):\n``` quote\nNice fix!\n```"
|
||||
self.check_webhook("commit_comment_created", TOPIC, expected_message)
|
||||
|
||||
def test_commit_status_changed_event(self) -> None:
|
||||
expected_message = "[System mybuildtool](https://my-build-tool.com/builds/MY-PROJECT/BUILD-777) changed status of [9fec847784a](https://bitbucket.org/kolaszek/repository-name/commits/9fec847784abb10b2fa567ee63b85bd238955d0e) to SUCCESSFUL."
|
||||
self.check_webhook("commit_status_changed", TOPIC, expected_message)
|
||||
|
||||
def test_issue_created_event(self) -> None:
|
||||
expected_message = "Tomasz created [issue #1](https://bitbucket.org/kolaszek/repository-name/issues/2/bug) (assigned to Tomasz):\n\n``` quote\nSuch a bug\n```"
|
||||
self.check_webhook("issue_created", TOPIC_ISSUE_EVENTS, expected_message)
|
||||
|
||||
def test_issue_created_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "Tomasz created [issue #1 Bug](https://bitbucket.org/kolaszek/repository-name/issues/2/bug) (assigned to Tomasz):\n\n``` quote\nSuch a bug\n```"
|
||||
self.check_webhook("issue_created", expected_topic_name, expected_message)
|
||||
|
||||
def test_issue_updated_event(self) -> None:
|
||||
expected_message = "Tomasz updated [issue #1](https://bitbucket.org/kolaszek/repository-name/issues/2/bug)."
|
||||
self.check_webhook("issue_updated", TOPIC_ISSUE_EVENTS, expected_message)
|
||||
|
||||
def test_issue_commented_event(self) -> None:
|
||||
expected_message = "Tomasz [commented](https://bitbucket.org/kolaszek/repository-name/issues/2#comment-28973596) on [issue #1](https://bitbucket.org/kolaszek/repository-name/issues/2/bug)."
|
||||
self.check_webhook("issue_commented", TOPIC_ISSUE_EVENTS, expected_message)
|
||||
|
||||
def test_issue_commented_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "Tomasz [commented](https://bitbucket.org/kolaszek/repository-name/issues/2#comment-28973596) on [issue #1 Bug](https://bitbucket.org/kolaszek/repository-name/issues/2/bug)."
|
||||
self.check_webhook("issue_commented", expected_topic_name, expected_message)
|
||||
|
||||
def test_pull_request_created_event(self) -> None:
|
||||
expected_message = "Tomasz created [PR #1](https://bitbucket.org/kolaszek/repository-name/pull-requests/1) from `new-branch` to `master` (assigned to Tomasz Kolek):\n\n``` quote\ndescription\n```"
|
||||
self.check_webhook(
|
||||
"pull_request_created_or_updated",
|
||||
TOPIC_PR_EVENTS,
|
||||
expected_message,
|
||||
HTTP_X_EVENT_KEY="pullrequest:created",
|
||||
)
|
||||
|
||||
def test_pull_request_created_without_reviewer_username_event(self) -> None:
|
||||
expected_message = "Tomasz created [PR #1](https://bitbucket.org/kolaszek/repository-name/pull-requests/1) from `new-branch` to `master` (assigned to Tomasz Kolek):\n\n``` quote\ndescription\n```"
|
||||
self.check_webhook(
|
||||
"pull_request_created_or_updated_without_username",
|
||||
TOPIC_PR_EVENTS,
|
||||
expected_message,
|
||||
HTTP_X_EVENT_KEY="pullrequest:created",
|
||||
)
|
||||
|
||||
def test_pull_request_created_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "Tomasz created [PR #1 new commit](https://bitbucket.org/kolaszek/repository-name/pull-requests/1) from `new-branch` to `master` (assigned to Tomasz Kolek):\n\n``` quote\ndescription\n```"
|
||||
self.check_webhook(
|
||||
"pull_request_created_or_updated",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
HTTP_X_EVENT_KEY="pullrequest:created",
|
||||
)
|
||||
|
||||
def test_pull_request_updated_event(self) -> None:
|
||||
expected_message = "Tomasz updated [PR #1](https://bitbucket.org/kolaszek/repository-name/pull-requests/1) (assigned to Tomasz Kolek):\n\n``` quote\ndescription\n```"
|
||||
self.check_webhook(
|
||||
"pull_request_created_or_updated",
|
||||
TOPIC_PR_EVENTS,
|
||||
expected_message,
|
||||
HTTP_X_EVENT_KEY="pullrequest:updated",
|
||||
)
|
||||
|
||||
def test_pull_request_approved_event(self) -> None:
|
||||
expected_message = "Tomasz approved [PR #1](https://bitbucket.org/kolaszek/repository-name/pull-requests/1)."
|
||||
self.check_webhook(
|
||||
"pull_request_approved_or_unapproved",
|
||||
TOPIC_PR_EVENTS,
|
||||
expected_message,
|
||||
HTTP_X_EVENT_KEY="pullrequest:approved",
|
||||
)
|
||||
|
||||
def test_pull_request_approved_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "Tomasz approved [PR #1 new commit](https://bitbucket.org/kolaszek/repository-name/pull-requests/1)."
|
||||
self.check_webhook(
|
||||
"pull_request_approved_or_unapproved",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
HTTP_X_EVENT_KEY="pullrequest:approved",
|
||||
)
|
||||
|
||||
def test_pull_request_unapproved_event(self) -> None:
|
||||
expected_message = "Tomasz unapproved [PR #1](https://bitbucket.org/kolaszek/repository-name/pull-requests/1)."
|
||||
self.check_webhook(
|
||||
"pull_request_approved_or_unapproved",
|
||||
TOPIC_PR_EVENTS,
|
||||
expected_message,
|
||||
HTTP_X_EVENT_KEY="pullrequest:unapproved",
|
||||
)
|
||||
|
||||
def test_pull_request_declined_event(self) -> None:
|
||||
expected_message = "Tomasz rejected [PR #1](https://bitbucket.org/kolaszek/repository-name/pull-requests/1)."
|
||||
self.check_webhook(
|
||||
"pull_request_fulfilled_or_rejected",
|
||||
TOPIC_PR_EVENTS,
|
||||
expected_message,
|
||||
HTTP_X_EVENT_KEY="pullrequest:rejected",
|
||||
)
|
||||
|
||||
def test_pull_request_fulfilled_event(self) -> None:
|
||||
expected_message = "Tomasz merged [PR #1](https://bitbucket.org/kolaszek/repository-name/pull-requests/1) from `new-branch` to `master`."
|
||||
self.check_webhook(
|
||||
"pull_request_fulfilled_or_rejected",
|
||||
TOPIC_PR_EVENTS,
|
||||
expected_message,
|
||||
HTTP_X_EVENT_KEY="pullrequest:fulfilled",
|
||||
)
|
||||
|
||||
def test_pull_request_comment_created_event(self) -> None:
|
||||
expected_message = "Tomasz [commented](https://bitbucket.org/kolaszek/repository-name/pull-requests/3/_/diff#comment-20576503) on [PR #1](https://bitbucket.org/kolaszek/repository-name/pull-requests/3):\n\n``` quote\nComment1\n```"
|
||||
self.check_webhook(
|
||||
"pull_request_comment_action",
|
||||
TOPIC_PR_EVENTS,
|
||||
expected_message,
|
||||
HTTP_X_EVENT_KEY="pullrequest:comment_created",
|
||||
)
|
||||
|
||||
def test_pull_request_comment_created_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "Tomasz [commented](https://bitbucket.org/kolaszek/repository-name/pull-requests/3/_/diff#comment-20576503) on [PR #1 new commit](https://bitbucket.org/kolaszek/repository-name/pull-requests/3):\n\n``` quote\nComment1\n```"
|
||||
self.check_webhook(
|
||||
"pull_request_comment_action",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
HTTP_X_EVENT_KEY="pullrequest:comment_created",
|
||||
)
|
||||
|
||||
def test_pull_request_comment_updated_event(self) -> None:
|
||||
expected_message = "Tomasz updated a [comment](https://bitbucket.org/kolaszek/repository-name/pull-requests/3/_/diff#comment-20576503) on [PR #1](https://bitbucket.org/kolaszek/repository-name/pull-requests/3):\n\n``` quote\nComment1\n```"
|
||||
self.check_webhook(
|
||||
"pull_request_comment_action",
|
||||
TOPIC_PR_EVENTS,
|
||||
expected_message,
|
||||
HTTP_X_EVENT_KEY="pullrequest:comment_updated",
|
||||
)
|
||||
|
||||
def test_pull_request_comment_updated_with_custom_topic_in_url(self) -> None:
|
||||
self.url = self.build_webhook_url(topic="notifications")
|
||||
expected_topic_name = "notifications"
|
||||
expected_message = "Tomasz updated a [comment](https://bitbucket.org/kolaszek/repository-name/pull-requests/3/_/diff#comment-20576503) on [PR #1 new commit](https://bitbucket.org/kolaszek/repository-name/pull-requests/3):\n\n``` quote\nComment1\n```"
|
||||
self.check_webhook(
|
||||
"pull_request_comment_action",
|
||||
expected_topic_name,
|
||||
expected_message,
|
||||
HTTP_X_EVENT_KEY="pullrequest:comment_updated",
|
||||
)
|
||||
|
||||
def test_pull_request_comment_deleted_event(self) -> None:
|
||||
expected_message = "Tomasz deleted a [comment](https://bitbucket.org/kolaszek/repository-name/pull-requests/3/_/diff#comment-20576503) on [PR #1](https://bitbucket.org/kolaszek/repository-name/pull-requests/3):\n\n``` quote\nComment1\n```"
|
||||
self.check_webhook(
|
||||
"pull_request_comment_action",
|
||||
TOPIC_PR_EVENTS,
|
||||
expected_message,
|
||||
HTTP_X_EVENT_KEY="pullrequest:comment_deleted",
|
||||
)
|
||||
|
||||
def test_repo_updated_event(self) -> None:
|
||||
expected_message = "eeshangarg changed the website of the **new-name** repo to **http://zulipchat.com**.\neeshangarg changed the name of the **new-name** repo from **test-repo** to **new-name**.\neeshangarg changed the language of the **new-name** repo to **python**.\neeshangarg changed the full name of the **new-name** repo from **webhooktest/test-repo** to **webhooktest/new-name**.\neeshangarg changed the description of the **new-name** repo to **Random description.**"
|
||||
expected_topic_name = "new-name"
|
||||
self.check_webhook(
|
||||
"repo_updated", expected_topic_name, expected_message, HTTP_X_EVENT_KEY="repo:updated"
|
||||
)
|
||||
|
||||
def test_push_one_tag_event(self) -> None:
|
||||
expected_message = (
|
||||
"Tomasz pushed tag [a](https://bitbucket.org/kolaszek/repository-name/commits/tag/a)."
|
||||
)
|
||||
self.check_webhook(
|
||||
"push_one_tag", TOPIC, expected_message, HTTP_X_EVENT_KEY="pullrequest:push"
|
||||
)
|
||||
|
||||
def test_push_remove_tag_event(self) -> None:
|
||||
expected_message = (
|
||||
"Tomasz removed tag [a](https://bitbucket.org/kolaszek/repository-name/commits/tag/a)."
|
||||
)
|
||||
self.check_webhook(
|
||||
"push_remove_tag", TOPIC, expected_message, HTTP_X_EVENT_KEY="pullrequest:push"
|
||||
)
|
||||
|
||||
def test_push_more_than_one_tag_event(self) -> None:
|
||||
expected_message = "Tomasz pushed tag [{name}](https://bitbucket.org/kolaszek/repository-name/commits/tag/{name})."
|
||||
|
||||
self.subscribe(self.test_user, self.channel_name)
|
||||
payload = self.get_body("push_more_than_one_tag")
|
||||
|
||||
msg = self.send_webhook_payload(
|
||||
self.test_user,
|
||||
self.url,
|
||||
payload,
|
||||
content_type="application/json",
|
||||
HTTP_X_EVENT_KEY="pullrequest:push",
|
||||
)
|
||||
|
||||
msg = self.get_second_to_last_message()
|
||||
self.assert_channel_message(
|
||||
message=msg,
|
||||
channel_name=self.channel_name,
|
||||
topic_name=TOPIC,
|
||||
content=expected_message.format(name="a"),
|
||||
)
|
||||
|
||||
msg = self.get_last_message()
|
||||
self.assert_channel_message(
|
||||
message=msg,
|
||||
channel_name=self.channel_name,
|
||||
topic_name=TOPIC,
|
||||
content=expected_message.format(name="b"),
|
||||
)
|
||||
|
||||
def test_more_than_one_push_event(self) -> None:
|
||||
self.subscribe(self.test_user, self.channel_name)
|
||||
payload = self.get_body("more_than_one_push_event")
|
||||
|
||||
msg = self.send_webhook_payload(
|
||||
self.test_user,
|
||||
self.url,
|
||||
payload,
|
||||
content_type="application/json",
|
||||
HTTP_X_EVENT_KEY="pullrequest:push",
|
||||
)
|
||||
|
||||
msg = self.get_second_to_last_message()
|
||||
self.assert_channel_message(
|
||||
message=msg,
|
||||
channel_name=self.channel_name,
|
||||
topic_name=TOPIC_BRANCH_EVENTS,
|
||||
content="Tomasz [pushed](https://bitbucket.org/kolaszek/repository-name/branch/master) 1 commit to branch master.\n\n* first commit ([84b96adc644](https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed))",
|
||||
)
|
||||
|
||||
msg = self.get_last_message()
|
||||
self.assert_channel_message(
|
||||
message=msg,
|
||||
channel_name=self.channel_name,
|
||||
topic_name=TOPIC,
|
||||
content="Tomasz pushed tag [a](https://bitbucket.org/kolaszek/repository-name/commits/tag/a).",
|
||||
)
|
||||
|
||||
def test_more_than_one_push_event_filtered_by_branches(self) -> None:
|
||||
self.url = self.build_webhook_url(branches="master,development")
|
||||
|
||||
self.subscribe(self.test_user, self.channel_name)
|
||||
payload = self.get_body("more_than_one_push_event")
|
||||
|
||||
msg = self.send_webhook_payload(
|
||||
self.test_user,
|
||||
self.url,
|
||||
payload,
|
||||
content_type="application/json",
|
||||
HTTP_X_EVENT_KEY="pullrequest:push",
|
||||
)
|
||||
|
||||
msg = self.get_second_to_last_message()
|
||||
self.assert_channel_message(
|
||||
message=msg,
|
||||
channel_name=self.channel_name,
|
||||
topic_name=TOPIC_BRANCH_EVENTS,
|
||||
content="Tomasz [pushed](https://bitbucket.org/kolaszek/repository-name/branch/master) 1 commit to branch master.\n\n* first commit ([84b96adc644](https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed))",
|
||||
)
|
||||
|
||||
msg = self.get_last_message()
|
||||
self.assert_channel_message(
|
||||
message=msg,
|
||||
channel_name=self.channel_name,
|
||||
topic_name=TOPIC,
|
||||
content="Tomasz pushed tag [a](https://bitbucket.org/kolaszek/repository-name/commits/tag/a).",
|
||||
)
|
||||
|
||||
def test_more_than_one_push_event_filtered_by_branches_ignore(self) -> None:
|
||||
self.url = self.build_webhook_url(branches="changes,development")
|
||||
expected_message = (
|
||||
"Tomasz pushed tag [a](https://bitbucket.org/kolaszek/repository-name/commits/tag/a)."
|
||||
)
|
||||
self.check_webhook(
|
||||
"more_than_one_push_event", TOPIC, expected_message, HTTP_X_EVENT_KEY="pullrequest:push"
|
||||
)
|
||||
|
||||
@patch("zerver.webhooks.bitbucket.view.check_send_webhook_message")
|
||||
def test_push_event_filtered_by_branches_ignore(
|
||||
self, check_send_webhook_message_mock: MagicMock
|
||||
) -> None:
|
||||
self.url = self.build_webhook_url(branches="changes,development")
|
||||
payload = self.get_body("push")
|
||||
result = self.client_post(self.url, payload, content_type="application/json")
|
||||
self.assertFalse(check_send_webhook_message_mock.called)
|
||||
self.assert_json_success(result)
|
||||
|
||||
@patch("zerver.webhooks.bitbucket.view.check_send_webhook_message")
|
||||
def test_push_commits_above_limit_filtered_by_branches_ignore(
|
||||
self, check_send_webhook_message_mock: MagicMock
|
||||
) -> None:
|
||||
self.url = self.build_webhook_url(branches="changes,development")
|
||||
payload = self.get_body("push_commits_above_limit")
|
||||
result = self.client_post(self.url, payload, content_type="application/json")
|
||||
self.assertFalse(check_send_webhook_message_mock.called)
|
||||
self.assert_json_success(result)
|
||||
|
||||
@patch("zerver.webhooks.bitbucket.view.check_send_webhook_message")
|
||||
def test_force_push_event_filtered_by_branches_ignore(
|
||||
self, check_send_webhook_message_mock: MagicMock
|
||||
) -> None:
|
||||
self.url = self.build_webhook_url(branches="changes,development")
|
||||
payload = self.get_body("force_push")
|
||||
result = self.client_post(self.url, payload, content_type="application/json")
|
||||
self.assertFalse(check_send_webhook_message_mock.called)
|
||||
self.assert_json_success(result)
|
||||
|
||||
@patch("zerver.webhooks.bitbucket.view.check_send_webhook_message")
|
||||
def test_push_multiple_committers_filtered_by_branches_ignore(
|
||||
self, check_send_webhook_message_mock: MagicMock
|
||||
) -> None:
|
||||
self.url = self.build_webhook_url(branches="changes,development")
|
||||
payload = self.get_body("push_multiple_committers")
|
||||
result = self.client_post(self.url, payload, content_type="application/json")
|
||||
self.assertFalse(check_send_webhook_message_mock.called)
|
||||
self.assert_json_success(result)
|
||||
|
||||
@patch("zerver.webhooks.bitbucket.view.check_send_webhook_message")
|
||||
def test_push_multiple_committers_with_others_filtered_by_branches_ignore(
|
||||
self, check_send_webhook_message_mock: MagicMock
|
||||
) -> None:
|
||||
self.url = self.build_webhook_url(branches="changes,development")
|
||||
payload = self.get_body("push_multiple_committers_with_others")
|
||||
result = self.client_post(self.url, payload, content_type="application/json")
|
||||
self.assertFalse(check_send_webhook_message_mock.called)
|
||||
self.assert_json_success(result)
|
||||
|
||||
@patch("zerver.webhooks.bitbucket.view.check_send_webhook_message")
|
||||
def test_push_without_changes_ignore(self, check_send_webhook_message_mock: MagicMock) -> None:
|
||||
payload = self.get_body("push_without_changes")
|
||||
result = self.client_post(self.url, payload, content_type="application/json")
|
||||
self.assertFalse(check_send_webhook_message_mock.called)
|
||||
self.assert_json_success(result)
|
||||
|
||||
def test_get_user_info(self) -> None:
|
||||
request = HostRequestMock()
|
||||
request.content_type = "application/json"
|
||||
request.user = self.test_user
|
||||
RequestNotes.get_notes(request).client = get_client("test")
|
||||
|
||||
self.assertEqual(get_user_info(request, wrap_wild_value("request", {})), "Unknown user")
|
||||
|
||||
user = dict(
|
||||
nickname="alice",
|
||||
noisy_field="whatever",
|
||||
display_name="Alice Smith",
|
||||
)
|
||||
|
||||
self.assertEqual(get_user_info(request, wrap_wild_value("request", user)), "Alice Smith")
|
||||
del user["display_name"]
|
||||
|
||||
self.assertEqual(get_user_info(request, wrap_wild_value("request", user)), "alice")
|
||||
del user["nickname"]
|
||||
|
||||
self.assertEqual(get_user_info(request, wrap_wild_value("request", user)), "Unknown user")
|
||||
|
||||
def test_push_event_message_silent_mention(self) -> None:
|
||||
realm = get_realm("zulip")
|
||||
atlassian_field = try_add_realm_default_custom_profile_field(realm, "atlassian")
|
||||
hamlet = self.example_user("hamlet")
|
||||
self.set_user_custom_profile_data(
|
||||
hamlet,
|
||||
[{"id": atlassian_field.id, "value": "557058:c0b72ad0-1cb5-4018-9cdc-0cde8492c443"}],
|
||||
)
|
||||
commit_info = "* first commit ([84b96adc644](https://bitbucket.org/kolaszek/repository-name/commits/84b96adc644a30fd6465b3d196369d880762afed))"
|
||||
expected_message = f"@_**{hamlet.full_name}|{hamlet.id}** [pushed](https://bitbucket.org/kolaszek/repository-name/branch/master) 1 commit to branch master.\n\n{commit_info}"
|
||||
self.check_webhook("push", TOPIC_BRANCH_EVENTS, expected_message)
|
||||
578
zerver/webhooks/bitbucket/view.py
Normal file
578
zerver/webhooks/bitbucket/view.py
Normal file
@@ -0,0 +1,578 @@
|
||||
# Webhooks for external integrations.
|
||||
import re
|
||||
import string
|
||||
from typing import Protocol
|
||||
|
||||
from django.http import HttpRequest, HttpResponse
|
||||
|
||||
from zerver.decorator import log_unsupported_webhook_event, webhook_view
|
||||
from zerver.lib.exceptions import UnsupportedWebhookEventTypeError
|
||||
from zerver.lib.external_accounts import DEFAULT_EXTERNAL_ACCOUNTS
|
||||
from zerver.lib.mention import silent_mention_syntax_for_user
|
||||
from zerver.lib.partial import partial
|
||||
from zerver.lib.response import json_success
|
||||
from zerver.lib.typed_endpoint import JsonBodyPayload, typed_endpoint
|
||||
from zerver.lib.validator import WildValue, check_bool, check_int, check_string
|
||||
from zerver.lib.webhooks.common import (
|
||||
OptionalUserSpecifiedTopicStr,
|
||||
check_send_webhook_message,
|
||||
get_event_header,
|
||||
guess_zulip_user_from_external_account,
|
||||
)
|
||||
from zerver.lib.webhooks.git import (
|
||||
TOPIC_WITH_BRANCH_TEMPLATE,
|
||||
TOPIC_WITH_PR_OR_ISSUE_INFO_TEMPLATE,
|
||||
get_commits_comment_action_message,
|
||||
get_force_push_commits_event_message,
|
||||
get_issue_event_message,
|
||||
get_pull_request_event_message,
|
||||
get_push_commits_event_message,
|
||||
get_push_tag_event_message,
|
||||
get_remove_branch_event_message,
|
||||
get_short_sha,
|
||||
is_branch_name_notifiable,
|
||||
)
|
||||
from zerver.models import UserProfile
|
||||
|
||||
BITBUCKET_TOPIC_TEMPLATE = "{repository_name}"
|
||||
|
||||
BITBUCKET_FORK_BODY = "{actor} forked the repository into [{fork_name}]({fork_url})."
|
||||
BITBUCKET_COMMIT_STATUS_CHANGED_BODY = (
|
||||
"[System {key}]({system_url}) changed status of {commit_info} to {status}."
|
||||
)
|
||||
BITBUCKET_REPO_UPDATED_CHANGED = (
|
||||
"{actor} changed the {change} of the **{repo_name}** repo from **{old}** to **{new}**"
|
||||
)
|
||||
BITBUCKET_REPO_UPDATED_ADDED = (
|
||||
"{actor} changed the {change} of the **{repo_name}** repo to **{new}**"
|
||||
)
|
||||
|
||||
PULL_REQUEST_SUPPORTED_ACTIONS = [
|
||||
"approved",
|
||||
"unapproved",
|
||||
"created",
|
||||
"updated",
|
||||
"rejected",
|
||||
"fulfilled",
|
||||
"comment_created",
|
||||
"comment_updated",
|
||||
"comment_deleted",
|
||||
]
|
||||
|
||||
ALL_EVENT_TYPES = [
|
||||
"change_commit_status",
|
||||
"pull_request_comment_created",
|
||||
"pull_request_updated",
|
||||
"pull_request_unapproved",
|
||||
"push",
|
||||
"pull_request_approved",
|
||||
"pull_request_fulfilled",
|
||||
"issue_created",
|
||||
"issue_commented",
|
||||
"fork",
|
||||
"pull_request_comment_updated",
|
||||
"pull_request_created",
|
||||
"pull_request_rejected",
|
||||
"repo:updated",
|
||||
"issue_updated",
|
||||
"commit_comment",
|
||||
"pull_request_comment_deleted",
|
||||
]
|
||||
|
||||
|
||||
@webhook_view("Bitbucket2", all_event_types=ALL_EVENT_TYPES)
|
||||
@typed_endpoint
|
||||
def api_bitbucket_webhook(
|
||||
request: HttpRequest,
|
||||
user_profile: UserProfile,
|
||||
*,
|
||||
payload: JsonBodyPayload[WildValue],
|
||||
branches: str | None = None,
|
||||
user_specified_topic: OptionalUserSpecifiedTopicStr = None,
|
||||
) -> HttpResponse:
|
||||
type = get_type(request, payload)
|
||||
if type == "push":
|
||||
# ignore push events with no changes
|
||||
if not payload["push"]["changes"]:
|
||||
return json_success(request)
|
||||
branch = get_branch_name_for_push_event(payload)
|
||||
if branch and not is_branch_name_notifiable(branch, branches):
|
||||
return json_success(request)
|
||||
|
||||
topic_names = get_push_topics(payload)
|
||||
bodies = get_push_bodies(request, payload)
|
||||
|
||||
for b, t in zip(bodies, topic_names, strict=False):
|
||||
check_send_webhook_message(
|
||||
request, user_profile, t, b, type, unquote_url_parameters=True
|
||||
)
|
||||
else:
|
||||
topic_name = get_topic_based_on_type(payload, type)
|
||||
body_function = get_body_based_on_type(type)
|
||||
body = body_function(
|
||||
request,
|
||||
payload,
|
||||
include_title=user_specified_topic is not None,
|
||||
)
|
||||
|
||||
check_send_webhook_message(
|
||||
request, user_profile, topic_name, body, type, unquote_url_parameters=True
|
||||
)
|
||||
|
||||
return json_success(request)
|
||||
|
||||
|
||||
def get_topic_for_branch_specified_events(
|
||||
payload: WildValue, branch_name: str | None = None
|
||||
) -> str:
|
||||
return TOPIC_WITH_BRANCH_TEMPLATE.format(
|
||||
repo=get_repository_name(payload["repository"]),
|
||||
branch=get_branch_name_for_push_event(payload) if branch_name is None else branch_name,
|
||||
)
|
||||
|
||||
|
||||
def get_push_topics(payload: WildValue) -> list[str]:
|
||||
topics_list = []
|
||||
for change in payload["push"]["changes"]:
|
||||
potential_tag = (change["new"] or change["old"])["type"].tame(check_string)
|
||||
if potential_tag == "tag":
|
||||
topics_list.append(get_topic(payload))
|
||||
else:
|
||||
if change.get("new"):
|
||||
branch_name = change["new"]["name"].tame(check_string)
|
||||
else:
|
||||
branch_name = change["old"]["name"].tame(check_string)
|
||||
topics_list.append(get_topic_for_branch_specified_events(payload, branch_name))
|
||||
return topics_list
|
||||
|
||||
|
||||
def get_topic(payload: WildValue) -> str:
|
||||
return BITBUCKET_TOPIC_TEMPLATE.format(
|
||||
repository_name=get_repository_name(payload["repository"])
|
||||
)
|
||||
|
||||
|
||||
def get_topic_based_on_type(payload: WildValue, type: str) -> str:
|
||||
if type.startswith("pull_request"):
|
||||
return TOPIC_WITH_PR_OR_ISSUE_INFO_TEMPLATE.format(
|
||||
repo=get_repository_name(payload["repository"]),
|
||||
type="PR",
|
||||
id=payload["pullrequest"]["id"].tame(check_int),
|
||||
title=payload["pullrequest"]["title"].tame(check_string),
|
||||
)
|
||||
if type.startswith("issue"):
|
||||
return TOPIC_WITH_PR_OR_ISSUE_INFO_TEMPLATE.format(
|
||||
repo=get_repository_name(payload["repository"]),
|
||||
type="issue",
|
||||
id=payload["issue"]["id"].tame(check_int),
|
||||
title=payload["issue"]["title"].tame(check_string),
|
||||
)
|
||||
assert type != "push"
|
||||
return get_topic(payload)
|
||||
|
||||
|
||||
def get_type(request: HttpRequest, payload: WildValue) -> str:
|
||||
if "push" in payload:
|
||||
return "push"
|
||||
elif "fork" in payload:
|
||||
return "fork"
|
||||
elif "comment" in payload and "commit" in payload:
|
||||
return "commit_comment"
|
||||
elif "commit_status" in payload:
|
||||
return "change_commit_status"
|
||||
elif "issue" in payload:
|
||||
if "changes" in payload:
|
||||
return "issue_updated"
|
||||
if "comment" in payload:
|
||||
return "issue_commented"
|
||||
return "issue_created"
|
||||
elif "pullrequest" in payload:
|
||||
pull_request_template = "pull_request_{}"
|
||||
# Note that we only need the HTTP header to determine pullrequest events.
|
||||
# We rely on the payload itself to determine the other ones.
|
||||
event_key = get_event_header(request, "X-Event-Key", "BitBucket")
|
||||
action = re.match(r"pullrequest:(?P<action>.*)$", event_key)
|
||||
if action:
|
||||
action_group = action.group("action")
|
||||
if action_group in PULL_REQUEST_SUPPORTED_ACTIONS:
|
||||
return pull_request_template.format(action_group)
|
||||
else:
|
||||
event_key = get_event_header(request, "X-Event-Key", "BitBucket")
|
||||
if event_key == "repo:updated":
|
||||
return event_key
|
||||
|
||||
raise UnsupportedWebhookEventTypeError(event_key)
|
||||
|
||||
|
||||
class BodyGetter(Protocol):
|
||||
def __call__(self, request: HttpRequest, payload: WildValue, include_title: bool) -> str: ...
|
||||
|
||||
|
||||
def get_body_based_on_type(
|
||||
type: str,
|
||||
) -> BodyGetter:
|
||||
return GET_SINGLE_MESSAGE_BODY_DEPENDING_ON_TYPE_MAPPER[type]
|
||||
|
||||
|
||||
def get_push_bodies(request: HttpRequest, payload: WildValue) -> list[str]:
|
||||
messages_list = []
|
||||
for change in payload["push"]["changes"]:
|
||||
potential_tag = (change["new"] or change["old"])["type"].tame(check_string)
|
||||
if potential_tag == "tag":
|
||||
messages_list.append(get_push_tag_body(request, payload, change))
|
||||
# if change['new'] is None, that means a branch was deleted
|
||||
elif change["new"].value is None:
|
||||
messages_list.append(get_remove_branch_push_body(request, payload, change))
|
||||
elif change["forced"].tame(check_bool):
|
||||
messages_list.append(get_force_push_body(request, payload, change))
|
||||
else:
|
||||
messages_list.append(get_normal_push_body(request, payload, change))
|
||||
return messages_list
|
||||
|
||||
|
||||
def get_remove_branch_push_body(request: HttpRequest, payload: WildValue, change: WildValue) -> str:
|
||||
return get_remove_branch_event_message(
|
||||
get_actor_info(request, payload),
|
||||
change["old"]["name"].tame(check_string),
|
||||
)
|
||||
|
||||
|
||||
def get_force_push_body(request: HttpRequest, payload: WildValue, change: WildValue) -> str:
|
||||
return get_force_push_commits_event_message(
|
||||
get_actor_info(request, payload),
|
||||
change["links"]["html"]["href"].tame(check_string),
|
||||
change["new"]["name"].tame(check_string),
|
||||
change["new"]["target"]["hash"].tame(check_string),
|
||||
)
|
||||
|
||||
|
||||
def get_commit_author_name(request: HttpRequest, commit: WildValue) -> str:
|
||||
if "user" in commit["author"]:
|
||||
return get_user_info(request, commit["author"]["user"])
|
||||
return commit["author"]["raw"].tame(check_string).split()[0]
|
||||
|
||||
|
||||
def get_normal_push_body(request: HttpRequest, payload: WildValue, change: WildValue) -> str:
|
||||
commits_data = [
|
||||
{
|
||||
"name": get_commit_author_name(request, commit),
|
||||
"sha": commit["hash"].tame(check_string),
|
||||
"url": commit["links"]["html"]["href"].tame(check_string),
|
||||
"message": commit["message"].tame(check_string),
|
||||
}
|
||||
for commit in change["commits"]
|
||||
]
|
||||
|
||||
return get_push_commits_event_message(
|
||||
get_actor_info(request, payload),
|
||||
change["links"]["html"]["href"].tame(check_string),
|
||||
change["new"]["name"].tame(check_string),
|
||||
commits_data,
|
||||
is_truncated=change["truncated"].tame(check_bool),
|
||||
)
|
||||
|
||||
|
||||
def get_fork_body(request: HttpRequest, payload: WildValue, include_title: bool) -> str:
|
||||
return BITBUCKET_FORK_BODY.format(
|
||||
actor=get_user_info(request, payload["actor"]),
|
||||
fork_name=get_repository_full_name(payload["fork"]),
|
||||
fork_url=get_repository_url(payload["fork"]),
|
||||
)
|
||||
|
||||
|
||||
def get_commit_comment_body(request: HttpRequest, payload: WildValue, include_title: bool) -> str:
|
||||
comment = payload["comment"]
|
||||
action = "[commented]({})".format(comment["links"]["html"]["href"].tame(check_string))
|
||||
return get_commits_comment_action_message(
|
||||
get_actor_info(request, payload),
|
||||
action,
|
||||
comment["commit"]["links"]["html"]["href"].tame(check_string),
|
||||
comment["commit"]["hash"].tame(check_string),
|
||||
comment["content"]["raw"].tame(check_string),
|
||||
)
|
||||
|
||||
|
||||
def get_commit_status_changed_body(
|
||||
request: HttpRequest, payload: WildValue, include_title: bool
|
||||
) -> str:
|
||||
commit_api_url = payload["commit_status"]["links"]["commit"]["href"].tame(check_string)
|
||||
commit_id = commit_api_url.split("/")[-1]
|
||||
|
||||
commit_info = "[{short_commit_id}]({repo_url}/commits/{commit_id})".format(
|
||||
repo_url=get_repository_url(payload["repository"]),
|
||||
short_commit_id=get_short_sha(commit_id),
|
||||
commit_id=commit_id,
|
||||
)
|
||||
|
||||
return BITBUCKET_COMMIT_STATUS_CHANGED_BODY.format(
|
||||
key=payload["commit_status"]["key"].tame(check_string),
|
||||
system_url=payload["commit_status"]["url"].tame(check_string),
|
||||
commit_info=commit_info,
|
||||
status=payload["commit_status"]["state"].tame(check_string),
|
||||
)
|
||||
|
||||
|
||||
def get_issue_commented_body(request: HttpRequest, payload: WildValue, include_title: bool) -> str:
|
||||
action = "[commented]({}) on".format(
|
||||
payload["comment"]["links"]["html"]["href"].tame(check_string)
|
||||
)
|
||||
return get_issue_action_body(action, request, payload, include_title)
|
||||
|
||||
|
||||
def get_issue_action_body(
|
||||
action: str, request: HttpRequest, payload: WildValue, include_title: bool
|
||||
) -> str:
|
||||
issue = payload["issue"]
|
||||
assignee = None
|
||||
message = None
|
||||
if action == "created":
|
||||
if issue["assignee"]:
|
||||
assignee = get_user_info(request, issue["assignee"])
|
||||
message = issue["content"]["raw"].tame(check_string)
|
||||
|
||||
return get_issue_event_message(
|
||||
user_name=get_actor_info(request, payload),
|
||||
action=action,
|
||||
url=issue["links"]["html"]["href"].tame(check_string),
|
||||
number=issue["id"].tame(check_int),
|
||||
message=message,
|
||||
assignee=assignee,
|
||||
title=issue["title"].tame(check_string) if include_title else None,
|
||||
)
|
||||
|
||||
|
||||
def get_pull_request_action_body(
|
||||
action: str, request: HttpRequest, payload: WildValue, include_title: bool
|
||||
) -> str:
|
||||
pull_request = payload["pullrequest"]
|
||||
target_branch = None
|
||||
base_branch = None
|
||||
if action == "merged":
|
||||
target_branch = pull_request["source"]["branch"]["name"].tame(check_string)
|
||||
base_branch = pull_request["destination"]["branch"]["name"].tame(check_string)
|
||||
|
||||
return get_pull_request_event_message(
|
||||
user_name=get_actor_info(request, payload),
|
||||
action=action,
|
||||
url=get_pull_request_url(pull_request),
|
||||
number=pull_request["id"].tame(check_int),
|
||||
target_branch=target_branch,
|
||||
base_branch=base_branch,
|
||||
title=pull_request["title"].tame(check_string) if include_title else None,
|
||||
)
|
||||
|
||||
|
||||
def get_pull_request_created_or_updated_body(
|
||||
action: str, request: HttpRequest, payload: WildValue, include_title: bool
|
||||
) -> str:
|
||||
pull_request = payload["pullrequest"]
|
||||
assignee = None
|
||||
if pull_request["reviewers"]:
|
||||
assignee = get_user_info(request, pull_request["reviewers"][0])
|
||||
|
||||
return get_pull_request_event_message(
|
||||
user_name=get_actor_info(request, payload),
|
||||
action=action,
|
||||
url=get_pull_request_url(pull_request),
|
||||
number=pull_request["id"].tame(check_int),
|
||||
target_branch=(
|
||||
pull_request["source"]["branch"]["name"].tame(check_string)
|
||||
if action == "created"
|
||||
else None
|
||||
),
|
||||
base_branch=(
|
||||
pull_request["destination"]["branch"]["name"].tame(check_string)
|
||||
if action == "created"
|
||||
else None
|
||||
),
|
||||
message=pull_request["description"].tame(check_string),
|
||||
assignee=assignee,
|
||||
title=pull_request["title"].tame(check_string) if include_title else None,
|
||||
)
|
||||
|
||||
|
||||
def get_pull_request_comment_created_action_body(
|
||||
request: HttpRequest,
|
||||
payload: WildValue,
|
||||
include_title: bool,
|
||||
) -> str:
|
||||
action = "[commented]({})".format(
|
||||
payload["comment"]["links"]["html"]["href"].tame(check_string)
|
||||
)
|
||||
return get_pull_request_comment_action_body(request, payload, action, include_title)
|
||||
|
||||
|
||||
def get_pull_request_deleted_or_updated_comment_action_body(
|
||||
action: str,
|
||||
request: HttpRequest,
|
||||
payload: WildValue,
|
||||
include_title: bool,
|
||||
) -> str:
|
||||
action = "{} a [comment]({})".format(
|
||||
action, payload["comment"]["links"]["html"]["href"].tame(check_string)
|
||||
)
|
||||
return get_pull_request_comment_action_body(request, payload, action, include_title)
|
||||
|
||||
|
||||
def get_pull_request_comment_action_body(
|
||||
request: HttpRequest,
|
||||
payload: WildValue,
|
||||
action: str,
|
||||
include_title: bool,
|
||||
) -> str:
|
||||
action += " on"
|
||||
return get_pull_request_event_message(
|
||||
user_name=get_actor_info(request, payload),
|
||||
action=action,
|
||||
url=payload["pullrequest"]["links"]["html"]["href"].tame(check_string),
|
||||
number=payload["pullrequest"]["id"].tame(check_int),
|
||||
message=payload["comment"]["content"]["raw"].tame(check_string),
|
||||
title=payload["pullrequest"]["title"].tame(check_string) if include_title else None,
|
||||
)
|
||||
|
||||
|
||||
def get_push_tag_body(request: HttpRequest, payload: WildValue, change: WildValue) -> str:
|
||||
if change.get("new"):
|
||||
tag = change["new"]
|
||||
action = "pushed"
|
||||
elif change.get("old"):
|
||||
tag = change["old"]
|
||||
action = "removed"
|
||||
|
||||
return get_push_tag_event_message(
|
||||
get_actor_info(request, payload),
|
||||
tag["name"].tame(check_string),
|
||||
tag_url=tag["links"]["html"]["href"].tame(check_string),
|
||||
action=action,
|
||||
)
|
||||
|
||||
|
||||
def append_punctuation(title: str, message: str) -> str:
|
||||
if title[-1] not in string.punctuation:
|
||||
message = f"{message}."
|
||||
|
||||
return message
|
||||
|
||||
|
||||
def get_repo_updated_body(request: HttpRequest, payload: WildValue, include_title: bool) -> str:
|
||||
changes = ["website", "name", "links", "language", "full_name", "description"]
|
||||
body = ""
|
||||
repo_name = payload["repository"]["name"].tame(check_string)
|
||||
actor = get_actor_info(request, payload)
|
||||
|
||||
for change in changes:
|
||||
new = payload["changes"][change]["new"]
|
||||
old = payload["changes"][change]["old"]
|
||||
if change == "full_name":
|
||||
change = "full name"
|
||||
if new and old:
|
||||
message = BITBUCKET_REPO_UPDATED_CHANGED.format(
|
||||
actor=actor,
|
||||
change=change,
|
||||
repo_name=repo_name,
|
||||
old=str(old.value),
|
||||
new=str(new.value),
|
||||
)
|
||||
message = append_punctuation(str(new.value), message) + "\n"
|
||||
body += message
|
||||
elif new and not old:
|
||||
message = BITBUCKET_REPO_UPDATED_ADDED.format(
|
||||
actor=actor,
|
||||
change=change,
|
||||
repo_name=repo_name,
|
||||
new=str(new.value),
|
||||
)
|
||||
message = append_punctuation(str(new.value), message) + "\n"
|
||||
body += message
|
||||
|
||||
return body
|
||||
|
||||
|
||||
def get_pull_request_url(pullrequest_payload: WildValue) -> str:
|
||||
return pullrequest_payload["links"]["html"]["href"].tame(check_string)
|
||||
|
||||
|
||||
def get_repository_url(repository_payload: WildValue) -> str:
|
||||
return repository_payload["links"]["html"]["href"].tame(check_string)
|
||||
|
||||
|
||||
def get_repository_name(repository_payload: WildValue) -> str:
|
||||
return repository_payload["name"].tame(check_string)
|
||||
|
||||
|
||||
def get_repository_full_name(repository_payload: WildValue) -> str:
|
||||
return repository_payload["full_name"].tame(check_string)
|
||||
|
||||
|
||||
def get_user_info(request: HttpRequest, user: WildValue) -> str:
|
||||
assert isinstance(request.user, UserProfile)
|
||||
realm = request.user.realm
|
||||
|
||||
# See https://developer.atlassian.com/cloud/bitbucket/bitbucket-api-changes-gdpr/
|
||||
# Since GDPR, we don't get username; instead, we get account_id,
|
||||
# display_name, and nickname. Account IDs are specific to Atlassian Cloud products.
|
||||
# Bitbucket Data Center do not include account_id in their webhook payloads.
|
||||
if "account_id" in user:
|
||||
account_id = user["account_id"].tame(check_string)
|
||||
external_account_field_name = str(DEFAULT_EXTERNAL_ACCOUNTS["atlassian"].name)
|
||||
zulip_user = guess_zulip_user_from_external_account(
|
||||
realm,
|
||||
account_id,
|
||||
external_account_field_name,
|
||||
external_username_case_insensitive=True,
|
||||
)
|
||||
if zulip_user is not None:
|
||||
return silent_mention_syntax_for_user(zulip_user)
|
||||
|
||||
if "display_name" in user:
|
||||
return user["display_name"].tame(check_string)
|
||||
|
||||
if "nickname" in user:
|
||||
return user["nickname"].tame(check_string)
|
||||
|
||||
# We call this an unsupported_event, even though we
|
||||
# are technically still sending a message.
|
||||
log_unsupported_webhook_event(
|
||||
request=request,
|
||||
summary="Could not find display_name/nickname field",
|
||||
)
|
||||
|
||||
return "Unknown user"
|
||||
|
||||
|
||||
def get_actor_info(request: HttpRequest, payload: WildValue) -> str:
|
||||
actor = payload["actor"]
|
||||
return get_user_info(request, actor)
|
||||
|
||||
|
||||
def get_branch_name_for_push_event(payload: WildValue) -> str | None:
|
||||
change = payload["push"]["changes"][-1]
|
||||
potential_tag = (change["new"] or change["old"])["type"].tame(check_string)
|
||||
if potential_tag == "tag":
|
||||
return None
|
||||
else:
|
||||
return (change["new"] or change["old"])["name"].tame(check_string)
|
||||
|
||||
|
||||
GET_SINGLE_MESSAGE_BODY_DEPENDING_ON_TYPE_MAPPER: dict[str, BodyGetter] = {
|
||||
"fork": get_fork_body,
|
||||
"commit_comment": get_commit_comment_body,
|
||||
"change_commit_status": get_commit_status_changed_body,
|
||||
"issue_updated": partial(get_issue_action_body, "updated"),
|
||||
"issue_created": partial(get_issue_action_body, "created"),
|
||||
"issue_commented": get_issue_commented_body,
|
||||
"pull_request_created": partial(get_pull_request_created_or_updated_body, "created"),
|
||||
"pull_request_updated": partial(get_pull_request_created_or_updated_body, "updated"),
|
||||
"pull_request_approved": partial(get_pull_request_action_body, "approved"),
|
||||
"pull_request_unapproved": partial(get_pull_request_action_body, "unapproved"),
|
||||
"pull_request_fulfilled": partial(get_pull_request_action_body, "merged"),
|
||||
"pull_request_rejected": partial(get_pull_request_action_body, "rejected"),
|
||||
"pull_request_comment_created": get_pull_request_comment_created_action_body,
|
||||
"pull_request_comment_updated": partial(
|
||||
get_pull_request_deleted_or_updated_comment_action_body, "updated"
|
||||
),
|
||||
"pull_request_comment_deleted": partial(
|
||||
get_pull_request_deleted_or_updated_comment_action_body, "deleted"
|
||||
),
|
||||
"repo:updated": get_repo_updated_body,
|
||||
}
|
||||
Reference in New Issue
Block a user