From 96955af59bf12dedb52a4182dd83e25bebf4c134 Mon Sep 17 00:00:00 2001 From: "lijiacheng.ljc" Date: Wed, 21 Feb 2024 16:09:54 +0800 Subject: [PATCH] fix: main view will not render --- src/queue/worker/github.ts | 46 +- test/fixtures/index.ts | 4 + ...ull_request_review_submitted_approved.json | 585 ++++++++++++++++++ test/queue/__snapshots__/index.test.ts.snap | 16 + test/queue/index.test.ts | 32 + 5 files changed, 662 insertions(+), 21 deletions(-) create mode 100644 test/fixtures/pull_request_review_submitted_approved.json diff --git a/src/queue/worker/github.ts b/src/queue/worker/github.ts index f8569459..5102e19a 100644 --- a/src/queue/worker/github.ts +++ b/src/queue/worker/github.ts @@ -220,33 +220,37 @@ class EventComposite { toResult() { const { mainView, subView } = this; - const chunked = chunk(subView, 5); const result = [] as IResult[]; const separator = '\n\n---\n\n'; - chunked.forEach((v, i) => { - let title = ''; - let eventName = ''; - let text = v.map((d) => d.markdown.text).join(separator); - - if (i === 0 && mainView) { - title = mainView.markdown.title; - eventName = mainView.eventName; - text = mainView.markdown.text + separator + text; - } else if (subView.length > 0) { - title = subView[0].markdown.title; - eventName = subView[0].eventName; - } + if (subView.length > 0) { + const chunked = chunk(subView, 5); + chunked.forEach((v, i) => { + let title = ''; + let eventName = ''; + let text = v.map((d) => d.markdown.text).join(separator); + + if (i === 0 && mainView) { + title = mainView.markdown.title; + eventName = mainView.eventName; + text = mainView.markdown.text + separator + text; + } else if (subView.length > 0) { + title = subView[0].markdown.title; + eventName = subView[0].eventName; + } - result.push({ - eventName, - markdown: { - title, - text, - }, + result.push({ + eventName, + markdown: { + title, + text, + }, + }); }); - }); + } else if (mainView) { + result.push(mainView); + } return result; } diff --git a/test/fixtures/index.ts b/test/fixtures/index.ts index 8b07b25c..4f19b2b3 100644 --- a/test/fixtures/index.ts +++ b/test/fixtures/index.ts @@ -12,6 +12,7 @@ import _pr2060 from './pr-2060.json'; import _pull_request_edited_base from './pull_request_edited_base.json'; import _pull_request_edited_wip from './pull_request_edited_wip.json'; import _pull_request_review_4_submitted_changes_requested from './pull_request_review_4_submitted_changes_requested.json'; +import _pull_request_review_submitted_approved from './pull_request_review_submitted_approved.json'; import _release_published from './release_published.json'; export const pull_request_review_4_submitted_changes_requested = @@ -31,4 +32,7 @@ export const antd_mini_release_published = export const issue_opened_event = _issue_opened as IssuesOpenedEvent; +export const pull_request_review_submitted_approved = + _pull_request_review_submitted_approved as PullRequestReviewSubmittedEvent; + export * from './generated'; diff --git a/test/fixtures/pull_request_review_submitted_approved.json b/test/fixtures/pull_request_review_submitted_approved.json new file mode 100644 index 00000000..46be5f8c --- /dev/null +++ b/test/fixtures/pull_request_review_submitted_approved.json @@ -0,0 +1,585 @@ +{ + "action": "submitted", + "review": { + "id": 1892322711, + "node_id": "PRR_kwDOGZOevM5wyo2X", + "user": { + "login": "bytemain", + "id": 13938334, + "node_id": "MDQ6VXNlcjEzOTM4MzM0", + "avatar_url": "https://avatars.githubusercontent.com/u/13938334?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bytemain", + "html_url": "https://github.com/bytemain", + "followers_url": "https://api.github.com/users/bytemain/followers", + "following_url": "https://api.github.com/users/bytemain/following{/other_user}", + "gists_url": "https://api.github.com/users/bytemain/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bytemain/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bytemain/subscriptions", + "organizations_url": "https://api.github.com/users/bytemain/orgs", + "repos_url": "https://api.github.com/users/bytemain/repos", + "events_url": "https://api.github.com/users/bytemain/events{/privacy}", + "received_events_url": "https://api.github.com/users/bytemain/received_events", + "type": "User", + "site_admin": false + }, + "body": "", + "commit_id": "9bd480e28bd1926e1145a9c2c04366b767afbd84", + "submitted_at": "2024-02-21T07:59:22Z", + "state": "approved", + "html_url": "https://github.com/opensumi/core/pull/3345#pullrequestreview-1892322711", + "pull_request_url": "https://api.github.com/repos/opensumi/core/pulls/3345", + "author_association": "MEMBER", + "_links": { + "html": { + "href": "https://github.com/opensumi/core/pull/3345#pullrequestreview-1892322711" + }, + "pull_request": { + "href": "https://api.github.com/repos/opensumi/core/pulls/3345" + } + } + }, + "pull_request": { + "url": "https://api.github.com/repos/opensumi/core/pulls/3345", + "id": 1732272858, + "node_id": "PR_kwDOGZOevM5nQGLa", + "html_url": "https://github.com/opensumi/core/pull/3345", + "diff_url": "https://github.com/opensumi/core/pull/3345.diff", + "patch_url": "https://github.com/opensumi/core/pull/3345.patch", + "issue_url": "https://api.github.com/repos/opensumi/core/issues/3345", + "number": 3345, + "state": "open", + "locked": false, + "title": "feat: support SourceControl.historyProvider", + "user": { + "login": "pipiiiiii", + "id": 9477255, + "node_id": "MDQ6VXNlcjk0NzcyNTU=", + "avatar_url": "https://avatars.githubusercontent.com/u/9477255?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/pipiiiiii", + "html_url": "https://github.com/pipiiiiii", + "followers_url": "https://api.github.com/users/pipiiiiii/followers", + "following_url": "https://api.github.com/users/pipiiiiii/following{/other_user}", + "gists_url": "https://api.github.com/users/pipiiiiii/gists{/gist_id}", + "starred_url": "https://api.github.com/users/pipiiiiii/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pipiiiiii/subscriptions", + "organizations_url": "https://api.github.com/users/pipiiiiii/orgs", + "repos_url": "https://api.github.com/users/pipiiiiii/repos", + "events_url": "https://api.github.com/users/pipiiiiii/events{/privacy}", + "received_events_url": "https://api.github.com/users/pipiiiiii/received_events", + "type": "User", + "site_admin": false + }, + "body": "### Types\r\n\r\n- [x] 🎉 New Features\r\n\r\n### Background or solution\r\n\r\nhttps://github.com/opensumi/core/discussions/3227\r\n\r\n### Changelog\r\n", + "created_at": "2024-02-19T07:18:21Z", + "updated_at": "2024-02-21T07:59:22Z", + "closed_at": null, + "merged_at": null, + "merge_commit_sha": "b8247e88b8f9da4b1ca8e4da72ac7cc7358bdb82", + "assignee": null, + "assignees": [], + "requested_reviewers": [], + "requested_teams": [], + "labels": [ + { + "id": 3661368019, + "node_id": "LA_kwDOGZOevM7aPArT", + "url": "https://api.github.com/repos/opensumi/core/labels/%F0%9F%8E%A8%20feature", + "name": "🎨 feature", + "color": "2241F0", + "default": false, + "description": "feature required" + } + ], + "milestone": null, + "draft": false, + "commits_url": "https://api.github.com/repos/opensumi/core/pulls/3345/commits", + "review_comments_url": "https://api.github.com/repos/opensumi/core/pulls/3345/comments", + "review_comment_url": "https://api.github.com/repos/opensumi/core/pulls/comments{/number}", + "comments_url": "https://api.github.com/repos/opensumi/core/issues/3345/comments", + "statuses_url": "https://api.github.com/repos/opensumi/core/statuses/9bd480e28bd1926e1145a9c2c04366b767afbd84", + "head": { + "label": "opensumi:feat/api-scmHistory", + "ref": "feat/api-scmHistory", + "sha": "9bd480e28bd1926e1145a9c2c04366b767afbd84", + "user": { + "login": "opensumi", + "id": 90233428, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwMjMzNDI4", + "avatar_url": "https://avatars.githubusercontent.com/u/90233428?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/opensumi", + "html_url": "https://github.com/opensumi", + "followers_url": "https://api.github.com/users/opensumi/followers", + "following_url": "https://api.github.com/users/opensumi/following{/other_user}", + "gists_url": "https://api.github.com/users/opensumi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/opensumi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/opensumi/subscriptions", + "organizations_url": "https://api.github.com/users/opensumi/orgs", + "repos_url": "https://api.github.com/users/opensumi/repos", + "events_url": "https://api.github.com/users/opensumi/events{/privacy}", + "received_events_url": "https://api.github.com/users/opensumi/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 429104828, + "node_id": "R_kgDOGZOevA", + "name": "core", + "full_name": "opensumi/core", + "private": false, + "owner": { + "login": "opensumi", + "id": 90233428, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwMjMzNDI4", + "avatar_url": "https://avatars.githubusercontent.com/u/90233428?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/opensumi", + "html_url": "https://github.com/opensumi", + "followers_url": "https://api.github.com/users/opensumi/followers", + "following_url": "https://api.github.com/users/opensumi/following{/other_user}", + "gists_url": "https://api.github.com/users/opensumi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/opensumi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/opensumi/subscriptions", + "organizations_url": "https://api.github.com/users/opensumi/orgs", + "repos_url": "https://api.github.com/users/opensumi/repos", + "events_url": "https://api.github.com/users/opensumi/events{/privacy}", + "received_events_url": "https://api.github.com/users/opensumi/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/opensumi/core", + "description": "🚀 A framework helps you quickly build Cloud or Desktop IDE products.", + "fork": false, + "url": "https://api.github.com/repos/opensumi/core", + "forks_url": "https://api.github.com/repos/opensumi/core/forks", + "keys_url": "https://api.github.com/repos/opensumi/core/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/opensumi/core/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/opensumi/core/teams", + "hooks_url": "https://api.github.com/repos/opensumi/core/hooks", + "issue_events_url": "https://api.github.com/repos/opensumi/core/issues/events{/number}", + "events_url": "https://api.github.com/repos/opensumi/core/events", + "assignees_url": "https://api.github.com/repos/opensumi/core/assignees{/user}", + "branches_url": "https://api.github.com/repos/opensumi/core/branches{/branch}", + "tags_url": "https://api.github.com/repos/opensumi/core/tags", + "blobs_url": "https://api.github.com/repos/opensumi/core/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/opensumi/core/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/opensumi/core/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/opensumi/core/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/opensumi/core/statuses/{sha}", + "languages_url": "https://api.github.com/repos/opensumi/core/languages", + "stargazers_url": "https://api.github.com/repos/opensumi/core/stargazers", + "contributors_url": "https://api.github.com/repos/opensumi/core/contributors", + "subscribers_url": "https://api.github.com/repos/opensumi/core/subscribers", + "subscription_url": "https://api.github.com/repos/opensumi/core/subscription", + "commits_url": "https://api.github.com/repos/opensumi/core/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/opensumi/core/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/opensumi/core/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/opensumi/core/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/opensumi/core/contents/{+path}", + "compare_url": "https://api.github.com/repos/opensumi/core/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/opensumi/core/merges", + "archive_url": "https://api.github.com/repos/opensumi/core/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/opensumi/core/downloads", + "issues_url": "https://api.github.com/repos/opensumi/core/issues{/number}", + "pulls_url": "https://api.github.com/repos/opensumi/core/pulls{/number}", + "milestones_url": "https://api.github.com/repos/opensumi/core/milestones{/number}", + "notifications_url": "https://api.github.com/repos/opensumi/core/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/opensumi/core/labels{/name}", + "releases_url": "https://api.github.com/repos/opensumi/core/releases{/id}", + "deployments_url": "https://api.github.com/repos/opensumi/core/deployments", + "created_at": "2021-11-17T15:42:48Z", + "updated_at": "2024-02-19T09:32:46Z", + "pushed_at": "2024-02-21T06:59:59Z", + "git_url": "git://github.com/opensumi/core.git", + "ssh_url": "git@github.com:opensumi/core.git", + "clone_url": "https://github.com/opensumi/core.git", + "svn_url": "https://github.com/opensumi/core", + "homepage": "https://opensumi.com", + "size": 146766, + "stargazers_count": 2664, + "watchers_count": 2664, + "language": "TypeScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "has_discussions": true, + "forks_count": 342, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 141, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [ + "editor", + "electron", + "ide", + "ide-framework", + "opensumi", + "typescript", + "webide" + ], + "visibility": "public", + "forks": 342, + "open_issues": 141, + "watchers": 2664, + "default_branch": "main", + "allow_squash_merge": true, + "allow_merge_commit": false, + "allow_rebase_merge": true, + "allow_auto_merge": false, + "delete_branch_on_merge": true, + "allow_update_branch": true, + "use_squash_pr_title_as_default": false, + "squash_merge_commit_message": "COMMIT_MESSAGES", + "squash_merge_commit_title": "COMMIT_OR_PR_TITLE", + "merge_commit_message": "PR_TITLE", + "merge_commit_title": "MERGE_MESSAGE" + } + }, + "base": { + "label": "opensumi:main", + "ref": "main", + "sha": "f11aa41504ed16bd9e427a922e32a4f82e93174a", + "user": { + "login": "opensumi", + "id": 90233428, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwMjMzNDI4", + "avatar_url": "https://avatars.githubusercontent.com/u/90233428?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/opensumi", + "html_url": "https://github.com/opensumi", + "followers_url": "https://api.github.com/users/opensumi/followers", + "following_url": "https://api.github.com/users/opensumi/following{/other_user}", + "gists_url": "https://api.github.com/users/opensumi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/opensumi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/opensumi/subscriptions", + "organizations_url": "https://api.github.com/users/opensumi/orgs", + "repos_url": "https://api.github.com/users/opensumi/repos", + "events_url": "https://api.github.com/users/opensumi/events{/privacy}", + "received_events_url": "https://api.github.com/users/opensumi/received_events", + "type": "Organization", + "site_admin": false + }, + "repo": { + "id": 429104828, + "node_id": "R_kgDOGZOevA", + "name": "core", + "full_name": "opensumi/core", + "private": false, + "owner": { + "login": "opensumi", + "id": 90233428, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwMjMzNDI4", + "avatar_url": "https://avatars.githubusercontent.com/u/90233428?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/opensumi", + "html_url": "https://github.com/opensumi", + "followers_url": "https://api.github.com/users/opensumi/followers", + "following_url": "https://api.github.com/users/opensumi/following{/other_user}", + "gists_url": "https://api.github.com/users/opensumi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/opensumi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/opensumi/subscriptions", + "organizations_url": "https://api.github.com/users/opensumi/orgs", + "repos_url": "https://api.github.com/users/opensumi/repos", + "events_url": "https://api.github.com/users/opensumi/events{/privacy}", + "received_events_url": "https://api.github.com/users/opensumi/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/opensumi/core", + "description": "🚀 A framework helps you quickly build Cloud or Desktop IDE products.", + "fork": false, + "url": "https://api.github.com/repos/opensumi/core", + "forks_url": "https://api.github.com/repos/opensumi/core/forks", + "keys_url": "https://api.github.com/repos/opensumi/core/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/opensumi/core/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/opensumi/core/teams", + "hooks_url": "https://api.github.com/repos/opensumi/core/hooks", + "issue_events_url": "https://api.github.com/repos/opensumi/core/issues/events{/number}", + "events_url": "https://api.github.com/repos/opensumi/core/events", + "assignees_url": "https://api.github.com/repos/opensumi/core/assignees{/user}", + "branches_url": "https://api.github.com/repos/opensumi/core/branches{/branch}", + "tags_url": "https://api.github.com/repos/opensumi/core/tags", + "blobs_url": "https://api.github.com/repos/opensumi/core/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/opensumi/core/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/opensumi/core/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/opensumi/core/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/opensumi/core/statuses/{sha}", + "languages_url": "https://api.github.com/repos/opensumi/core/languages", + "stargazers_url": "https://api.github.com/repos/opensumi/core/stargazers", + "contributors_url": "https://api.github.com/repos/opensumi/core/contributors", + "subscribers_url": "https://api.github.com/repos/opensumi/core/subscribers", + "subscription_url": "https://api.github.com/repos/opensumi/core/subscription", + "commits_url": "https://api.github.com/repos/opensumi/core/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/opensumi/core/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/opensumi/core/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/opensumi/core/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/opensumi/core/contents/{+path}", + "compare_url": "https://api.github.com/repos/opensumi/core/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/opensumi/core/merges", + "archive_url": "https://api.github.com/repos/opensumi/core/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/opensumi/core/downloads", + "issues_url": "https://api.github.com/repos/opensumi/core/issues{/number}", + "pulls_url": "https://api.github.com/repos/opensumi/core/pulls{/number}", + "milestones_url": "https://api.github.com/repos/opensumi/core/milestones{/number}", + "notifications_url": "https://api.github.com/repos/opensumi/core/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/opensumi/core/labels{/name}", + "releases_url": "https://api.github.com/repos/opensumi/core/releases{/id}", + "deployments_url": "https://api.github.com/repos/opensumi/core/deployments", + "created_at": "2021-11-17T15:42:48Z", + "updated_at": "2024-02-19T09:32:46Z", + "pushed_at": "2024-02-21T06:59:59Z", + "git_url": "git://github.com/opensumi/core.git", + "ssh_url": "git@github.com:opensumi/core.git", + "clone_url": "https://github.com/opensumi/core.git", + "svn_url": "https://github.com/opensumi/core", + "homepage": "https://opensumi.com", + "size": 146766, + "stargazers_count": 2664, + "watchers_count": 2664, + "language": "TypeScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "has_discussions": true, + "forks_count": 342, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 141, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [ + "editor", + "electron", + "ide", + "ide-framework", + "opensumi", + "typescript", + "webide" + ], + "visibility": "public", + "forks": 342, + "open_issues": 141, + "watchers": 2664, + "default_branch": "main", + "allow_squash_merge": true, + "allow_merge_commit": false, + "allow_rebase_merge": true, + "allow_auto_merge": false, + "delete_branch_on_merge": true, + "allow_update_branch": true, + "use_squash_pr_title_as_default": false, + "squash_merge_commit_message": "COMMIT_MESSAGES", + "squash_merge_commit_title": "COMMIT_OR_PR_TITLE", + "merge_commit_message": "PR_TITLE", + "merge_commit_title": "MERGE_MESSAGE" + } + }, + "_links": { + "self": { + "href": "https://api.github.com/repos/opensumi/core/pulls/3345" + }, + "html": { + "href": "https://github.com/opensumi/core/pull/3345" + }, + "issue": { + "href": "https://api.github.com/repos/opensumi/core/issues/3345" + }, + "comments": { + "href": "https://api.github.com/repos/opensumi/core/issues/3345/comments" + }, + "review_comments": { + "href": "https://api.github.com/repos/opensumi/core/pulls/3345/comments" + }, + "review_comment": { + "href": "https://api.github.com/repos/opensumi/core/pulls/comments{/number}" + }, + "commits": { + "href": "https://api.github.com/repos/opensumi/core/pulls/3345/commits" + }, + "statuses": { + "href": "https://api.github.com/repos/opensumi/core/statuses/9bd480e28bd1926e1145a9c2c04366b767afbd84" + } + }, + "author_association": "CONTRIBUTOR", + "auto_merge": null, + "active_lock_reason": null + }, + "repository": { + "id": 429104828, + "node_id": "R_kgDOGZOevA", + "name": "core", + "full_name": "opensumi/core", + "private": false, + "owner": { + "login": "opensumi", + "id": 90233428, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwMjMzNDI4", + "avatar_url": "https://avatars.githubusercontent.com/u/90233428?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/opensumi", + "html_url": "https://github.com/opensumi", + "followers_url": "https://api.github.com/users/opensumi/followers", + "following_url": "https://api.github.com/users/opensumi/following{/other_user}", + "gists_url": "https://api.github.com/users/opensumi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/opensumi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/opensumi/subscriptions", + "organizations_url": "https://api.github.com/users/opensumi/orgs", + "repos_url": "https://api.github.com/users/opensumi/repos", + "events_url": "https://api.github.com/users/opensumi/events{/privacy}", + "received_events_url": "https://api.github.com/users/opensumi/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/opensumi/core", + "description": "🚀 A framework helps you quickly build Cloud or Desktop IDE products.", + "fork": false, + "url": "https://api.github.com/repos/opensumi/core", + "forks_url": "https://api.github.com/repos/opensumi/core/forks", + "keys_url": "https://api.github.com/repos/opensumi/core/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/opensumi/core/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/opensumi/core/teams", + "hooks_url": "https://api.github.com/repos/opensumi/core/hooks", + "issue_events_url": "https://api.github.com/repos/opensumi/core/issues/events{/number}", + "events_url": "https://api.github.com/repos/opensumi/core/events", + "assignees_url": "https://api.github.com/repos/opensumi/core/assignees{/user}", + "branches_url": "https://api.github.com/repos/opensumi/core/branches{/branch}", + "tags_url": "https://api.github.com/repos/opensumi/core/tags", + "blobs_url": "https://api.github.com/repos/opensumi/core/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/opensumi/core/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/opensumi/core/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/opensumi/core/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/opensumi/core/statuses/{sha}", + "languages_url": "https://api.github.com/repos/opensumi/core/languages", + "stargazers_url": "https://api.github.com/repos/opensumi/core/stargazers", + "contributors_url": "https://api.github.com/repos/opensumi/core/contributors", + "subscribers_url": "https://api.github.com/repos/opensumi/core/subscribers", + "subscription_url": "https://api.github.com/repos/opensumi/core/subscription", + "commits_url": "https://api.github.com/repos/opensumi/core/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/opensumi/core/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/opensumi/core/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/opensumi/core/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/opensumi/core/contents/{+path}", + "compare_url": "https://api.github.com/repos/opensumi/core/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/opensumi/core/merges", + "archive_url": "https://api.github.com/repos/opensumi/core/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/opensumi/core/downloads", + "issues_url": "https://api.github.com/repos/opensumi/core/issues{/number}", + "pulls_url": "https://api.github.com/repos/opensumi/core/pulls{/number}", + "milestones_url": "https://api.github.com/repos/opensumi/core/milestones{/number}", + "notifications_url": "https://api.github.com/repos/opensumi/core/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/opensumi/core/labels{/name}", + "releases_url": "https://api.github.com/repos/opensumi/core/releases{/id}", + "deployments_url": "https://api.github.com/repos/opensumi/core/deployments", + "created_at": "2021-11-17T15:42:48Z", + "updated_at": "2024-02-19T09:32:46Z", + "pushed_at": "2024-02-21T06:59:59Z", + "git_url": "git://github.com/opensumi/core.git", + "ssh_url": "git@github.com:opensumi/core.git", + "clone_url": "https://github.com/opensumi/core.git", + "svn_url": "https://github.com/opensumi/core", + "homepage": "https://opensumi.com", + "size": 146766, + "stargazers_count": 2664, + "watchers_count": 2664, + "language": "TypeScript", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "has_discussions": true, + "forks_count": 342, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 141, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "allow_forking": true, + "is_template": false, + "web_commit_signoff_required": false, + "topics": [ + "editor", + "electron", + "ide", + "ide-framework", + "opensumi", + "typescript", + "webide" + ], + "visibility": "public", + "forks": 342, + "open_issues": 141, + "watchers": 2664, + "default_branch": "main", + "custom_properties": {} + }, + "organization": { + "login": "opensumi", + "id": 90233428, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjkwMjMzNDI4", + "url": "https://api.github.com/orgs/opensumi", + "repos_url": "https://api.github.com/orgs/opensumi/repos", + "events_url": "https://api.github.com/orgs/opensumi/events", + "hooks_url": "https://api.github.com/orgs/opensumi/hooks", + "issues_url": "https://api.github.com/orgs/opensumi/issues", + "members_url": "https://api.github.com/orgs/opensumi/members{/member}", + "public_members_url": "https://api.github.com/orgs/opensumi/public_members{/member}", + "avatar_url": "https://avatars.githubusercontent.com/u/90233428?v=4", + "description": "A framework helps you quickly build IDE products." + }, + "sender": { + "login": "bytemain", + "id": 13938334, + "node_id": "MDQ6VXNlcjEzOTM4MzM0", + "avatar_url": "https://avatars.githubusercontent.com/u/13938334?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/bytemain", + "html_url": "https://github.com/bytemain", + "followers_url": "https://api.github.com/users/bytemain/followers", + "following_url": "https://api.github.com/users/bytemain/following{/other_user}", + "gists_url": "https://api.github.com/users/bytemain/gists{/gist_id}", + "starred_url": "https://api.github.com/users/bytemain/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bytemain/subscriptions", + "organizations_url": "https://api.github.com/users/bytemain/orgs", + "repos_url": "https://api.github.com/users/bytemain/repos", + "events_url": "https://api.github.com/users/bytemain/events{/privacy}", + "received_events_url": "https://api.github.com/users/bytemain/received_events", + "type": "User", + "site_admin": false + }, + "installation": { + "id": 23059464, + "node_id": "MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMjMwNTk0NjQ=" + } +} diff --git a/test/queue/__snapshots__/index.test.ts.snap b/test/queue/__snapshots__/index.test.ts.snap index 8075df34..e0bf76f5 100644 --- a/test/queue/__snapshots__/index.test.ts.snap +++ b/test/queue/__snapshots__/index.test.ts.snap @@ -56,3 +56,19 @@ Maybe you should use more emojji on this line.", }, ] `; + +exports[`queue can composite pr review single 1`] = ` +[ + { + "eventName": "pull_request_review.submitted", + "markdown": { + "compactText": undefined, + "text": "#### [[core]](https://github.com/opensumi/core) [bytemain](https://github.com/bytemain) [approved](https://github.com/opensumi/core/pull/3345#pullrequestreview-1892322711) [pull request](https://github.com/opensumi/core/pull/3345) +--- +#### [#3345 feat: support SourceControl.historyProvider](https://github.com/opensumi/core/pull/3345) +", + "title": "[core] Review approved", + }, + }, +] +`; diff --git a/test/queue/index.test.ts b/test/queue/index.test.ts index 28a56e54..2cabbd99 100644 --- a/test/queue/index.test.ts +++ b/test/queue/index.test.ts @@ -24,6 +24,7 @@ import { pull_request_2_review_comment_1_created, discussion_90_0_created, discussion_comment_90_0_created, + pull_request_review_submitted_approved, } from '../fixtures'; const botId = 'mock'; @@ -111,6 +112,37 @@ describe('queue', () => { await wk.run(); }); + it('can composite pr review single', async () => { + expect.assertions(2); + const wk = new MockGitHubEventWorker('app'); + const events = [ + { + name: 'pull_request_review', + payload: pull_request_review_submitted_approved, + }, + ] as { name: EmitterWebhookEventName; payload: any }[]; + + const reviews = events.map((v) => ({ + botId, + type: 'github-app', + data: { + id: `${Math.random()}`, + name: v.name, + payload: v.payload, + }, + })) as IGitHubEventQueueMessage[]; + + const batch = MockMessageBatch.from(reviews); + wk.push(...batch.messages); + + wk.onBatchDoneForTest = (results) => { + expect(results.length).toBe(1); + expect(results).toMatchSnapshot(); + }; + + await wk.run(); + }); + it('can composite discussion', async () => { expect.assertions(2); const wk = new MockGitHubEventWorker('app');