From dffb5369207f30f4d1535d1bde7ca3ac2cf0053c Mon Sep 17 00:00:00 2001 From: "Hemanth V. Alluri" Date: Tue, 26 Mar 2019 19:34:09 +0530 Subject: [PATCH] webhooks/bitbucket3: Link actor name with their profile. --- zerver/webhooks/bitbucket3/tests.py | 74 ++++++++++++++--------------- zerver/webhooks/bitbucket3/view.py | 37 ++++++++------- 2 files changed, 57 insertions(+), 54 deletions(-) diff --git a/zerver/webhooks/bitbucket3/tests.py b/zerver/webhooks/bitbucket3/tests.py index 70ebf2480d..035ffa8d0c 100644 --- a/zerver/webhooks/bitbucket3/tests.py +++ b/zerver/webhooks/bitbucket3/tests.py @@ -10,69 +10,69 @@ class Bitbucket3HookTests(WebhookTestCase): # Core Repo Events: def test_commit_comment_added(self) -> None: - expected_message = """hypro999 commented on [508d1b6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/commits/508d1b67f1f8f3a25f543a030a7a178894aa9907)\n~~~ quote\nJust an arbitrary comment on a commit.\n~~~""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) commented on [508d1b6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/commits/508d1b67f1f8f3a25f543a030a7a178894aa9907)\n~~~ quote\nJust an arbitrary comment on a commit.\n~~~""" self.send_and_test_stream_message("commit_comment_added", self.EXPECTED_TOPIC, expected_message) def test_commit_comment_edited(self) -> None: - expected_message = """hypro999 edited their comment on [508d1b6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/commits/508d1b67f1f8f3a25f543a030a7a178894aa9907)\n~~~ quote\nJust an arbitrary comment on a commit. Nothing to see here...\n~~~""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) edited their comment on [508d1b6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/commits/508d1b67f1f8f3a25f543a030a7a178894aa9907)\n~~~ quote\nJust an arbitrary comment on a commit. Nothing to see here...\n~~~""" self.send_and_test_stream_message("commit_comment_edited", self.EXPECTED_TOPIC, expected_message) def test_commit_comment_deleted(self) -> None: - expected_message = """hypro999 deleted their comment on [508d1b6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/commits/508d1b67f1f8f3a25f543a030a7a178894aa9907)\n~~~ quote\nJust an arbitrary comment on a commit. Nothing to see here...\n~~~""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) deleted their comment on [508d1b6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/commits/508d1b67f1f8f3a25f543a030a7a178894aa9907)\n~~~ quote\nJust an arbitrary comment on a commit. Nothing to see here...\n~~~""" self.send_and_test_stream_message("commit_comment_deleted", self.EXPECTED_TOPIC, expected_message) def test_bitbucket3_repo_forked(self) -> None: - expected_message = """User Hemanth V. Alluri(login: hypro999) forked the repository into [sandbox fork](http://139.59.64.214:7990/users/hypro999/repos/sandbox-fork/browse).""" + expected_message = """User Hemanth V. Alluri(login: [hypro999](http://139.59.64.214:7990/users/hypro999)) forked the repository into [sandbox fork](http://139.59.64.214:7990/users/hypro999/repos/sandbox-fork/browse).""" self.send_and_test_stream_message("repo_forked", self.EXPECTED_TOPIC, expected_message) def test_bitbucket3_repo_modified(self) -> None: - expected_message = """hypro999 changed the name of the **sandbox** repo from **sandbox** to **sandbox v2**""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) changed the name of the **sandbox** repo from **sandbox** to **sandbox v2**""" expected_topic = "sandbox v2" self.send_and_test_stream_message("repo_modified", expected_topic, expected_message) # Repo Push Events: def test_push_add_branch(self) -> None: - expected_message = """hypro999 created branch2 branch""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) created branch2 branch""" expected_topic = self.EXPECTED_TOPIC_BRANCH_EVENTS.format(branch="branch2") self.send_and_test_stream_message("repo_push_add_branch", expected_topic, expected_message) def test_push_add_tag(self) -> None: - expected_message = """hypro999 pushed tag newtag""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) pushed tag newtag""" self.send_and_test_stream_message("repo_push_add_tag", self.EXPECTED_TOPIC, expected_message) def test_push_delete_branch(self) -> None: - expected_message = """hypro999 deleted branch branch2""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) deleted branch branch2""" expected_topic = self.EXPECTED_TOPIC_BRANCH_EVENTS.format(branch="branch2") self.send_and_test_stream_message("repo_push_delete_branch", expected_topic, expected_message) def test_push_delete_tag(self) -> None: - expected_message = """hypro999 removed tag test-tag""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) removed tag test-tag""" self.send_and_test_stream_message("repo_push_delete_tag", self.EXPECTED_TOPIC, expected_message) def test_push_update_single_branch(self) -> None: - expected_message = """hypro999 pushed to branch master. Head is now e68c981ef53dbab0a5ca320a2d8d80e216c70528.""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) pushed to branch master. Head is now e68c981ef53dbab0a5ca320a2d8d80e216c70528.""" expected_topic = self.EXPECTED_TOPIC_BRANCH_EVENTS.format(branch="master") self.send_and_test_stream_message("repo_push_update_single_branch", expected_topic, expected_message) def test_push_update_multiple_branches(self) -> None: - expected_message_first = """hypro999 pushed to branch branch1. Head is now 3980c2be32a7e23c795741d5dc1a2eecb9b85d6d.""" - expected_message_second = """hypro999 pushed to branch master. Head is now fc43d13cff1abb28631196944ba4fc4ad06a2cf2.""" + expected_message_first = """[hypro999](http://139.59.64.214:7990/users/hypro999) pushed to branch branch1. Head is now 3980c2be32a7e23c795741d5dc1a2eecb9b85d6d.""" + expected_message_second = """[hypro999](http://139.59.64.214:7990/users/hypro999) pushed to branch master. Head is now fc43d13cff1abb28631196944ba4fc4ad06a2cf2.""" self.send_and_test_stream_message("repo_push_update_multiple_branches") msg = self.get_last_message() @@ -85,14 +85,14 @@ class Bitbucket3HookTests(WebhookTestCase): def test_push_update_multiple_branches_with_branch_filter(self) -> None: self.url = self.build_webhook_url(branches='master') - expected_message = """hypro999 pushed to branch master. Head is now fc43d13cff1abb28631196944ba4fc4ad06a2cf2.""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) pushed to branch master. Head is now fc43d13cff1abb28631196944ba4fc4ad06a2cf2.""" expected_topic = self.EXPECTED_TOPIC_BRANCH_EVENTS.format(branch="master") self.send_and_test_stream_message("repo_push_update_multiple_branches", expected_topic, expected_message) self.url = self.build_webhook_url(branches='branch1') - expected_message = """hypro999 pushed to branch branch1. Head is now 3980c2be32a7e23c795741d5dc1a2eecb9b85d6d.""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) pushed to branch branch1. Head is now 3980c2be32a7e23c795741d5dc1a2eecb9b85d6d.""" expected_topic = self.EXPECTED_TOPIC_BRANCH_EVENTS.format(branch="branch1") self.send_and_test_stream_message("repo_push_update_multiple_branches", expected_topic, @@ -101,21 +101,21 @@ class Bitbucket3HookTests(WebhookTestCase): # Core PR Events: def test_pr_opened_without_reviewers(self) -> None: expected_topic = "sandbox / PR #1 Branch1" - expected_message = """hypro999 opened [PR #1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1)\nfrom `branch1` to `master`\n\n~~~ quote\n* Add file2.txt\r\n* Add file3.txt\n~~~""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) opened [PR #1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1)\nfrom `branch1` to `master`\n\n~~~ quote\n* Add file2.txt\r\n* Add file3.txt\n~~~""" self.send_and_test_stream_message("pull_request_opened_without_reviewers", expected_topic, expected_message) def test_pr_opened_without_description(self) -> None: expected_topic = "sandbox / PR #2 Add notes feature." - expected_message = """hypro999 opened [PR #2](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/2)\nfrom `master` to `master`""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) opened [PR #2](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/2)\nfrom `master` to `master`""" self.send_and_test_stream_message("pull_request_opened_without_description", expected_topic, expected_message) def test_pr_opened_with_two_reviewers(self) -> None: expected_topic = "sandbox / PR #5 Add Notes Feature" - expected_message = """hypro999 opened [PR #5](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/5)\nfrom `master` to `master` (assigned to [shimura](http://139.59.64.214:7990/users/shimura) and [sougo](http://139.59.64.214:7990/users/sougo) for review)""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) opened [PR #5](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/5)\nfrom `master` to `master` (assigned to [shimura](http://139.59.64.214:7990/users/shimura) and [sougo](http://139.59.64.214:7990/users/sougo) for review)""" self.send_and_test_stream_message("pull_request_opened_with_two_reviewers", expected_topic, expected_message) @@ -124,28 +124,28 @@ class Bitbucket3HookTests(WebhookTestCase): expected_topic = "sandbox / PR #5 Add Notes Feature" expected_topic = "custom_topic" self.url = self.build_webhook_url(topic='custom_topic') - expected_message = """hypro999 opened [PR #5 Add Notes Feature](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/5)\nfrom `master` to `master` (assigned to [shimura](http://139.59.64.214:7990/users/shimura) and [sougo](http://139.59.64.214:7990/users/sougo) for review)""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) opened [PR #5 Add Notes Feature](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/5)\nfrom `master` to `master` (assigned to [shimura](http://139.59.64.214:7990/users/shimura) and [sougo](http://139.59.64.214:7990/users/sougo) for review)""" self.send_and_test_stream_message("pull_request_opened_with_two_reviewers", expected_topic, expected_message) def test_pr_opened_with_mulitple_reviewers(self) -> None: expected_topic = "sandbox / PR #6 sample_file: Add sample_file.txt." - expected_message = """hypro999 opened [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6)\nfrom `master` to `master` (assigned to [sougo](http://139.59.64.214:7990/users/sougo), [zura](http://139.59.64.214:7990/users/zura) and [shimura](http://139.59.64.214:7990/users/shimura) for review)\n\n~~~ quote\nAdd a simple text file for further testing purposes.\n~~~""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) opened [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6)\nfrom `master` to `master` (assigned to [sougo](http://139.59.64.214:7990/users/sougo), [zura](http://139.59.64.214:7990/users/zura) and [shimura](http://139.59.64.214:7990/users/shimura) for review)\n\n~~~ quote\nAdd a simple text file for further testing purposes.\n~~~""" self.send_and_test_stream_message("pull_request_opened_with_multiple_reviewers", expected_topic, expected_message) def test_pr_modified(self) -> None: expected_topic = "sandbox / PR #1 Branch1" - expected_message = """hypro999 modified [PR #1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1)\nfrom `branch1` to `master` (assigned to [shimura](http://139.59.64.214:7990/users/shimura) for review)\n\n~~~ quote\n* Add file2.txt\n* Add file3.txt\nBoth of these files would be important additions to the project!\n~~~""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) modified [PR #1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1)\nfrom `branch1` to `master` (assigned to [shimura](http://139.59.64.214:7990/users/shimura) for review)\n\n~~~ quote\n* Add file2.txt\n* Add file3.txt\nBoth of these files would be important additions to the project!\n~~~""" self.send_and_test_stream_message("pull_request_modified", expected_topic, expected_message) def test_pr_modified_with_include_title(self) -> None: expected_topic = "custom_topic" - expected_message = """hypro999 modified [PR #1 Branch1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1)\nfrom `branch1` to `master` (assigned to [shimura](http://139.59.64.214:7990/users/shimura) for review)\n\n~~~ quote\n* Add file2.txt\n* Add file3.txt\nBoth of these files would be important additions to the project!\n~~~""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) modified [PR #1 Branch1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1)\nfrom `branch1` to `master` (assigned to [shimura](http://139.59.64.214:7990/users/shimura) for review)\n\n~~~ quote\n* Add file2.txt\n* Add file3.txt\nBoth of these files would be important additions to the project!\n~~~""" self.url = self.build_webhook_url(topic='custom_topic') self.send_and_test_stream_message("pull_request_modified", expected_topic, @@ -153,14 +153,14 @@ class Bitbucket3HookTests(WebhookTestCase): def test_pr_deleted(self) -> None: expected_topic = "sandbox / PR #2 Add notes feature." - expected_message = """hypro999 deleted [PR #2](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/2)""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) deleted [PR #2](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/2)""" self.send_and_test_stream_message("pull_request_deleted", expected_topic, expected_message) def test_pr_deleted_with_include_title(self) -> None: expected_topic = "custom_topic" - expected_message = """hypro999 deleted [PR #2 Add notes feature.](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/2)""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) deleted [PR #2 Add notes feature.](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/2)""" self.url = self.build_webhook_url(topic='custom_topic') self.send_and_test_stream_message("pull_request_deleted", expected_topic, @@ -168,14 +168,14 @@ class Bitbucket3HookTests(WebhookTestCase): def test_pr_declined(self) -> None: expected_topic = "sandbox / PR #7 Crazy Idea" - expected_message = """zura declined [PR #7](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/7)""" + expected_message = """[zura](http://139.59.64.214:7990/users/zura) declined [PR #7](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/7)""" self.send_and_test_stream_message("pull_request_declined", expected_topic, expected_message) def test_pr_merged(self) -> None: expected_topic = "sandbox / PR #6 sample_file: Add sample_file.txt." - expected_message = """zura merged [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6)""" + expected_message = """[zura](http://139.59.64.214:7990/users/zura) merged [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6)""" self.send_and_test_stream_message("pull_request_merged", expected_topic, expected_message) @@ -183,42 +183,42 @@ class Bitbucket3HookTests(WebhookTestCase): # PR Reviewer Events: def test_pr_approved(self) -> None: expected_topic = "sandbox / PR #6 sample_file: Add sample_file.txt." - expected_message = """zura approved [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6)""" + expected_message = """[zura](http://139.59.64.214:7990/users/zura) approved [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6)""" self.send_and_test_stream_message("pull_request_approved", expected_topic, expected_message) def test_pr_unapproved(self) -> None: expected_topic = "sandbox / PR #6 sample_file: Add sample_file.txt." - expected_message = """zura unapproved [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6)""" + expected_message = """[zura](http://139.59.64.214:7990/users/zura) unapproved [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6)""" self.send_and_test_stream_message("pull_request_unapproved", expected_topic, expected_message) def test_pr_marked_as_needs_review(self) -> None: expected_topic = "sandbox / PR #6 sample_file: Add sample_file.txt." - expected_message = """zura marked [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6) as \"needs work\"""" + expected_message = """[zura](http://139.59.64.214:7990/users/zura) marked [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6) as \"needs work\"""" self.send_and_test_stream_message("pull_request_needs_work", expected_topic, expected_message) def test_pr_marked_as_needs_review_and_include_title(self) -> None: expected_topic = "custom_topic" - expected_message = """zura marked [PR #6 sample_file: Add sample_file.txt.](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6) as \"needs work\"""" + expected_message = """[zura](http://139.59.64.214:7990/users/zura) marked [PR #6 sample_file: Add sample_file.txt.](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6) as \"needs work\"""" self.url = self.build_webhook_url(topic='custom_topic') self.send_and_test_stream_message("pull_request_needs_work", expected_topic, expected_message) def test_pull_request_reviewer_added(self) -> None: - expected_message = """hypro999 reassigned [PR #1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1) to [shimura](http://139.59.64.214:7990/users/shimura)""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) reassigned [PR #1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1) to [shimura](http://139.59.64.214:7990/users/shimura)""" expected_topic = "sandbox / PR #1 Branch1" self.send_and_test_stream_message("pull_request_add_reviewer", expected_topic, expected_message) def test_pull_request_reviewer_added_and_include_title(self) -> None: - expected_message = """hypro999 reassigned [PR #1 Branch1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1) to [shimura](http://139.59.64.214:7990/users/shimura)""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) reassigned [PR #1 Branch1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1) to [shimura](http://139.59.64.214:7990/users/shimura)""" expected_topic = "custom_topic" self.url = self.build_webhook_url(topic='custom_topic') self.send_and_test_stream_message("pull_request_add_reviewer", @@ -226,21 +226,21 @@ class Bitbucket3HookTests(WebhookTestCase): expected_message) def test_pull_request_reviewers_added(self) -> None: - expected_message = """hypro999 reassigned [PR #1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1) to [shimura](http://139.59.64.214:7990/users/shimura) and [sougo](http://139.59.64.214:7990/users/sougo)""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) reassigned [PR #1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1) to [shimura](http://139.59.64.214:7990/users/shimura) and [sougo](http://139.59.64.214:7990/users/sougo)""" expected_topic = "sandbox / PR #1 Branch1" self.send_and_test_stream_message("pull_request_add_two_reviewers", expected_topic, expected_message) def test_pull_request_remove_all_reviewers(self) -> None: - expected_message = """hypro999 removed all reviewers from [PR #1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1)""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) removed all reviewers from [PR #1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1)""" expected_topic = "sandbox / PR #1 Branch1" self.send_and_test_stream_message("pull_request_remove_reviewer", expected_topic, expected_message) def test_pull_request_remove_all_reviewers_with_title(self) -> None: - expected_message = """hypro999 removed all reviewers from [PR #1 Branch1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1)""" + expected_message = """[hypro999](http://139.59.64.214:7990/users/hypro999) removed all reviewers from [PR #1 Branch1](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/1)""" expected_topic = "sandbox / PR #1 Branch1" expected_topic = "custom_topic" self.url = self.build_webhook_url(topic='custom_topic') @@ -250,21 +250,21 @@ class Bitbucket3HookTests(WebhookTestCase): # PR Comment Events: def test_pull_request_comment_added(self) -> None: - expected_message = """zura commented on [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6)\n\n~~~ quote\nThis seems like a pretty good idea.\n~~~""" + expected_message = """[zura](http://139.59.64.214:7990/users/zura) commented on [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6)\n\n~~~ quote\nThis seems like a pretty good idea.\n~~~""" expected_topic = "sandbox / PR #6 sample_file: Add sample_file.txt." self.send_and_test_stream_message("pull_request_comment_added", expected_topic, expected_message) def test_pull_request_comment_edited(self) -> None: - expected_message = """zura edited their comment on [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6)\n\n~~~ quote\nThis seems like a pretty good idea. @shimura what do you think?\n~~~""" + expected_message = """[zura](http://139.59.64.214:7990/users/zura) edited their comment on [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6)\n\n~~~ quote\nThis seems like a pretty good idea. @shimura what do you think?\n~~~""" expected_topic = "sandbox / PR #6 sample_file: Add sample_file.txt." self.send_and_test_stream_message("pull_request_comment_edited", expected_topic, expected_message) def test_pull_request_comment_deleted(self) -> None: - expected_message = """zura deleted their comment on [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6)\n\n~~~ quote\nThis seems like a pretty good idea. @shimura what do you think?\n~~~""" + expected_message = """[zura](http://139.59.64.214:7990/users/zura) deleted their comment on [PR #6](http://139.59.64.214:7990/projects/SBOX/repos/sandbox/pull-requests/6)\n\n~~~ quote\nThis seems like a pretty good idea. @shimura what do you think?\n~~~""" expected_topic = "sandbox / PR #6 sample_file: Add sample_file.txt." self.send_and_test_stream_message("pull_request_comment_deleted", expected_topic, diff --git a/zerver/webhooks/bitbucket3/view.py b/zerver/webhooks/bitbucket3/view.py index e0b7caa38c..f7d544932c 100644 --- a/zerver/webhooks/bitbucket3/view.py +++ b/zerver/webhooks/bitbucket3/view.py @@ -37,15 +37,19 @@ PULL_REQUEST_OPENED_OR_MODIFIED_TEMPLATE_WITH_REVIEWERS_WITH_TITLE = """{user_na [PR #{number} {title}]({url})\nfrom `{source}` to `{destination}` (assigned to {assignees} for \ review)""" +def get_user_name(payload: Dict[str, Any]) -> str: + user_name = "[{name}]({url})".format(name=payload["actor"]["name"], + url=payload["actor"]["links"]["self"][0]["href"]) + return user_name + def repo_comment_handler(payload: Dict[str, Any], action: str) -> List[Dict[str, str]]: repo_name = payload["repository"]["name"] - user_name = payload["actor"]["name"] subject = BITBUCKET_TOPIC_TEMPLATE.format(repository_name=repo_name) sha = payload["commit"] commit_url = payload["repository"]["links"]["self"][0]["href"][:-6] # remove the "browse" at the end commit_url += "commits/%s" % (sha,) body = get_commits_comment_action_message( - user_name=user_name, + user_name=get_user_name(payload), action=action, commit_url=commit_url, sha=sha, @@ -58,7 +62,7 @@ def repo_forked_handler(payload: Dict[str, Any]) -> List[Dict[str, str]]: subject = BITBUCKET_TOPIC_TEMPLATE.format(repository_name=repo_name) body = BITBUCKET_FORK_BODY.format( display_name=payload["actor"]["displayName"], - username=payload["actor"]["name"], + username=get_user_name(payload), fork_name=payload["repository"]["name"], fork_url=payload["repository"]["links"]["self"][0]["href"] ) @@ -67,7 +71,7 @@ def repo_forked_handler(payload: Dict[str, Any]) -> List[Dict[str, str]]: def repo_modified_handler(payload: Dict[str, Any]) -> List[Dict[str, str]]: subject_new = BITBUCKET_TOPIC_TEMPLATE.format(repository_name=payload["new"]["name"]) body = BITBUCKET_REPO_UPDATED_CHANGED.format( - actor=payload["actor"]["name"], + actor=get_user_name(payload), change="name", repo_name=payload["old"]["name"], old=payload["old"]["name"], @@ -78,7 +82,7 @@ def repo_modified_handler(payload: Dict[str, Any]) -> List[Dict[str, str]]: def repo_push_branch_data(payload: Dict[str, Any], change: Dict[str, Any]) -> Dict[str, str]: event_type = change["type"] repo_name = payload["repository"]["name"] - user_name = payload["actor"]["name"] + user_name = get_user_name(payload) branch_name = change["ref"]["displayId"] branch_head = change["toHash"] @@ -107,7 +111,6 @@ def repo_push_tag_data(payload: Dict[str, Any], change: Dict[str, Any]) -> Dict[ event_type = change["type"] repo_name = payload["repository"]["name"] tag_name = change["ref"]["displayId"] - user_name = payload["actor"]["name"] if event_type == "ADD": action = "pushed" @@ -118,7 +121,7 @@ def repo_push_tag_data(payload: Dict[str, Any], change: Dict[str, Any]) -> Dict[ raise UnexpectedWebhookEventType("BitBucket Server", message) subject = BITBUCKET_TOPIC_TEMPLATE.format(repository_name=repo_name) - body = get_push_tag_event_message(user_name, tag_name, action=action) + body = get_push_tag_event_message(get_user_name(payload), tag_name, action=action) return {"subject": subject, "body": body} def repo_push_handler(payload: Dict[str, Any], branches: Optional[str]=None @@ -159,7 +162,7 @@ def get_pr_subject(repo: str, type: str, id: str, title: str) -> str: def get_simple_pr_body(payload: Dict[str, Any], action: str, include_title: Optional[bool]) -> str: pr = payload["pullRequest"] return get_pull_request_event_message( - user_name=payload["actor"]["name"], + user_name=get_user_name(payload), action=action, url=pr["links"]["self"][0]["href"], number=pr["id"], @@ -174,7 +177,7 @@ def get_pr_opened_or_modified_body(payload: Dict[str, Any], action: str, if assignees_string: # Then use the custom message template for this particular integration so that we can # specify the reviewers at the end of the message (but before the description/message). - parameters = {"user_name": payload["actor"]["name"], + parameters = {"user_name": get_user_name(payload), "action": action, "url": pr["links"]["self"][0]["href"], "number": pr["id"], @@ -193,7 +196,7 @@ def get_pr_opened_or_modified_body(payload: Dict[str, Any], action: str, body += '\n' + CONTENT_MESSAGE_TEMPLATE.format(message=description) return body return get_pull_request_event_message( - user_name=payload["actor"]["name"], + user_name=get_user_name(payload), action=action, url=pr["links"]["self"][0]["href"], number=pr["id"], @@ -208,12 +211,12 @@ def get_pr_needs_work_body(payload: Dict[str, Any], include_title: Optional[bool pr = payload["pullRequest"] if not include_title: return PULL_REQUEST_MARKED_AS_NEEDS_WORK_TEMPLATE.format( - user_name=payload["actor"]["name"], + user_name=get_user_name(payload), number=pr["id"], url=pr["links"]["self"][0]["href"] ) return PULL_REQUEST_MARKED_AS_NEEDS_WORK_TEMPLATE_WITH_TITLE.format( - user_name=payload["actor"]["name"], + user_name=get_user_name(payload), number=pr["id"], url=pr["links"]["self"][0]["href"], title=pr["title"] @@ -225,25 +228,25 @@ def get_pr_reassigned_body(payload: Dict[str, Any], include_title: Optional[bool if not assignees_string: if not include_title: return PULL_REQUEST_REASSIGNED_TO_NONE_TEMPLATE.format( - user_name=payload["actor"]["name"], + user_name=get_user_name(payload), number=pr["id"], url=pr["links"]["self"][0]["href"] ) return PULL_REQUEST_REASSIGNED_TO_NONE_TEMPLATE_WITH_TITLE.format( - user_name=payload["actor"]["name"], + user_name=get_user_name(payload), number=pr["id"], url=pr["links"]["self"][0]["href"], title=pr["title"] ) if not include_title: return PULL_REQUEST_REASSIGNED_TEMPLATE.format( - user_name=payload["actor"]["name"], + user_name=get_user_name(payload), number=pr["id"], url=pr["links"]["self"][0]["href"], assignees=assignees_string ) return PULL_REQUEST_REASSIGNED_TEMPLATE_WITH_TITLE.format( - user_name=payload["actor"]["name"], + user_name=get_user_name(payload), number=pr["id"], url=pr["links"]["self"][0]["href"], assignees=assignees_string, @@ -273,7 +276,7 @@ def pr_comment_handler(payload: Dict[str, Any], action: str, title=pr["title"]) message = payload["comment"]["text"] body = get_pull_request_event_message( - user_name=payload["actor"]["name"], + user_name=get_user_name(payload), action=action, url=pr["links"]["self"][0]["href"], number=pr["id"],