diff --git a/zerver/webhooks/github/fixtures/issues__labeled.json b/zerver/webhooks/github/fixtures/issues__labeled.json new file mode 100644 index 0000000000..2e80e8e6b7 --- /dev/null +++ b/zerver/webhooks/github/fixtures/issues__labeled.json @@ -0,0 +1,202 @@ +{ + "action": "labeled", + "issue": { + "url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/9", + "repository_url": "https://api.github.com/repos/sbansal1999/testing-gh", + "labels_url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/9/labels{/name}", + "comments_url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/9/comments", + "events_url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/9/events", + "html_url": "https://github.com/sbansal1999/testing-gh/issues/9", + "id": 1661128666, + "node_id": "I_kwDOJRp_V85jAs_a", + "number": 9, + "title": "idk man", + "user": { + "login": "sbansal1999", + "id": 35286603, + "node_id": "MDQ6VXNlcjM1Mjg2NjAz", + "avatar_url": "https://avatars.githubusercontent.com/u/35286603?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sbansal1999", + "html_url": "https://github.com/sbansal1999", + "followers_url": "https://api.github.com/users/sbansal1999/followers", + "following_url": "https://api.github.com/users/sbansal1999/following{/other_user}", + "gists_url": "https://api.github.com/users/sbansal1999/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sbansal1999/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sbansal1999/subscriptions", + "organizations_url": "https://api.github.com/users/sbansal1999/orgs", + "repos_url": "https://api.github.com/users/sbansal1999/repos", + "events_url": "https://api.github.com/users/sbansal1999/events{/privacy}", + "received_events_url": "https://api.github.com/users/sbansal1999/received_events", + "type": "User", + "site_admin": false + }, + "labels": [ + { + "id": 5340671086, + "node_id": "LA_kwDOJRp_V88AAAABPlQsbg", + "url": "https://api.github.com/repos/sbansal1999/testing-gh/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something isn't working" + } + ], + "state": "open", + "locked": false, + "assignee": null, + "assignees": [], + "milestone": null, + "comments": 2, + "created_at": "2023-04-10T17:55:43Z", + "updated_at": "2023-05-30T07:21:54Z", + "closed_at": null, + "author_association": "OWNER", + "active_lock_reason": null, + "body": "This is some random Issue description which will be used to test the Zulip GitHub Integration.", + "reactions": { + "url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/9/reactions", + "total_count": 0, + "+1": 0, + "-1": 0, + "laugh": 0, + "hooray": 0, + "confused": 0, + "heart": 0, + "rocket": 0, + "eyes": 0 + }, + "timeline_url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/9/timeline", + "performed_via_github_app": null, + "state_reason": null + }, + "label": { + "id": 5340671086, + "node_id": "LA_kwDOJRp_V88AAAABPlQsbg", + "url": "https://api.github.com/repos/sbansal1999/testing-gh/labels/bug", + "name": "bug", + "color": "d73a4a", + "default": true, + "description": "Something isn't working" + }, + "repository": { + "id": 622493527, + "node_id": "R_kgDOJRp_Vw", + "name": "testing-gh", + "full_name": "sbansal1999/testing-gh", + "private": false, + "owner": { + "login": "sbansal1999", + "id": 35286603, + "node_id": "MDQ6VXNlcjM1Mjg2NjAz", + "avatar_url": "https://avatars.githubusercontent.com/u/35286603?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sbansal1999", + "html_url": "https://github.com/sbansal1999", + "followers_url": "https://api.github.com/users/sbansal1999/followers", + "following_url": "https://api.github.com/users/sbansal1999/following{/other_user}", + "gists_url": "https://api.github.com/users/sbansal1999/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sbansal1999/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sbansal1999/subscriptions", + "organizations_url": "https://api.github.com/users/sbansal1999/orgs", + "repos_url": "https://api.github.com/users/sbansal1999/repos", + "events_url": "https://api.github.com/users/sbansal1999/events{/privacy}", + "received_events_url": "https://api.github.com/users/sbansal1999/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/sbansal1999/testing-gh", + "description": null, + "fork": false, + "url": "https://api.github.com/repos/sbansal1999/testing-gh", + "forks_url": "https://api.github.com/repos/sbansal1999/testing-gh/forks", + "keys_url": "https://api.github.com/repos/sbansal1999/testing-gh/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/sbansal1999/testing-gh/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/sbansal1999/testing-gh/teams", + "hooks_url": "https://api.github.com/repos/sbansal1999/testing-gh/hooks", + "issue_events_url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/events{/number}", + "events_url": "https://api.github.com/repos/sbansal1999/testing-gh/events", + "assignees_url": "https://api.github.com/repos/sbansal1999/testing-gh/assignees{/user}", + "branches_url": "https://api.github.com/repos/sbansal1999/testing-gh/branches{/branch}", + "tags_url": "https://api.github.com/repos/sbansal1999/testing-gh/tags", + "blobs_url": "https://api.github.com/repos/sbansal1999/testing-gh/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/sbansal1999/testing-gh/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/sbansal1999/testing-gh/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/sbansal1999/testing-gh/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/sbansal1999/testing-gh/statuses/{sha}", + "languages_url": "https://api.github.com/repos/sbansal1999/testing-gh/languages", + "stargazers_url": "https://api.github.com/repos/sbansal1999/testing-gh/stargazers", + "contributors_url": "https://api.github.com/repos/sbansal1999/testing-gh/contributors", + "subscribers_url": "https://api.github.com/repos/sbansal1999/testing-gh/subscribers", + "subscription_url": "https://api.github.com/repos/sbansal1999/testing-gh/subscription", + "commits_url": "https://api.github.com/repos/sbansal1999/testing-gh/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/sbansal1999/testing-gh/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/sbansal1999/testing-gh/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/sbansal1999/testing-gh/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/sbansal1999/testing-gh/contents/{+path}", + "compare_url": "https://api.github.com/repos/sbansal1999/testing-gh/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/sbansal1999/testing-gh/merges", + "archive_url": "https://api.github.com/repos/sbansal1999/testing-gh/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/sbansal1999/testing-gh/downloads", + "issues_url": "https://api.github.com/repos/sbansal1999/testing-gh/issues{/number}", + "pulls_url": "https://api.github.com/repos/sbansal1999/testing-gh/pulls{/number}", + "milestones_url": "https://api.github.com/repos/sbansal1999/testing-gh/milestones{/number}", + "notifications_url": "https://api.github.com/repos/sbansal1999/testing-gh/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/sbansal1999/testing-gh/labels{/name}", + "releases_url": "https://api.github.com/repos/sbansal1999/testing-gh/releases{/id}", + "deployments_url": "https://api.github.com/repos/sbansal1999/testing-gh/deployments", + "created_at": "2023-04-02T09:31:40Z", + "updated_at": "2023-04-02T09:31:40Z", + "pushed_at": "2023-05-29T16:34:46Z", + "git_url": "git://github.com/sbansal1999/testing-gh.git", + "ssh_url": "git@github.com:sbansal1999/testing-gh.git", + "clone_url": "https://github.com/sbansal1999/testing-gh.git", + "svn_url": "https://github.com/sbansal1999/testing-gh", + "homepage": null, + "size": 0, + "stargazers_count": 0, + "watchers_count": 0, + "language": null, + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "has_discussions": false, + "forks_count": 0, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 8, + "license": null, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [], + "visibility": "public", + "forks": 0, + "open_issues": 8, + "watchers": 0, + "default_branch": "fixing-typo" + }, + "sender": { + "login": "sbansal1999", + "id": 35286603, + "node_id": "MDQ6VXNlcjM1Mjg2NjAz", + "avatar_url": "https://avatars.githubusercontent.com/u/35286603?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/sbansal1999", + "html_url": "https://github.com/sbansal1999", + "followers_url": "https://api.github.com/users/sbansal1999/followers", + "following_url": "https://api.github.com/users/sbansal1999/following{/other_user}", + "gists_url": "https://api.github.com/users/sbansal1999/gists{/gist_id}", + "starred_url": "https://api.github.com/users/sbansal1999/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/sbansal1999/subscriptions", + "organizations_url": "https://api.github.com/users/sbansal1999/orgs", + "repos_url": "https://api.github.com/users/sbansal1999/repos", + "events_url": "https://api.github.com/users/sbansal1999/events{/privacy}", + "received_events_url": "https://api.github.com/users/sbansal1999/received_events", + "type": "User", + "site_admin": false + } +} diff --git a/zerver/webhooks/github/tests.py b/zerver/webhooks/github/tests.py index 41ca6451fe..3e2c682286 100644 --- a/zerver/webhooks/github/tests.py +++ b/zerver/webhooks/github/tests.py @@ -177,6 +177,17 @@ class GitHubWebhookTest(WebhookTestCase): expected_message = "sbansal1999 unassigned sbansal1999 from [issue #9 idk man](https://github.com/sbansal1999/testing-gh/issues/9)." self.check_webhook("issues__unassigned", expected_topic, expected_message) + def test_issue_labeled(self) -> None: + expected_topic = "testing-gh / issue #9 idk man" + expected_message = "sbansal1999 labeled [issue #9](https://github.com/sbansal1999/testing-gh/issues/9):\n\n~~~ quote\nThis is some random Issue description which will be used to test the Zulip GitHub Integration.\n~~~" + self.check_webhook("issues__labeled", expected_topic, expected_message) + + def test_issue_labeled_with_custom_topic_in_url(self) -> None: + self.url = self.build_webhook_url(topic="notifications") + expected_topic = "notifications" + expected_message = "sbansal1999 labeled [issue #9 idk man](https://github.com/sbansal1999/testing-gh/issues/9):\n\n~~~ quote\nThis is some random Issue description which will be used to test the Zulip GitHub Integration.\n~~~" + self.check_webhook("issues__labeled", expected_topic, expected_message) + def test_membership_msg(self) -> None: expected_message = ( "baxterthehacker added [kdaigle](https://github.com/kdaigle) to the Contractors team."