mirror of https://github.com/zulip/zulip.git
webhooks: Add support for GitHub discussions messages.
We aim to use Zulip topics thoughtfully in displaying messages from discussions, as well as linking to the discussion in every message so that it's easy to view them. Fixes #19938.
This commit is contained in:
parent
9381a3bd45
commit
0678e2610f
|
@ -0,0 +1,181 @@
|
|||
{
|
||||
"action": "created",
|
||||
"discussion": {
|
||||
"repository_url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
||||
"category": {
|
||||
"id": 32784361,
|
||||
"repository_id": 17273051,
|
||||
"emoji": ":speech_balloon:",
|
||||
"name": "General",
|
||||
"description": "Chat about anything and everything here",
|
||||
"created_at": "2021-03-24T12:41:54.000-05:00",
|
||||
"updated_at": "2021-03-24T12:41:54.000-05:00",
|
||||
"slug": "general",
|
||||
"is_answerable": false
|
||||
},
|
||||
"answer_html_url": null,
|
||||
"answer_chosen_at": null,
|
||||
"answer_chosen_by": null,
|
||||
"html_url": "https://github.com/baxterthehacker/public-repo/discussions/90",
|
||||
"id": 3297442,
|
||||
"node_id": "MDEwOkRpc2N1c3Npb24zMjk3NDQy",
|
||||
"number": 90,
|
||||
"title": "Welcome to discussions!",
|
||||
"user": {
|
||||
"login": "baxterthehacker",
|
||||
"id": 21031067,
|
||||
"node_id": "MDQ6VXNlcjIxMDMxMDY3",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/baxterthehacker",
|
||||
"html_url": "https://github.com/baxterthehacker",
|
||||
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
||||
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
||||
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
||||
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"state": "open",
|
||||
"locked": false,
|
||||
"comments": 0,
|
||||
"created_at": "2021-03-29T14:16:08Z",
|
||||
"updated_at": "2021-03-29T14:16:08Z",
|
||||
"author_association": "COLLABORATOR",
|
||||
"active_lock_reason": null,
|
||||
"body": "We're glad to have you here!"
|
||||
},
|
||||
"repository": {
|
||||
"id": 17273051,
|
||||
"node_id": "MDEwOlJlcG9zaXRvcnkxNzI3MzA1MQ==",
|
||||
"name": "public-repo",
|
||||
"full_name": "baxterthehacker/public-repo",
|
||||
"private": true,
|
||||
"owner": {
|
||||
"login": "baxterthehacker",
|
||||
"id": 6811672,
|
||||
"node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/6811672?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/baxterthehacker",
|
||||
"html_url": "https://github.com/baxterthehacker",
|
||||
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
||||
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
||||
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
||||
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
||||
"type": "Organization",
|
||||
"site_admin": false
|
||||
},
|
||||
"html_url": "https://github.com/baxterthehacker/public-repo",
|
||||
"description": "My first repo on GitHub!",
|
||||
"fork": false,
|
||||
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
||||
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
||||
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
||||
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
||||
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
||||
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
||||
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
||||
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
||||
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
||||
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
||||
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
||||
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
||||
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
||||
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
||||
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
||||
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
||||
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
||||
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
||||
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
||||
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
||||
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
||||
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
||||
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
||||
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
||||
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
||||
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
||||
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
||||
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
||||
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
||||
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
||||
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
||||
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
||||
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
||||
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
||||
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
||||
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
||||
"deployments_url": "https://api.github.com/repos/baxterthehacker/public-repo/deployments",
|
||||
"created_at": "2014-02-28T02:42:51Z",
|
||||
"updated_at": "2021-03-11T14:54:13Z",
|
||||
"pushed_at": "2021-03-11T14:54:10Z",
|
||||
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
||||
"ssh_url": "org-6811672@github.com:baxterthehacker/public-repo.git",
|
||||
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
||||
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
||||
"homepage": "",
|
||||
"size": 300,
|
||||
"stargazers_count": 0,
|
||||
"watchers_count": 0,
|
||||
"language": "JavaScript",
|
||||
"has_issues": true,
|
||||
"has_projects": false,
|
||||
"has_downloads": true,
|
||||
"has_wiki": false,
|
||||
"has_pages": true,
|
||||
"forks_count": 0,
|
||||
"mirror_url": null,
|
||||
"archived": false,
|
||||
"disabled": false,
|
||||
"open_issues_count": 39,
|
||||
"license": null,
|
||||
"forks": 0,
|
||||
"open_issues": 39,
|
||||
"watchers": 0,
|
||||
"default_branch": "main"
|
||||
},
|
||||
"organization": {
|
||||
"login": "baxterthehacker",
|
||||
"id": 6811672,
|
||||
"node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=",
|
||||
"url": "https://api.github.com/orgs/baxterthehacker",
|
||||
"repos_url": "https://api.github.com/orgs/baxterthehacker/repos",
|
||||
"events_url": "https://api.github.com/orgs/baxterthehacker/events",
|
||||
"hooks_url": "https://api.github.com/orgs/baxterthehacker/hooks",
|
||||
"issues_url": "https://api.github.com/orgs/baxterthehacker/issues",
|
||||
"members_url": "https://api.github.com/orgs/baxterthehacker/members{/member}",
|
||||
"public_members_url": "https://api.github.com/orgs/baxterthehacker/public_members{/member}",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/6811672?v=4",
|
||||
"description": "Working better together!"
|
||||
},
|
||||
"sender": {
|
||||
"login": "Codertocat",
|
||||
"id": 21031067,
|
||||
"node_id": "MDQ6VXNlcjIxMDMxMDY3",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/Codertocat",
|
||||
"html_url": "https://github.com/Codertocat",
|
||||
"followers_url": "https://api.github.com/users/Codertocat/followers",
|
||||
"following_url": "https://api.github.com/users/Codertocat/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/Codertocat/orgs",
|
||||
"repos_url": "https://api.github.com/users/Codertocat/repos",
|
||||
"events_url": "https://api.github.com/users/Codertocat/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/Codertocat/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
}
|
||||
}
|
|
@ -0,0 +1,214 @@
|
|||
{
|
||||
"action": "created",
|
||||
"comment": {
|
||||
"id": 544078,
|
||||
"node_id": "MDE3OkRpc2N1c3Npb25Db21tZW50NTQ0MDc4",
|
||||
"html_url": "https://github.com/baxterthehacker/public-repo/discussions/90#discussioncomment-544078",
|
||||
"parent_id": null,
|
||||
"child_comment_count": 0,
|
||||
"repository_url": "baxterthehacker/public-repo",
|
||||
"discussion_id": 3297442,
|
||||
"author_association": "COLLABORATOR",
|
||||
"user": {
|
||||
"login": "Codertocat",
|
||||
"id": 21031067,
|
||||
"node_id": "MDQ6VXNlcjIxMDMxMDY3",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/Codertocat",
|
||||
"html_url": "https://github.com/Codertocat",
|
||||
"followers_url": "https://api.github.com/users/Codertocat/followers",
|
||||
"following_url": "https://api.github.com/users/Codertocat/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/Codertocat/orgs",
|
||||
"repos_url": "https://api.github.com/users/Codertocat/repos",
|
||||
"events_url": "https://api.github.com/users/Codertocat/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/Codertocat/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
},
|
||||
"created_at": "2021-03-29T14:16:31Z",
|
||||
"updated_at": "2021-03-29T14:16:31Z",
|
||||
"body": "I have so many questions to ask you!"
|
||||
},
|
||||
"discussion": {
|
||||
"repository_url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
||||
"category": {
|
||||
"id": 32784361,
|
||||
"repository_id": 17273051,
|
||||
"emoji": ":speech_balloon:",
|
||||
"name": "General",
|
||||
"description": "Chat about anything and everything here",
|
||||
"created_at": "2021-03-24T12:41:54.000-05:00",
|
||||
"updated_at": "2021-03-24T12:41:54.000-05:00",
|
||||
"slug": "general",
|
||||
"is_answerable": false
|
||||
},
|
||||
"answer_html_url": null,
|
||||
"answer_chosen_at": null,
|
||||
"answer_chosen_by": null,
|
||||
"html_url": "https://github.com/baxterthehacker/public-repo/discussions/90",
|
||||
"id": 3297442,
|
||||
"node_id": "MDEwOkRpc2N1c3Npb24zMjk3NDQy",
|
||||
"number": 90,
|
||||
"title": "Welcome to discussions!",
|
||||
"user": {
|
||||
"login": "Codertocat",
|
||||
"id": 14935376,
|
||||
"node_id": "MDQ6VXNlcjE0OTM1Mzc2",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/14935376?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/Codertocat",
|
||||
"html_url": "https://github.com/Codertocat",
|
||||
"followers_url": "https://api.github.com/users/Codertocat/followers",
|
||||
"following_url": "https://api.github.com/users/Codertocat/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/Codertocat/orgs",
|
||||
"repos_url": "https://api.github.com/users/Codertocat/repos",
|
||||
"events_url": "https://api.github.com/users/Codertocat/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/Codertocat/received_events",
|
||||
"type": "User",
|
||||
"site_admin": true
|
||||
},
|
||||
"state": "open",
|
||||
"locked": false,
|
||||
"comments": 1,
|
||||
"created_at": "2021-03-29T14:16:08Z",
|
||||
"updated_at": "2021-03-29T14:16:31Z",
|
||||
"author_association": "COLLABORATOR",
|
||||
"active_lock_reason": null,
|
||||
"body": "We're glad to have you here!"
|
||||
},
|
||||
"repository": {
|
||||
"id": 17273051,
|
||||
"node_id": "MDEwOlJlcG9zaXRvcnkxNzI3MzA1MQ==",
|
||||
"name": "public-repo",
|
||||
"full_name": "baxterthehacker/public-repo",
|
||||
"private": true,
|
||||
"owner": {
|
||||
"login": "baxterthehacker",
|
||||
"id": 6811672,
|
||||
"node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/6811672?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/baxterthehacker",
|
||||
"html_url": "https://github.com/baxterthehacker",
|
||||
"followers_url": "https://api.github.com/users/baxterthehacker/followers",
|
||||
"following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/baxterthehacker/orgs",
|
||||
"repos_url": "https://api.github.com/users/baxterthehacker/repos",
|
||||
"events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/baxterthehacker/received_events",
|
||||
"type": "Organization",
|
||||
"site_admin": false
|
||||
},
|
||||
"html_url": "https://github.com/baxterthehacker/public-repo",
|
||||
"description": "My first repo on GitHub!",
|
||||
"fork": false,
|
||||
"url": "https://api.github.com/repos/baxterthehacker/public-repo",
|
||||
"forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks",
|
||||
"keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}",
|
||||
"collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}",
|
||||
"teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams",
|
||||
"hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks",
|
||||
"issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}",
|
||||
"events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events",
|
||||
"assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}",
|
||||
"branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}",
|
||||
"tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags",
|
||||
"blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}",
|
||||
"git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}",
|
||||
"git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}",
|
||||
"trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}",
|
||||
"statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}",
|
||||
"languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages",
|
||||
"stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers",
|
||||
"contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors",
|
||||
"subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers",
|
||||
"subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription",
|
||||
"commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}",
|
||||
"git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}",
|
||||
"comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}",
|
||||
"issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}",
|
||||
"contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}",
|
||||
"compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}",
|
||||
"merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges",
|
||||
"archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}",
|
||||
"downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads",
|
||||
"issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}",
|
||||
"pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}",
|
||||
"milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}",
|
||||
"notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}",
|
||||
"labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}",
|
||||
"releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}",
|
||||
"deployments_url": "https://api.github.com/repos/baxterthehacker/public-repo/deployments",
|
||||
"created_at": "2014-02-28T02:42:51Z",
|
||||
"updated_at": "2021-03-11T14:54:13Z",
|
||||
"pushed_at": "2021-03-11T14:54:10Z",
|
||||
"git_url": "git://github.com/baxterthehacker/public-repo.git",
|
||||
"ssh_url": "org-6811672@github.com:baxterthehacker/public-repo.git",
|
||||
"clone_url": "https://github.com/baxterthehacker/public-repo.git",
|
||||
"svn_url": "https://github.com/baxterthehacker/public-repo",
|
||||
"homepage": "",
|
||||
"size": 300,
|
||||
"stargazers_count": 0,
|
||||
"watchers_count": 0,
|
||||
"language": "JavaScript",
|
||||
"has_issues": true,
|
||||
"has_projects": false,
|
||||
"has_downloads": true,
|
||||
"has_wiki": false,
|
||||
"has_pages": true,
|
||||
"forks_count": 0,
|
||||
"mirror_url": null,
|
||||
"archived": false,
|
||||
"disabled": false,
|
||||
"open_issues_count": 39,
|
||||
"license": null,
|
||||
"forks": 0,
|
||||
"open_issues": 39,
|
||||
"watchers": 0,
|
||||
"default_branch": "main"
|
||||
},
|
||||
"organization": {
|
||||
"login": "baxterthehacker",
|
||||
"id": 6811672,
|
||||
"node_id": "MDEyOk9yZ2FuaXphdGlvbjY4MTE2NzI=",
|
||||
"url": "https://api.github.com/orgs/baxterthehacker",
|
||||
"repos_url": "https://api.github.com/orgs/baxterthehacker/repos",
|
||||
"events_url": "https://api.github.com/orgs/baxterthehacker/events",
|
||||
"hooks_url": "https://api.github.com/orgs/baxterthehacker/hooks",
|
||||
"issues_url": "https://api.github.com/orgs/baxterthehacker/issues",
|
||||
"members_url": "https://api.github.com/orgs/baxterthehacker/members{/member}",
|
||||
"public_members_url": "https://api.github.com/orgs/baxterthehacker/public_members{/member}",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/6811672?v=4",
|
||||
"description": "Working better together!"
|
||||
},
|
||||
"sender": {
|
||||
"login": "Codertocat",
|
||||
"id": 21031067,
|
||||
"node_id": "MDQ6VXNlcjIxMDMxMDY3",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/21031067?v=4",
|
||||
"gravatar_id": "",
|
||||
"url": "https://api.github.com/users/Codertocat",
|
||||
"html_url": "https://github.com/Codertocat",
|
||||
"followers_url": "https://api.github.com/users/Codertocat/followers",
|
||||
"following_url": "https://api.github.com/users/Codertocat/following{/other_user}",
|
||||
"gists_url": "https://api.github.com/users/Codertocat/gists{/gist_id}",
|
||||
"starred_url": "https://api.github.com/users/Codertocat/starred{/owner}{/repo}",
|
||||
"subscriptions_url": "https://api.github.com/users/Codertocat/subscriptions",
|
||||
"organizations_url": "https://api.github.com/users/Codertocat/orgs",
|
||||
"repos_url": "https://api.github.com/users/Codertocat/repos",
|
||||
"events_url": "https://api.github.com/users/Codertocat/events{/privacy}",
|
||||
"received_events_url": "https://api.github.com/users/Codertocat/received_events",
|
||||
"type": "User",
|
||||
"site_admin": false
|
||||
}
|
||||
}
|
|
@ -12,6 +12,7 @@ TOPIC_DEPLOYMENT = "public-repo / Deployment on production"
|
|||
TOPIC_ORGANIZATION = "baxterandthehackers organization"
|
||||
TOPIC_BRANCH = "public-repo / changes"
|
||||
TOPIC_WIKI = "public-repo / wiki pages"
|
||||
TOPIC_DISCUSSION = "public-repo discussion #90: Welcome to discussions!"
|
||||
|
||||
|
||||
class GitHubWebhookTest(WebhookTestCase):
|
||||
|
@ -483,3 +484,11 @@ A temporary team so that I can get some webhook fixtures!
|
|||
msg,
|
||||
)
|
||||
self.assertTrue(stack_info)
|
||||
|
||||
def test_discussion_msg(self) -> None:
|
||||
expected_message = "Codertocat started a new discussion [Welcome to discussions!](https://github.com/baxterthehacker/public-repo/discussions/90) in General:\n```quote\nWe're glad to have you here!\n```"
|
||||
self.check_webhook("discussion", TOPIC_DISCUSSION, expected_message)
|
||||
|
||||
def test_discussion_comment_msg(self) -> None:
|
||||
expected_message = "Codertocat [commented](https://github.com/baxterthehacker/public-repo/discussions/90#discussioncomment-544078) on [discussion](https://github.com/baxterthehacker/public-repo/discussions/90):\n```quote\nI have so many questions to ask you!\n```"
|
||||
self.check_webhook("discussion_comment", TOPIC_DISCUSSION, expected_message)
|
||||
|
|
|
@ -29,6 +29,14 @@ from zerver.models import UserProfile
|
|||
|
||||
fixture_to_headers = get_http_headers_from_filename("HTTP_X_GITHUB_EVENT")
|
||||
|
||||
TOPIC_FOR_DISCUSSION = "{repo} discussion #{number}: {title}"
|
||||
DISCUSSION_TEMPLATE = (
|
||||
"{author} started a new discussion [{title}]({url}) in {category}:\n```quote\n{body}\n```"
|
||||
)
|
||||
DISCUSSION_COMMENT_TEMPLATE = (
|
||||
"{author} [commented]({comment_url}) on [discussion]({discussion_url}):\n```quote\n{body}\n```"
|
||||
)
|
||||
|
||||
|
||||
class Helper:
|
||||
def __init__(
|
||||
|
@ -254,6 +262,27 @@ def get_push_commits_body(helper: Helper) -> str:
|
|||
)
|
||||
|
||||
|
||||
def get_discussion_body(helper: Helper) -> str:
|
||||
payload = helper.payload
|
||||
return DISCUSSION_TEMPLATE.format(
|
||||
author=get_sender_name(payload),
|
||||
title=payload["discussion"]["title"],
|
||||
url=payload["discussion"]["html_url"],
|
||||
body=payload["discussion"]["body"],
|
||||
category=payload["discussion"]["category"]["name"],
|
||||
)
|
||||
|
||||
|
||||
def get_discussion_comment_body(helper: Helper) -> str:
|
||||
payload = helper.payload
|
||||
return DISCUSSION_COMMENT_TEMPLATE.format(
|
||||
author=get_sender_name(payload),
|
||||
body=payload["comment"]["body"],
|
||||
discussion_url=payload["discussion"]["html_url"],
|
||||
comment_url=payload["comment"]["html_url"],
|
||||
)
|
||||
|
||||
|
||||
def get_public_body(helper: Helper) -> str:
|
||||
payload = helper.payload
|
||||
return "{} made the repository [{}]({}) public.".format(
|
||||
|
@ -602,6 +631,12 @@ def get_subject_based_on_type(payload: Dict[str, Any], event: str) -> str:
|
|||
return get_organization_name(payload)
|
||||
elif event == "check_run":
|
||||
return f"{get_repository_name(payload)} / checks"
|
||||
elif event.startswith("discussion"):
|
||||
return TOPIC_FOR_DISCUSSION.format(
|
||||
repo=get_repository_name(payload),
|
||||
number=payload["discussion"]["number"],
|
||||
title=payload["discussion"]["title"],
|
||||
)
|
||||
|
||||
return get_repository_name(payload)
|
||||
|
||||
|
@ -614,6 +649,8 @@ EVENT_FUNCTION_MAPPER: Dict[str, Callable[[Helper], str]] = {
|
|||
"delete": partial(get_create_or_delete_body, action="deleted"),
|
||||
"deployment": get_deployment_body,
|
||||
"deployment_status": get_change_deployment_status_body,
|
||||
"discussion": get_discussion_body,
|
||||
"discussion_comment": get_discussion_comment_body,
|
||||
"fork": get_fork_body,
|
||||
"gollum": get_wiki_pages_body,
|
||||
"issue_comment": get_issue_comment_body,
|
||||
|
|
Loading…
Reference in New Issue