diff --git a/release-assistant/test/mock_data/modifypart.txt b/release-assistant/test/mock_data/modifypart.txt new file mode 100644 index 0000000000000000000000000000000000000000..637edfacb09e2a3c49840d23f04cf16e7b108b1e --- /dev/null +++ b/release-assistant/test/mock_data/modifypart.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 2个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n|#I3V9IG|mariadb|已完成|9.0|10.3.9|否|\n|#I3AQ2G|obs-server|已完成|9.8|3.2.1|否|\n\n\n\n## 2、bugfix\n修复bugfix 3个\n|issue|仓库|status|\n|-|-|-|\n|#I3J655|i40e|进行中|\n|#I3AHLY|grub2|进行中|\n|#I3SZRJ|grub2|进行中|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3OC6A|hadoop|遗留|CVE和安全问题|\n|#I3SZRJ|qemu|遗留|自定义|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/add_bugfix_success.txt b/release-assistant/test/test_modify/mock_data/add_bugfix_success.txt new file mode 100644 index 0000000000000000000000000000000000000000..6a5d32100695ebf50a35c260a131780663ac38f8 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/add_bugfix_success.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 2个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n|#I3V9IG|mariadb|已完成|9.0|10.3.9|否|\n|#I3OC6A|hadoop|已完成|9.8|3.2.1|否|\n\n\n\n## 2、bugfix\n修复bugfix 4个\n|issue|仓库|status|\n|-|-|-|\n|#I3J655|i40e|进行中|\n|#I3AHLY|grub2|进行中|\n|#I3SZRJ|grub2|进行中|\n|#I3AQ2G|obs-server|遗留|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3OC6A|hadoop|遗留|CVE和安全问题|\n|#I3SZRJ|qemu|遗留|自定义|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/add_cve_abi_success.txt b/release-assistant/test/test_modify/mock_data/add_cve_abi_success.txt new file mode 100644 index 0000000000000000000000000000000000000000..1a559f441ceb73197a9dec85e1e49d4c3d21c914 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/add_cve_abi_success.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 3个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n|#I3V9IG|mariadb|已完成|9.0|10.3.9|否|\n|#I3OC6A|hadoop|已完成|9.8|3.2.1|否|\n|#I3AQ2G|obs-server|已完成|9.8|3.2.1|是|\n\n\n\n## 2、bugfix\n修复bugfix 3个\n|issue|仓库|status|\n|-|-|-|\n|#I3J655|i40e|进行中|\n|#I3AHLY|grub2|进行中|\n|#I3SZRJ|grub2|进行中|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3OC6A|hadoop|遗留|CVE和安全问题|\n|#I3SZRJ|qemu|遗留|自定义|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/add_cve_no_score.txt b/release-assistant/test/test_modify/mock_data/add_cve_no_score.txt new file mode 100644 index 0000000000000000000000000000000000000000..54c428507738ac479610e1a48ba390e394717df6 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/add_cve_no_score.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 3个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n|#I3V9IG|mariadb|已完成|9.0|10.3.9|否|\n|#I3OC6A|hadoop|已完成|9.8|3.2.1|否|\n|#I3AQ2G|obs-server|已完成|no score info|3.2.1|否|\n\n\n\n## 2、bugfix\n修复bugfix 3个\n|issue|仓库|status|\n|-|-|-|\n|#I3J655|i40e|进行中|\n|#I3AHLY|grub2|进行中|\n|#I3SZRJ|grub2|进行中|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3OC6A|hadoop|遗留|CVE和安全问题|\n|#I3SZRJ|qemu|遗留|自定义|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/add_cve_success.txt b/release-assistant/test/test_modify/mock_data/add_cve_success.txt new file mode 100644 index 0000000000000000000000000000000000000000..146d112fc2de52fe0396c4e096f7484423d5e884 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/add_cve_success.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 3个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n|#I3V9IG|mariadb|已完成|9.0|10.3.9|否|\n|#I3OC6A|hadoop|已完成|9.8|3.2.1|否|\n|#I3AQ2G|obs-server|已完成|9.8|3.2.1|否|\n\n\n\n## 2、bugfix\n修复bugfix 3个\n|issue|仓库|status|\n|-|-|-|\n|#I3J655|i40e|进行中|\n|#I3AHLY|grub2|进行中|\n|#I3SZRJ|grub2|进行中|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3OC6A|hadoop|遗留|CVE和安全问题|\n|#I3SZRJ|qemu|遗留|自定义|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/add_issue_info.txt b/release-assistant/test/test_modify/mock_data/add_issue_info.txt new file mode 100644 index 0000000000000000000000000000000000000000..4fbcd6714953995d76d0aeb26aedb78d4b2701c1 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/add_issue_info.txt @@ -0,0 +1,190 @@ +{ + "id": 5539192, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G/comments", + "html_url": "https://gitee.com/src-openeuler/obs-server/issues/I3AQ2G", + "parent_url": null, + "number": "I3AQ2G", + "parent_id": 0, + "depth": 0, + "state": "closed", + "title": "CVE-2020-8020", + "body": "一、漏洞信息\n 漏洞编号:[CVE-2020-8020](https://nvd.nist.gov/vuln/detail/CVE-2020-8020)\n 漏洞归属组件:obs-server\n 漏洞归属的版本:2.10.1\n CVSS V3.0分值:\n BaseScore:6.1 Medium\n Vector:CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N\n 漏洞简述:\n A Improper Neutralization of Input During Web Page Generation vulnerability in open-build-service allows remote attackers to store arbitrary JS code to cause XSS. This issue affects: openSUSE open-build-service versions prior to 7cc32c8e2ff7290698e101d9a80a9dc29a5500fb.\n 漏洞公开时间:\n 漏洞创建时间:2021-03-16 17:25:38\n 漏洞详情参考链接:\n https://nvd.nist.gov/vuln/detail/CVE-2020-8020\n 漏洞分析指导链接:\n https://gitee.com/openeuler/cve-manager/blob/master/doc/md/manual.md\n二、漏洞分析结构反馈\n 影响性分析说明:\n 开放式构建服务中网页生成期间输入的不适当中和漏洞使远程攻击者可以存储任意JS代码以导致XSS。 此问题影响:7cc32c8e2ff7290698e101d9a80a9dc29a5500fb之前的openSUSE开放式构建服务版本。\n openEuler评分:\n 6.1\n Vector:CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N\n 受影响版本排查(受影响/不受影响):\n 1.openEuler-20.03-LTS:受影响\n2.openEuler-20.03-LTS-SP1:受影响\n3.openEuler-20.09:受影响\n\n", + "user": { + "id": 5329419, + "login": "openeuler-ci-bot", + "name": "openeuler-ci-bot", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1776/5329419_openeuler-ci-bot_1578984659.png", + "url": "https://gitee.com/api/v5/users/openeuler-ci-bot", + "html_url": "https://gitee.com/openeuler-ci-bot", + "followers_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/followers", + "following_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/orgs", + "repos_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/repos", + "events_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/received_events", + "type": "User" + }, + "labels": [ + { + "id": 85036133, + "name": "CVE/FIXED", + "color": "8367b9", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/CVE/FIXED", + "created_at": "2020-10-27T17:41:27+08:00", + "updated_at": "2021-08-09T15:33:55+08:00" + } + ], + "assignee": { + "id": 7398150, + "login": "markeryang", + "name": "Markeryang", + "avatar_url": "https://gitee.com/assets/no_portrait.png", + "url": "https://gitee.com/api/v5/users/markeryang", + "html_url": "https://gitee.com/markeryang", + "followers_url": "https://gitee.com/api/v5/users/markeryang/followers", + "following_url": "https://gitee.com/api/v5/users/markeryang/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/markeryang/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/markeryang/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/markeryang/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/markeryang/orgs", + "repos_url": "https://gitee.com/api/v5/users/markeryang/repos", + "events_url": "https://gitee.com/api/v5/users/markeryang/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/markeryang/received_events", + "type": "User" + }, + "collaborators": [], + "repository": { + "id": 8316103, + "full_name": "src-openeuler/obs-server", + "human_name": "src-openEuler/obs-server", + "url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server", + "namespace": { + "id": 5460189, + "type": "group", + "name": "src-openEuler", + "path": "src-openeuler", + "html_url": "https://gitee.com/src-openeuler" + }, + "path": "obs-server", + "name": "obs-server", + "owner": { + "id": 5210900, + "login": "freesky-edward", + "name": "freesky-edward", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1736/5210900_freesky-edward_1578982489.png", + "url": "https://gitee.com/api/v5/users/freesky-edward", + "html_url": "https://gitee.com/freesky-edward", + "followers_url": "https://gitee.com/api/v5/users/freesky-edward/followers", + "following_url": "https://gitee.com/api/v5/users/freesky-edward/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/freesky-edward/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/freesky-edward/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/freesky-edward/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/freesky-edward/orgs", + "repos_url": "https://gitee.com/api/v5/users/freesky-edward/repos", + "events_url": "https://gitee.com/api/v5/users/freesky-edward/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/freesky-edward/received_events", + "type": "User" + }, + "description": "The Open Build Service -- Server Component", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/src-openeuler/obs-server.git", + "ssh_url": "git@gitee.com:src-openeuler/obs-server.git", + "forks_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/forks", + "keys_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/hooks", + "branches_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/tags", + "blobs_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/contributors", + "commits_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/releases{/id}", + "recommend": false, + "gvp": false, + "homepage": null, + "language": null, + "forks_count": 15, + "stargazers_count": 0, + "watchers_count": 129, + "default_branch": "master", + "open_issues_count": 7, + "has_issues": true, + "has_wiki": true, + "issue_comment": false, + "can_comment": false, + "pull_requests_enabled": true, + "has_page": false, + "license": null, + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "doraemon2020", + "jimmy_hero", + "small_leek", + "openeuler-ci-bot" + ], + "pushed_at": "2021-07-28T10:33:10+08:00", + "created_at": "2020-03-06T14:33:22+08:00", + "updated_at": "2021-07-30T17:54:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [], + "status": "开始", + "empty_repo": false + }, + "milestone": null, + "created_at": "2021-03-10T06:01:02+08:00", + "updated_at": "2021-03-16T17:25:43+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": "2021-03-16T17:25:39+08:00", + "scheduled_time": 0.0, + "comments": 7, + "priority": 2, + "issue_type": "CVE和安全问题", + "program": null, + "security_hole": false, + "issue_state": "已完成", + "branch": null, + "issue_type_detail": { + "id": 210726, + "title": "CVE和安全问题", + "template": "\u003C!-- #请根据issue的类型在标题右侧下拉框中选择对应的选项(需求、缺陷或CVE等)--\u003E\n\u003C!-- #请根据issue相关的版本在里程碑中选择对应的节点,若是与版本无关,请选择“不关联里程碑”--\u003E\n\n一、漏洞信息\n漏洞编号: \n\n漏洞归属组件: \n\n漏洞归属的版本:\n\nCVSS V3.0分值:\n\n漏洞简述:\n\n漏洞公开时间:\n\n漏洞创建时间:\n\n漏洞详情参考链接:\n\n漏洞分析指导链接:\nhttps://gitee.com/openeuler/cve-manager/blob/master/doc/md/manual.md\n二、漏洞分析结构反馈\n影响性分析说明:\n\nopenEuler评分:\n\n受影响版本排查(受影响/不受影响):\n", + "ident": null, + "color": "#AFCE00", + "is_system": false, + "created_at": "2020-05-25T10:03:21+08:00", + "updated_at": "2021-02-23T15:07:27+08:00" + }, + "issue_state_detail": { + "id": 437577, + "title": "已完成", + "color": "#8c92a4", + "icon": "icon-task-state-24", + "command": null, + "serial": 2, + "created_at": "2019-09-24T14:03:20+08:00", + "updated_at": "2019-09-24T14:03:20+08:00" + } +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/add_remain_not_in_cve_and_bugfix.txt b/release-assistant/test/test_modify/mock_data/add_remain_not_in_cve_and_bugfix.txt new file mode 100644 index 0000000000000000000000000000000000000000..6d6ef2e2863c5a54fede9a9800294fad2c61b712 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/add_remain_not_in_cve_and_bugfix.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 2个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n|#I3V9IG|mariadb|已完成|9.0|10.3.9|否|\n|#I3OC6A|hadoop|已完成|9.8|3.2.1|否|\n|\n\n\n\n## 2、bugfix\n修复bugfix 3个\n|issue|仓库|status|\n|-|-|-|\n|#I3J655|i40e|进行中|\n|#I3AHLY|grub2|进行中|\n|#I3SZRJ|grub2|进行中|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3OC6A|hadoop|遗留|CVE和安全问题|\n|#I3SZRJ|qemu|遗留|自定义|\n|#I3AQ2G|obs-server|遗留|CVE和安全问题|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/add_remain_success.txt b/release-assistant/test/test_modify/mock_data/add_remain_success.txt new file mode 100644 index 0000000000000000000000000000000000000000..d7269d987cfa59d2e3b3883d8594214c2d5207f3 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/add_remain_success.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 2个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n|#I3V9IG|mariadb|已完成|9.0|10.3.9|否|\n|#I3AQ2G|obs-server|遗留|9.8|3.2.1|否|\n|\n\n\n\n## 2、bugfix\n修复bugfix 3个\n|issue|仓库|status|\n|-|-|-|\n|#I3J655|i40e|进行中|\n|#I3AHLY|grub2|进行中|\n|#I3SZRJ|grub2|进行中|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3OC6A|hadoop|遗留|CVE和安全问题|\n|#I3SZRJ|qemu|遗留|自定义|\n|#I3AQ2G|obs-server|遗留|CVE和安全问题|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/delete_bugfix_success.txt b/release-assistant/test/test_modify/mock_data/delete_bugfix_success.txt new file mode 100644 index 0000000000000000000000000000000000000000..57c47d590ae1b1ee5feab2ac10dde706bd62950d --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/delete_bugfix_success.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 2个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n|#I3V9IG|mariadb|已完成|9.0|10.3.9|否|\n|#I3OC6A|hadoop|已完成|9.8|3.2.1|否|\n\n\n\n## 2、bugfix\n修复bugfix 2个\n|issue|仓库|status|\n|-|-|-|\n|#I3AHLY|grub2|进行中|\n|#I3SZRJ|grub2|进行中|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3OC6A|hadoop|遗留|CVE和安全问题|\n|#I3SZRJ|qemu|遗留|自定义|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/delete_cve_success.txt b/release-assistant/test/test_modify/mock_data/delete_cve_success.txt new file mode 100644 index 0000000000000000000000000000000000000000..6817f5478ab5f6613d0be57cf77795bd2410ec0d --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/delete_cve_success.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 1个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n|#I3OC6A|hadoop|已完成|9.8|3.2.1|否|\n\n\n\n## 2、bugfix\n修复bugfix 3个\n|issue|仓库|status|\n|-|-|-|\n|#I3J655|i40e|进行中|\n|#I3AHLY|grub2|进行中|\n|#I3SZRJ|grub2|进行中|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3OC6A|hadoop|遗留|CVE和安全问题|\n|#I3SZRJ|qemu|遗留|自定义|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/delete_multiple_bugfix_success.txt b/release-assistant/test/test_modify/mock_data/delete_multiple_bugfix_success.txt new file mode 100644 index 0000000000000000000000000000000000000000..7a93c4fdfdec915f9ed50da6eaa8cf519a3da27d --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/delete_multiple_bugfix_success.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 2个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n|#I3V9IG|mariadb|已完成|9.0|10.3.9|否|\n|#I3OC6A|hadoop|已完成|9.8|3.2.1|否|\n\n\n\n## 2、bugfix\n修复bugfix 0个\n|issue|仓库|status|\n|-|-|-|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3OC6A|hadoop|遗留|CVE和安全问题|\n|#I3SZRJ|qemu|遗留|自定义|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/delete_multiple_cve_success.txt b/release-assistant/test/test_modify/mock_data/delete_multiple_cve_success.txt new file mode 100644 index 0000000000000000000000000000000000000000..c03f8205147428902cf45446d01cf66ad71ffa12 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/delete_multiple_cve_success.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 0个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n\n\n\n## 2、bugfix\n修复bugfix 3个\n|issue|仓库|status|\n|-|-|-|\n|#I3J655|i40e|进行中|\n|#I3AHLY|grub2|进行中|\n|#I3SZRJ|grub2|进行中|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3OC6A|hadoop|遗留|CVE和安全问题|\n|#I3SZRJ|qemu|遗留|自定义|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/delete_multiple_remain_success.txt b/release-assistant/test/test_modify/mock_data/delete_multiple_remain_success.txt new file mode 100644 index 0000000000000000000000000000000000000000..6ce0db92a900e9cea6d27db192791ce17264c917 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/delete_multiple_remain_success.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 2个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n|#I3OC6A|mariadb|已完成|9.0|10.3.9|否|\n|#I3AQ2G|obs-server|已完成|9.8|3.2.1|否|\n|\n\n\n\n## 2、bugfix\n修复bugfix 3个\n|issue|仓库|status|\n|-|-|-|\n|#I3J655|i40e|已完成|\n|#I3AHLY|grub2|进行中|\n|#I3SZRJ|grub2|已完成|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3OC6A|hadoop|遗留|CVE和安全问题|\n|#I3AQ2G|obs-server|遗留|CVE和安全问题|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/delete_multiple_update_remain_success.txt b/release-assistant/test/test_modify/mock_data/delete_multiple_update_remain_success.txt new file mode 100644 index 0000000000000000000000000000000000000000..e133e07fd61d9e13c4342e62a26b46742e4a577d --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/delete_multiple_update_remain_success.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 2个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n|#I3OC6A|mariadb|已完成|9.0|10.3.9|否|\n|#I3AQ2G|obs-server|已完成|9.8|3.2.1|否|\n|\n\n\n\n## 2、bugfix\n修复bugfix 3个\n|issue|仓库|status|\n|-|-|-|\n|#I3J655|i40e|遗留|\n|#I3AHLY|grub2|进行中|\n|#I3SZRJ|grub2|已完成|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3AQ2G|obs-server|遗留|CVE和安全问题|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/delete_multiple_update_remain_success2.txt b/release-assistant/test/test_modify/mock_data/delete_multiple_update_remain_success2.txt new file mode 100644 index 0000000000000000000000000000000000000000..ae1e3ebb8124a2a53ecf64ec28c578b721f17454 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/delete_multiple_update_remain_success2.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 2个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n|#I3OC6A|mariadb|已完成|9.0|10.3.9|否|\n|#I3AQ2G|obs-server|已完成|9.8|3.2.1|否|\n|\n\n\n\n## 2、bugfix\n修复bugfix 3个\n|issue|仓库|status|\n|-|-|-|\n|#I3J655|i40e|进行中|\n|#I3AHLY|grub2|进行中|\n|#I3SZRJ|grub2|已完成|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3AQ2G|obs-server|遗留|CVE和安全问题|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/delete_remain_success.txt b/release-assistant/test/test_modify/mock_data/delete_remain_success.txt new file mode 100644 index 0000000000000000000000000000000000000000..f63c2a2059950da97d416dca32cd914f7d5c94c7 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/delete_remain_success.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 2个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n|#I3V9IG|mariadb|已完成|9.0|10.3.9|否|\n|#I3AQ2G|obs-server|已完成|9.8|3.2.1|否|\n|\n\n\n\n## 2、bugfix\n修复bugfix 3个\n|issue|仓库|status|\n|-|-|-|\n|#I3J655|i40e|进行中|\n|#I3AHLY|grub2|进行中|\n|#I3SZRJ|grub2|遗留|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3OC6A|hadoop|遗留|CVE和安全问题|\n|#I3AQ2G|obs-server|遗留|CVE和安全问题|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/delete_update_remain_success.txt b/release-assistant/test/test_modify/mock_data/delete_update_remain_success.txt new file mode 100644 index 0000000000000000000000000000000000000000..1b8e4e4c27a9cbd8191e84a69af962773482300c --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/delete_update_remain_success.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n 版本经理:@Mary \n开发人员:@Mary@Jerry \n安全委员会:@Mary@Ben \n测试人员:@Mary@Harry@Robin \n\n# 1、发布范围\n## 1、CVE\n修复CVE 2个\n|CVE|仓库|status|score|version|abi是否变化|\n|-|-|-|-|-|-|\n|#I3V9IG|mariadb|已完成|9.0|10.3.9|否|\n|#I3AQ2G|obs-server|已完成|9.8|3.2.1|否|\n|\n\n\n\n## 2、bugfix\n修复bugfix 3个\n|issue|仓库|status|\n|-|-|-|\n|#I3J655|i40e|进行中|\n|#I3AHLY|grub2|进行中|\n|#I3SZRJ|grub2|已完成|\n\n\n## 3、requires\n|仓库|引入原因|\n|-|-|\n|#I3X2Q8|测试仓库2|未完成|2|2.3|否|\n\n# 2、测试repo源\n|architecture|url|\n|-|-|\n|aarch64|http://121.36.84.172/repo.openeuler.org/test/update_20210710/aarch64/|\n|x86|http://121.36.84.172/repo.openeuler.org/test/update_20210710/x86_64/|\n\n# 3、安装、自编译问题\n|issue|仓库|status|\n|-|-|-|\n\n\n# 4、遗留问题\n|issue|仓库|status|type|\n|-|-|-|-|\n|#I3V9IG|mariadb|遗留|CVE和安全问题|\n|#I3J655|i40e|遗留|缺陷|\n|#I3AHLY|grub2|遗留|CVE和安全问题|\n|#I3AQ2G|obs-server|遗留|CVE和安全问题|\n\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/mock_issue.txt b/release-assistant/test/test_modify/mock_data/mock_issue.txt new file mode 100644 index 0000000000000000000000000000000000000000..d5efa7e3a4a36db62e904e9ee6522ae36f87b64c --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/mock_issue.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "版本目标:CVE、软件包引入升级和Bugfix修复\n 版本: openEuler-20.03-LTS-SP1\n 例行CVE冻结:20210420\n 代码冻结: 20210420\n 版本发布负责人\n", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/mock_issue_abi.txt b/release-assistant/test/test_modify/mock_data/mock_issue_abi.txt new file mode 100644 index 0000000000000000000000000000000000000000..c71dd34f4c89a1a4c118145f43872d9fc57b20d9 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/mock_issue_abi.txt @@ -0,0 +1,190 @@ +{ + "id": 5539192, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G/comments", + "html_url": "https://gitee.com/src-openeuler/obs-server/issues/I3AQ2G", + "parent_url": null, + "number": "I3AQ2G", + "parent_id": 0, + "depth": 0, + "state": "closed", + "title": "CVE-2020-8020", + "body": "一、漏洞信息\n 漏洞编号:[CVE-2020-8020](https://nvd.nist.gov/vuln/detail/CVE-2020-8020)\n 漏洞归属组件:obs-server\n 漏洞归属的版本:2.10.1\n CVSS V3.0分值:\n Vector:CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N\n 漏洞简述:\n A Improper Neutralization of Input During Web Page Generation vulnerability in open-build-service allows remote attackers to store arbitrary JS code to cause XSS. This issue affects: openSUSE open-build-service versions prior to 7cc32c8e2ff7290698e101d9a80a9dc29a5500fb.\n 漏洞公开时间:\n 漏洞创建时间:2021-03-16 17:25:38\n 漏洞详情参考链接:\n https://nvd.nist.gov/vuln/detail/CVE-2020-8020\n 漏洞分析指导链接:\n https://gitee.com/openeuler/cve-manager/blob/master/doc/md/manual.md\n二、漏洞分析结构反馈\n 影响性分析说明:\n 开放式构建服务中网页生成期间输入的不适当中和漏洞使远程攻击者可以存储任意JS代码以导致XSS。 此问题影响:7cc32c8e2ff7290698e101d9a80a9dc29a5500fb之前的openSUSE开放式构建服务版本。\n Vector:CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N\n 受影响版本排查(受影响/不受影响):\n 1.openEuler-20.03-LTS:受影响\n2.openEuler-20.03-LTS-SP1:受影响\n3.openEuler-20.09:受影响\n\n修复是否涉及abi变化:openEuler-20.03-LTS-SP1 是 \n\n", + "user": { + "id": 5329419, + "login": "openeuler-ci-bot", + "name": "openeuler-ci-bot", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1776/5329419_openeuler-ci-bot_1578984659.png", + "url": "https://gitee.com/api/v5/users/openeuler-ci-bot", + "html_url": "https://gitee.com/openeuler-ci-bot", + "followers_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/followers", + "following_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/orgs", + "repos_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/repos", + "events_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/received_events", + "type": "User" + }, + "labels": [ + { + "id": 85036133, + "name": "CVE/FIXED", + "color": "8367b9", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/CVE/FIXED", + "created_at": "2020-10-27T17:41:27+08:00", + "updated_at": "2021-08-12T10:57:08+08:00" + } + ], + "assignee": { + "id": 7398150, + "login": "markeryang", + "name": "Markeryang", + "avatar_url": "https://gitee.com/assets/no_portrait.png", + "url": "https://gitee.com/api/v5/users/markeryang", + "html_url": "https://gitee.com/markeryang", + "followers_url": "https://gitee.com/api/v5/users/markeryang/followers", + "following_url": "https://gitee.com/api/v5/users/markeryang/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/markeryang/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/markeryang/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/markeryang/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/markeryang/orgs", + "repos_url": "https://gitee.com/api/v5/users/markeryang/repos", + "events_url": "https://gitee.com/api/v5/users/markeryang/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/markeryang/received_events", + "type": "User" + }, + "collaborators": [], + "repository": { + "id": 8316103, + "full_name": "src-openeuler/obs-server", + "human_name": "src-openEuler/obs-server", + "url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server", + "namespace": { + "id": 5460189, + "type": "group", + "name": "src-openEuler", + "path": "src-openeuler", + "html_url": "https://gitee.com/src-openeuler" + }, + "path": "obs-server", + "name": "obs-server", + "owner": { + "id": 5210900, + "login": "freesky-edward", + "name": "freesky-edward", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1736/5210900_freesky-edward_1578982489.png", + "url": "https://gitee.com/api/v5/users/freesky-edward", + "html_url": "https://gitee.com/freesky-edward", + "followers_url": "https://gitee.com/api/v5/users/freesky-edward/followers", + "following_url": "https://gitee.com/api/v5/users/freesky-edward/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/freesky-edward/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/freesky-edward/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/freesky-edward/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/freesky-edward/orgs", + "repos_url": "https://gitee.com/api/v5/users/freesky-edward/repos", + "events_url": "https://gitee.com/api/v5/users/freesky-edward/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/freesky-edward/received_events", + "type": "User" + }, + "description": "The Open Build Service -- Server Component", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/src-openeuler/obs-server.git", + "ssh_url": "git@gitee.com:src-openeuler/obs-server.git", + "forks_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/forks", + "keys_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/hooks", + "branches_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/tags", + "blobs_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/contributors", + "commits_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/releases{/id}", + "recommend": false, + "gvp": false, + "homepage": null, + "language": null, + "forks_count": 15, + "stargazers_count": 0, + "watchers_count": 129, + "default_branch": "master", + "open_issues_count": 7, + "has_issues": true, + "has_wiki": true, + "issue_comment": false, + "can_comment": false, + "pull_requests_enabled": true, + "has_page": false, + "license": null, + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "doraemon2020", + "jimmy_hero", + "small_leek", + "openeuler-ci-bot" + ], + "pushed_at": "2021-08-12T00:58:31+08:00", + "created_at": "2020-03-06T14:33:22+08:00", + "updated_at": "2021-08-12T00:58:32+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [], + "status": "开始", + "empty_repo": false + }, + "milestone": null, + "created_at": "2021-03-10T06:01:02+08:00", + "updated_at": "2021-03-16T17:25:43+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": "2021-03-16T17:25:39+08:00", + "scheduled_time": 0.0, + "comments": 7, + "priority": 2, + "issue_type": "CVE和安全问题", + "program": null, + "security_hole": false, + "issue_state": "已完成", + "branch": null, + "issue_type_detail": { + "id": 210726, + "title": "CVE和安全问题", + "template": "\u003C!-- #请根据issue的类型在标题右侧下拉框中选择对应的选项(需求、缺陷或CVE等)--\u003E\n\u003C!-- #请根据issue相关的版本在里程碑中选择对应的节点,若是与版本无关,请选择“不关联里程碑”--\u003E\n\n一、漏洞信息\n漏洞编号: \n\n漏洞归属组件: \n\n漏洞归属的版本:\n\nCVSS V3.0分值:\n\n漏洞简述:\n\n漏洞公开时间:\n\n漏洞创建时间:\n\n漏洞详情参考链接:\n\n漏洞分析指导链接:\nhttps://gitee.com/openeuler/cve-manager/blob/master/doc/md/manual.md\n二、漏洞分析结构反馈\n影响性分析说明:\n\n", + "ident": null, + "color": "#AFCE00", + "is_system": false, + "created_at": "2020-05-25T10:03:21+08:00", + "updated_at": "2021-02-23T15:07:27+08:00" + }, + "issue_state_detail": { + "id": 437577, + "title": "已完成", + "color": "#8c92a4", + "icon": "icon-task-state-24", + "command": null, + "serial": 2, + "created_at": "2019-09-24T14:03:20+08:00", + "updated_at": "2019-09-24T14:03:20+08:00" + } +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/mock_issue_basescore.txt b/release-assistant/test/test_modify/mock_data/mock_issue_basescore.txt new file mode 100644 index 0000000000000000000000000000000000000000..4b60933b5712e8bf82743e159e2e1baef4d78cd5 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/mock_issue_basescore.txt @@ -0,0 +1,190 @@ +{ + "id": 5539192, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G/comments", + "html_url": "https://gitee.com/src-openeuler/obs-server/issues/I3AQ2G", + "parent_url": null, + "number": "I3AQ2G", + "parent_id": 0, + "depth": 0, + "state": "closed", + "title": "CVE-2020-8020", + "body": "一、漏洞信息\n 漏洞编号:[CVE-2020-8020](https://nvd.nist.gov/vuln/detail/CVE-2020-8020)\n 漏洞归属组件:obs-server\n 漏洞归属的版本:2.10.1\n CVSS V3.0分值:\n BaseScore:6.1 Medium\n Vector:CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N\n 漏洞简述:\n A Improper Neutralization of Input During Web Page Generation vulnerability in open-build-service allows remote attackers to store arbitrary JS code to cause XSS. This issue affects: openSUSE open-build-service versions prior to 7cc32c8e2ff7290698e101d9a80a9dc29a5500fb.\n 漏洞公开时间:\n 漏洞创建时间:2021-03-16 17:25:38\n 漏洞详情参考链接:\n https://nvd.nist.gov/vuln/detail/CVE-2020-8020\n 漏洞分析指导链接:\n https://gitee.com/openeuler/cve-manager/blob/master/doc/md/manual.md\n二、漏洞分析结构反馈\n 影响性分析说明:\n 开放式构建服务中网页生成期间输入的不适当中和漏洞使远程攻击者可以存储任意JS代码以导致XSS。 此问题影响:7cc32c8e2ff7290698e101d9a80a9dc29a5500fb之前的openSUSE开放式构建服务版本。\n Vector:CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N\n 受影响版本排查(受影响/不受影响):\n 1.openEuler-20.03-LTS:受影响\n2.openEuler-20.03-LTS-SP1:受影响\n3.openEuler-20.09:受影响\n\n", + "user": { + "id": 5329419, + "login": "openeuler-ci-bot", + "name": "openeuler-ci-bot", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1776/5329419_openeuler-ci-bot_1578984659.png", + "url": "https://gitee.com/api/v5/users/openeuler-ci-bot", + "html_url": "https://gitee.com/openeuler-ci-bot", + "followers_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/followers", + "following_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/orgs", + "repos_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/repos", + "events_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/received_events", + "type": "User" + }, + "labels": [ + { + "id": 85036133, + "name": "CVE/FIXED", + "color": "8367b9", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/CVE/FIXED", + "created_at": "2020-10-27T17:41:27+08:00", + "updated_at": "2021-08-12T10:57:08+08:00" + } + ], + "assignee": { + "id": 7398150, + "login": "markeryang", + "name": "Markeryang", + "avatar_url": "https://gitee.com/assets/no_portrait.png", + "url": "https://gitee.com/api/v5/users/markeryang", + "html_url": "https://gitee.com/markeryang", + "followers_url": "https://gitee.com/api/v5/users/markeryang/followers", + "following_url": "https://gitee.com/api/v5/users/markeryang/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/markeryang/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/markeryang/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/markeryang/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/markeryang/orgs", + "repos_url": "https://gitee.com/api/v5/users/markeryang/repos", + "events_url": "https://gitee.com/api/v5/users/markeryang/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/markeryang/received_events", + "type": "User" + }, + "collaborators": [], + "repository": { + "id": 8316103, + "full_name": "src-openeuler/obs-server", + "human_name": "src-openEuler/obs-server", + "url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server", + "namespace": { + "id": 5460189, + "type": "group", + "name": "src-openEuler", + "path": "src-openeuler", + "html_url": "https://gitee.com/src-openeuler" + }, + "path": "obs-server", + "name": "obs-server", + "owner": { + "id": 5210900, + "login": "freesky-edward", + "name": "freesky-edward", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1736/5210900_freesky-edward_1578982489.png", + "url": "https://gitee.com/api/v5/users/freesky-edward", + "html_url": "https://gitee.com/freesky-edward", + "followers_url": "https://gitee.com/api/v5/users/freesky-edward/followers", + "following_url": "https://gitee.com/api/v5/users/freesky-edward/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/freesky-edward/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/freesky-edward/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/freesky-edward/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/freesky-edward/orgs", + "repos_url": "https://gitee.com/api/v5/users/freesky-edward/repos", + "events_url": "https://gitee.com/api/v5/users/freesky-edward/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/freesky-edward/received_events", + "type": "User" + }, + "description": "The Open Build Service -- Server Component", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/src-openeuler/obs-server.git", + "ssh_url": "git@gitee.com:src-openeuler/obs-server.git", + "forks_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/forks", + "keys_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/hooks", + "branches_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/tags", + "blobs_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/contributors", + "commits_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/releases{/id}", + "recommend": false, + "gvp": false, + "homepage": null, + "language": null, + "forks_count": 15, + "stargazers_count": 0, + "watchers_count": 129, + "default_branch": "master", + "open_issues_count": 7, + "has_issues": true, + "has_wiki": true, + "issue_comment": false, + "can_comment": false, + "pull_requests_enabled": true, + "has_page": false, + "license": null, + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "doraemon2020", + "jimmy_hero", + "small_leek", + "openeuler-ci-bot" + ], + "pushed_at": "2021-08-12T00:58:31+08:00", + "created_at": "2020-03-06T14:33:22+08:00", + "updated_at": "2021-08-12T00:58:32+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [], + "status": "开始", + "empty_repo": false + }, + "milestone": null, + "created_at": "2021-03-10T06:01:02+08:00", + "updated_at": "2021-03-16T17:25:43+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": "2021-03-16T17:25:39+08:00", + "scheduled_time": 0.0, + "comments": 7, + "priority": 2, + "issue_type": "CVE和安全问题", + "program": null, + "security_hole": false, + "issue_state": "已完成", + "branch": null, + "issue_type_detail": { + "id": 210726, + "title": "CVE和安全问题", + "template": "\u003C!-- #请根据issue的类型在标题右侧下拉框中选择对应的选项(需求、缺陷或CVE等)--\u003E\n\u003C!-- #请根据issue相关的版本在里程碑中选择对应的节点,若是与版本无关,请选择“不关联里程碑”--\u003E\n\n一、漏洞信息\n漏洞编号: \n\n漏洞归属组件: \n\n漏洞归属的版本:\n\nCVSS V3.0分值:\n\n漏洞简述:\n\n漏洞公开时间:\n\n漏洞创建时间:\n\n漏洞详情参考链接:\n\n漏洞分析指导链接:\nhttps://gitee.com/openeuler/cve-manager/blob/master/doc/md/manual.md\n二、漏洞分析结构反馈\n影响性分析说明:\n\n", + "ident": null, + "color": "#AFCE00", + "is_system": false, + "created_at": "2020-05-25T10:03:21+08:00", + "updated_at": "2021-02-23T15:07:27+08:00" + }, + "issue_state_detail": { + "id": 437577, + "title": "已完成", + "color": "#8c92a4", + "icon": "icon-task-state-24", + "command": null, + "serial": 2, + "created_at": "2019-09-24T14:03:20+08:00", + "updated_at": "2019-09-24T14:03:20+08:00" + } +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/mock_issue_is_none.txt b/release-assistant/test/test_modify/mock_data/mock_issue_is_none.txt new file mode 100644 index 0000000000000000000000000000000000000000..751f40233e40db0a830c905e29226304a451a248 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/mock_issue_is_none.txt @@ -0,0 +1,153 @@ +{ + "id": 6853820, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I42WFW/comments", + "html_url": "https://gitee.com/openeuler/release-tools/issues/I42WFW", + "parent_url": null, + "number": "I42WFW", + "parent_id": 0, + "depth": 0, + "state": "open", + "title": "openEuler-20.03-LTS-SP1 Update 2021/7/29 release", + "body": "", + "user": { + "id": 2234080, + "login": "Many", + "name": "胖胖", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/744/2234080_Many_1578969378.png", + "url": "https://gitee.com/api/v5/users/Many", + "html_url": "https://gitee.com/Many", + "followers_url": "https://gitee.com/api/v5/users/Many/followers", + "following_url": "https://gitee.com/api/v5/users/Many/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/Many/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/Many/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/Many/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/Many/orgs", + "repos_url": "https://gitee.com/api/v5/users/Many/repos", + "events_url": "https://gitee.com/api/v5/users/Many/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/Many/received_events", + "type": "User" + }, + "labels": [ + { + "id": 107655399, + "name": "sig/sig-EasyLife", + "color": "7512f2", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/sig/sig-EasyLife", + "created_at": "2021-04-29T16:37:18+08:00", + "updated_at": "2021-07-29T10:52:14+08:00" + } + ], + "assignee": null, + "collaborators": [], + "repository": { + "id": 16532326, + "full_name": "openeuler/release-tools", + "human_name": "openEuler/release-tools", + "url": "https://gitee.com/api/v5/repos/openeuler/release-tools", + "namespace": { + "id": 5161228, + "type": "group", + "name": "openEuler", + "path": "openeuler", + "html_url": "https://gitee.com/openeuler" + }, + "path": "release-tools", + "name": "release-tools", + "owner": { + "id": 5441867, + "login": "georgecao", + "name": "George.Cao", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1813/5441867_georgecao_1586834388.png", + "url": "https://gitee.com/api/v5/users/georgecao", + "html_url": "https://gitee.com/georgecao", + "followers_url": "https://gitee.com/api/v5/users/georgecao/followers", + "following_url": "https://gitee.com/api/v5/users/georgecao/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/georgecao/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/georgecao/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/georgecao/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/georgecao/orgs", + "repos_url": "https://gitee.com/api/v5/users/georgecao/repos", + "events_url": "https://gitee.com/api/v5/users/georgecao/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/georgecao/received_events", + "type": "User" + }, + "description": "Tools for version release", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/openeuler/release-tools.git", + "ssh_url": "git@gitee.com:openeuler/release-tools.git", + "forks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/forks", + "keys_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/hooks", + "branches_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/tags", + "blobs_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/contributors", + "commits_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/openeuler/release-tools/releases{/id}", + "recommend": false, + "homepage": null, + "language": null, + "forks_count": 12, + "stargazers_count": 1, + "watchers_count": 8, + "default_branch": "master", + "open_issues_count": 5, + "has_issues": true, + "has_wiki": true, + "issue_comment": null, + "can_comment": true, + "pull_requests_enabled": true, + "has_page": false, + "license": "MulanPSL-2.0", + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "shin", + "soul", + "hua", + "chenHW", + "init", + "myer", + "ci-bot" + ], + "pushed_at": "2021-07-27T22:30:24+08:00", + "created_at": "2021-06-21T16:33:45+08:00", + "updated_at": "2021-07-29T10:52:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [] + }, + "milestone": null, + "created_at": "2021-07-29T10:52:10+08:00", + "updated_at": "2021-07-29T14:52:49+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": null, + "scheduled_time": 0.0, + "comments": 1, + "priority": 0, + "issue_type": "任务", + "program": null, + "security_hole": false, + "issue_state": "待办的", + "branch": null +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/mock_issue_no_score.txt b/release-assistant/test/test_modify/mock_data/mock_issue_no_score.txt new file mode 100644 index 0000000000000000000000000000000000000000..f208a0cb845fa9afb2435f715c74468f6be66e94 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/mock_issue_no_score.txt @@ -0,0 +1,190 @@ +{ + "id": 5539192, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G/comments", + "html_url": "https://gitee.com/src-openeuler/obs-server/issues/I3AQ2G", + "parent_url": null, + "number": "I3AQ2G", + "parent_id": 0, + "depth": 0, + "state": "closed", + "title": "CVE-2020-8020", + "body": "一、漏洞信息\n 漏洞编号:[CVE-2020-8020](https://nvd.nist.gov/vuln/detail/CVE-2020-8020)\n 漏洞归属组件:obs-server\n 漏洞归属的版本:2.10.1\n CVSS V3.0分值:\n Vector:CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N\n 漏洞简述:\n A Improper Neutralization of Input During Web Page Generation vulnerability in open-build-service allows remote attackers to store arbitrary JS code to cause XSS. This issue affects: openSUSE open-build-service versions prior to 7cc32c8e2ff7290698e101d9a80a9dc29a5500fb.\n 漏洞公开时间:\n 漏洞创建时间:2021-03-16 17:25:38\n 漏洞详情参考链接:\n https://nvd.nist.gov/vuln/detail/CVE-2020-8020\n 漏洞分析指导链接:\n https://gitee.com/openeuler/cve-manager/blob/master/doc/md/manual.md\n二、漏洞分析结构反馈\n 影响性分析说明:\n 开放式构建服务中网页生成期间输入的不适当中和漏洞使远程攻击者可以存储任意JS代码以导致XSS。 此问题影响:7cc32c8e2ff7290698e101d9a80a9dc29a5500fb之前的openSUSE开放式构建服务版本。\n Vector:CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N\n 受影响版本排查(受影响/不受影响):\n 1.openEuler-20.03-LTS:受影响\n2.openEuler-20.03-LTS-SP1:受影响\n3.openEuler-20.09:受影响\n\n", + "user": { + "id": 5329419, + "login": "openeuler-ci-bot", + "name": "openeuler-ci-bot", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1776/5329419_openeuler-ci-bot_1578984659.png", + "url": "https://gitee.com/api/v5/users/openeuler-ci-bot", + "html_url": "https://gitee.com/openeuler-ci-bot", + "followers_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/followers", + "following_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/orgs", + "repos_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/repos", + "events_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/received_events", + "type": "User" + }, + "labels": [ + { + "id": 85036133, + "name": "CVE/FIXED", + "color": "8367b9", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/CVE/FIXED", + "created_at": "2020-10-27T17:41:27+08:00", + "updated_at": "2021-08-12T10:57:08+08:00" + } + ], + "assignee": { + "id": 7398150, + "login": "markeryang", + "name": "Markeryang", + "avatar_url": "https://gitee.com/assets/no_portrait.png", + "url": "https://gitee.com/api/v5/users/markeryang", + "html_url": "https://gitee.com/markeryang", + "followers_url": "https://gitee.com/api/v5/users/markeryang/followers", + "following_url": "https://gitee.com/api/v5/users/markeryang/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/markeryang/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/markeryang/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/markeryang/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/markeryang/orgs", + "repos_url": "https://gitee.com/api/v5/users/markeryang/repos", + "events_url": "https://gitee.com/api/v5/users/markeryang/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/markeryang/received_events", + "type": "User" + }, + "collaborators": [], + "repository": { + "id": 8316103, + "full_name": "src-openeuler/obs-server", + "human_name": "src-openEuler/obs-server", + "url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server", + "namespace": { + "id": 5460189, + "type": "group", + "name": "src-openEuler", + "path": "src-openeuler", + "html_url": "https://gitee.com/src-openeuler" + }, + "path": "obs-server", + "name": "obs-server", + "owner": { + "id": 5210900, + "login": "freesky-edward", + "name": "freesky-edward", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1736/5210900_freesky-edward_1578982489.png", + "url": "https://gitee.com/api/v5/users/freesky-edward", + "html_url": "https://gitee.com/freesky-edward", + "followers_url": "https://gitee.com/api/v5/users/freesky-edward/followers", + "following_url": "https://gitee.com/api/v5/users/freesky-edward/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/freesky-edward/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/freesky-edward/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/freesky-edward/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/freesky-edward/orgs", + "repos_url": "https://gitee.com/api/v5/users/freesky-edward/repos", + "events_url": "https://gitee.com/api/v5/users/freesky-edward/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/freesky-edward/received_events", + "type": "User" + }, + "description": "The Open Build Service -- Server Component", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/src-openeuler/obs-server.git", + "ssh_url": "git@gitee.com:src-openeuler/obs-server.git", + "forks_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/forks", + "keys_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/hooks", + "branches_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/tags", + "blobs_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/contributors", + "commits_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/releases{/id}", + "recommend": false, + "gvp": false, + "homepage": null, + "language": null, + "forks_count": 15, + "stargazers_count": 0, + "watchers_count": 129, + "default_branch": "master", + "open_issues_count": 7, + "has_issues": true, + "has_wiki": true, + "issue_comment": false, + "can_comment": false, + "pull_requests_enabled": true, + "has_page": false, + "license": null, + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "doraemon2020", + "jimmy_hero", + "small_leek", + "openeuler-ci-bot" + ], + "pushed_at": "2021-08-12T00:58:31+08:00", + "created_at": "2020-03-06T14:33:22+08:00", + "updated_at": "2021-08-12T00:58:32+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [], + "status": "开始", + "empty_repo": false + }, + "milestone": null, + "created_at": "2021-03-10T06:01:02+08:00", + "updated_at": "2021-03-16T17:25:43+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": "2021-03-16T17:25:39+08:00", + "scheduled_time": 0.0, + "comments": 7, + "priority": 2, + "issue_type": "CVE和安全问题", + "program": null, + "security_hole": false, + "issue_state": "已完成", + "branch": null, + "issue_type_detail": { + "id": 210726, + "title": "CVE和安全问题", + "template": "\u003C!-- #请根据issue的类型在标题右侧下拉框中选择对应的选项(需求、缺陷或CVE等)--\u003E\n\u003C!-- #请根据issue相关的版本在里程碑中选择对应的节点,若是与版本无关,请选择“不关联里程碑”--\u003E\n\n一、漏洞信息\n漏洞编号: \n\n漏洞归属组件: \n\n漏洞归属的版本:\n\nCVSS V3.0分值:\n\n漏洞简述:\n\n漏洞公开时间:\n\n漏洞创建时间:\n\n漏洞详情参考链接:\n\n漏洞分析指导链接:\nhttps://gitee.com/openeuler/cve-manager/blob/master/doc/md/manual.md\n二、漏洞分析结构反馈\n影响性分析说明:\n\n", + "ident": null, + "color": "#AFCE00", + "is_system": false, + "created_at": "2020-05-25T10:03:21+08:00", + "updated_at": "2021-02-23T15:07:27+08:00" + }, + "issue_state_detail": { + "id": 437577, + "title": "已完成", + "color": "#8c92a4", + "icon": "icon-task-state-24", + "command": null, + "serial": 2, + "created_at": "2019-09-24T14:03:20+08:00", + "updated_at": "2019-09-24T14:03:20+08:00" + } +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/mock_obs_data.json b/release-assistant/test/test_modify/mock_data/mock_obs_data.json new file mode 100644 index 0000000000000000000000000000000000000000..c5b2d3ab9e14c6db28402761e7e52ee163408ef1 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/mock_obs_data.json @@ -0,0 +1,31 @@ + +{"commonPrefixs": [], + "contents": [{"etag": "d41d8cd98f00b204e9800998ecf8427e", + "isAppendable": false, + "key": "cve-manager-updateinfo/2021-07-30/", + "lastModified": "2021/07/30 09:51:42", + "owner": {"owner_id": "060600ffbe00251e0f6fc0176531c800"}, + "size": 0, + "storageClass": "STANDARD"}, + {"etag": "395628cc294b46dba7cd9f319b6de393", + "isAppendable": false, + "key": "cve-manager-updateinfo/2021-07-30/openEuler-20.03-LTS-SP1_updateinfo.xlsx", + "lastModified": "2021/07/30 09:51:42", + "owner": {"owner_id": "060600ffbe00251e0f6fc0176531c800"}, + "size": 7230, + "storageClass": "STANDARD"}, + {"etag": "22168585eb84ae60d21e10f1f6ecc866", + "isAppendable": false, + "key": "cve-manager-updateinfo/2021-07-30/openEuler-20.03-LTS-SP1_updateinfo.xml", + "lastModified": "2021/07/30 09:51:42", + "owner": {"owner_id": "060600ffbe00251e0f6fc0176531c800"}, + "size": 35474, + "storageClass": "STANDARD"}, + {"etag": "f1427526416e64b2afa6a08d4bce9e86", + "isAppendable": false, + "key": "cve-manager-updateinfo/2021-07-30/openEuler-20.03-LTS-SP2_updateinfo.xlsx", + "lastModified": "2021/07/30 09:51:43", + "owner": {"owner_id": "060600ffbe00251e0f6fc0176531c800"}, + "size": 7476, + "storageClass": "STANDARD"}] + } diff --git a/release-assistant/test/test_modify/mock_data/mock_remain_issue_1_data.txt b/release-assistant/test/test_modify/mock_data/mock_remain_issue_1_data.txt new file mode 100644 index 0000000000000000000000000000000000000000..c2525ad8eab054ff6a86ff798f3ec5be4a5b286b --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/mock_remain_issue_1_data.txt @@ -0,0 +1,190 @@ +{ + "id": 5539192, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G/comments", + "html_url": "https://gitee.com/src-openeuler/obs-server/issues/I3AQ2G", + "parent_url": null, + "number": "I3OC6A", + "parent_id": 0, + "depth": 0, + "state": "closed", + "title": "CVE-2020-8020", + "body": "一、漏洞信息\n 漏洞编号:[CVE-2020-8020](https://nvd.nist.gov/vuln/detail/CVE-2020-8020)\n 漏洞归属组件:obs-server\n 漏洞归属的版本:2.10.1\n CVSS V3.0分值:\n BaseScore:6.1 Medium\n Vector:CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N\n 漏洞简述:\n A Improper Neutralization of Input During Web Page Generation vulnerability in open-build-service allows remote attackers to store arbitrary JS code to cause XSS. This issue affects: openSUSE open-build-service versions prior to 7cc32c8e2ff7290698e101d9a80a9dc29a5500fb.\n 漏洞公开时间:\n 漏洞创建时间:2021-03-16 17:25:38\n 漏洞详情参考链接:\n https://nvd.nist.gov/vuln/detail/CVE-2020-8020\n 漏洞分析指导链接:\n https://gitee.com/openeuler/cve-manager/blob/master/doc/md/manual.md\n二、漏洞分析结构反馈\n 影响性分析说明:\n 开放式构建服务中网页生成期间输入的不适当中和漏洞使远程攻击者可以存储任意JS代码以导致XSS。 此问题影响:7cc32c8e2ff7290698e101d9a80a9dc29a5500fb之前的openSUSE开放式构建服务版本。\n openEuler评分:\n 6.1\n Vector:CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N\n 受影响版本排查(受影响/不受影响):\n 1.openEuler-20.03-LTS:受影响\n2.openEuler-20.03-LTS-SP1:受影响\n3.openEuler-20.09:受影响\n\n", + "user": { + "id": 5329419, + "login": "openeuler-ci-bot", + "name": "openeuler-ci-bot", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1776/5329419_openeuler-ci-bot_1578984659.png", + "url": "https://gitee.com/api/v5/users/openeuler-ci-bot", + "html_url": "https://gitee.com/openeuler-ci-bot", + "followers_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/followers", + "following_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/orgs", + "repos_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/repos", + "events_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/received_events", + "type": "User" + }, + "labels": [ + { + "id": 85036133, + "name": "CVE/FIXED", + "color": "8367b9", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/CVE/FIXED", + "created_at": "2020-10-27T17:41:27+08:00", + "updated_at": "2021-08-09T15:33:55+08:00" + } + ], + "assignee": { + "id": 7398150, + "login": "markeryang", + "name": "Markeryang", + "avatar_url": "https://gitee.com/assets/no_portrait.png", + "url": "https://gitee.com/api/v5/users/markeryang", + "html_url": "https://gitee.com/markeryang", + "followers_url": "https://gitee.com/api/v5/users/markeryang/followers", + "following_url": "https://gitee.com/api/v5/users/markeryang/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/markeryang/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/markeryang/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/markeryang/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/markeryang/orgs", + "repos_url": "https://gitee.com/api/v5/users/markeryang/repos", + "events_url": "https://gitee.com/api/v5/users/markeryang/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/markeryang/received_events", + "type": "User" + }, + "collaborators": [], + "repository": { + "id": 8316103, + "full_name": "src-openeuler/obs-server", + "human_name": "src-openEuler/obs-server", + "url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server", + "namespace": { + "id": 5460189, + "type": "group", + "name": "src-openEuler", + "path": "src-openeuler", + "html_url": "https://gitee.com/src-openeuler" + }, + "path": "obs-server", + "name": "obs-server", + "owner": { + "id": 5210900, + "login": "freesky-edward", + "name": "freesky-edward", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1736/5210900_freesky-edward_1578982489.png", + "url": "https://gitee.com/api/v5/users/freesky-edward", + "html_url": "https://gitee.com/freesky-edward", + "followers_url": "https://gitee.com/api/v5/users/freesky-edward/followers", + "following_url": "https://gitee.com/api/v5/users/freesky-edward/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/freesky-edward/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/freesky-edward/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/freesky-edward/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/freesky-edward/orgs", + "repos_url": "https://gitee.com/api/v5/users/freesky-edward/repos", + "events_url": "https://gitee.com/api/v5/users/freesky-edward/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/freesky-edward/received_events", + "type": "User" + }, + "description": "The Open Build Service -- Server Component", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/src-openeuler/obs-server.git", + "ssh_url": "git@gitee.com:src-openeuler/obs-server.git", + "forks_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/forks", + "keys_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/hooks", + "branches_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/tags", + "blobs_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/contributors", + "commits_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/releases{/id}", + "recommend": false, + "gvp": false, + "homepage": null, + "language": null, + "forks_count": 15, + "stargazers_count": 0, + "watchers_count": 129, + "default_branch": "master", + "open_issues_count": 7, + "has_issues": true, + "has_wiki": true, + "issue_comment": false, + "can_comment": false, + "pull_requests_enabled": true, + "has_page": false, + "license": null, + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "doraemon2020", + "jimmy_hero", + "small_leek", + "openeuler-ci-bot" + ], + "pushed_at": "2021-07-28T10:33:10+08:00", + "created_at": "2020-03-06T14:33:22+08:00", + "updated_at": "2021-07-30T17:54:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [], + "status": "开始", + "empty_repo": false + }, + "milestone": null, + "created_at": "2021-03-10T06:01:02+08:00", + "updated_at": "2021-03-16T17:25:43+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": "2021-03-16T17:25:39+08:00", + "scheduled_time": 0.0, + "comments": 7, + "priority": 2, + "issue_type": "CVE和安全问题", + "program": null, + "security_hole": false, + "issue_state": "已完成", + "branch": null, + "issue_type_detail": { + "id": 210726, + "title": "CVE和安全问题", + "template": "\u003C!-- #请根据issue的类型在标题右侧下拉框中选择对应的选项(需求、缺陷或CVE等)--\u003E\n\u003C!-- #请根据issue相关的版本在里程碑中选择对应的节点,若是与版本无关,请选择“不关联里程碑”--\u003E\n\n一、漏洞信息\n漏洞编号: \n\n漏洞归属组件: \n\n漏洞归属的版本:\n\nCVSS V3.0分值:\n\n漏洞简述:\n\n漏洞公开时间:\n\n漏洞创建时间:\n\n漏洞详情参考链接:\n\n漏洞分析指导链接:\nhttps://gitee.com/openeuler/cve-manager/blob/master/doc/md/manual.md\n二、漏洞分析结构反馈\n影响性分析说明:\n\nopenEuler评分:\n\n受影响版本排查(受影响/不受影响):\n", + "ident": null, + "color": "#AFCE00", + "is_system": false, + "created_at": "2020-05-25T10:03:21+08:00", + "updated_at": "2021-02-23T15:07:27+08:00" + }, + "issue_state_detail": { + "id": 437577, + "title": "已完成", + "color": "#8c92a4", + "icon": "icon-task-state-24", + "command": null, + "serial": 2, + "created_at": "2019-09-24T14:03:20+08:00", + "updated_at": "2019-09-24T14:03:20+08:00" + } +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/mock_data/mock_remain_issue_2_data.txt b/release-assistant/test/test_modify/mock_data/mock_remain_issue_2_data.txt new file mode 100644 index 0000000000000000000000000000000000000000..c68282c2e6374d3f939fcc95a918a7f6c5a4be62 --- /dev/null +++ b/release-assistant/test/test_modify/mock_data/mock_remain_issue_2_data.txt @@ -0,0 +1,190 @@ +{ + "id": 5539192, + "url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G", + "repository_url": "https://gitee.com/api/v5/enterprises/open_euler", + "labels_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G/labels", + "comments_url": "https://gitee.com/api/v5/enterprises/open_euler/issues/I3AQ2G/comments", + "html_url": "https://gitee.com/src-openeuler/obs-server/issues/I3AQ2G", + "parent_url": null, + "number": "I3SZRJ", + "parent_id": 0, + "depth": 0, + "state": "closed", + "title": "CVE-2020-8020", + "body": "一、漏洞信息\n 漏洞编号:[CVE-2020-8020](https://nvd.nist.gov/vuln/detail/CVE-2020-8020)\n 漏洞归属组件:obs-server\n 漏洞归属的版本:2.10.1\n CVSS V3.0分值:\n BaseScore:6.1 Medium\n Vector:CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N\n 漏洞简述:\n A Improper Neutralization of Input During Web Page Generation vulnerability in open-build-service allows remote attackers to store arbitrary JS code to cause XSS. This issue affects: openSUSE open-build-service versions prior to 7cc32c8e2ff7290698e101d9a80a9dc29a5500fb.\n 漏洞公开时间:\n 漏洞创建时间:2021-03-16 17:25:38\n 漏洞详情参考链接:\n https://nvd.nist.gov/vuln/detail/CVE-2020-8020\n 漏洞分析指导链接:\n https://gitee.com/openeuler/cve-manager/blob/master/doc/md/manual.md\n二、漏洞分析结构反馈\n 影响性分析说明:\n 开放式构建服务中网页生成期间输入的不适当中和漏洞使远程攻击者可以存储任意JS代码以导致XSS。 此问题影响:7cc32c8e2ff7290698e101d9a80a9dc29a5500fb之前的openSUSE开放式构建服务版本。\n openEuler评分:\n 6.1\n Vector:CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N\n 受影响版本排查(受影响/不受影响):\n 1.openEuler-20.03-LTS:受影响\n2.openEuler-20.03-LTS-SP1:受影响\n3.openEuler-20.09:受影响\n\n", + "user": { + "id": 5329419, + "login": "openeuler-ci-bot", + "name": "openeuler-ci-bot", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1776/5329419_openeuler-ci-bot_1578984659.png", + "url": "https://gitee.com/api/v5/users/openeuler-ci-bot", + "html_url": "https://gitee.com/openeuler-ci-bot", + "followers_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/followers", + "following_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/orgs", + "repos_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/repos", + "events_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/openeuler-ci-bot/received_events", + "type": "User" + }, + "labels": [ + { + "id": 85036133, + "name": "CVE/FIXED", + "color": "8367b9", + "repository_id": 5292411, + "url": "https://gitee.com/api/v5/enterprises/open_euler/labels/CVE/FIXED", + "created_at": "2020-10-27T17:41:27+08:00", + "updated_at": "2021-08-09T15:33:55+08:00" + } + ], + "assignee": { + "id": 7398150, + "login": "markeryang", + "name": "Markeryang", + "avatar_url": "https://gitee.com/assets/no_portrait.png", + "url": "https://gitee.com/api/v5/users/markeryang", + "html_url": "https://gitee.com/markeryang", + "followers_url": "https://gitee.com/api/v5/users/markeryang/followers", + "following_url": "https://gitee.com/api/v5/users/markeryang/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/markeryang/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/markeryang/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/markeryang/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/markeryang/orgs", + "repos_url": "https://gitee.com/api/v5/users/markeryang/repos", + "events_url": "https://gitee.com/api/v5/users/markeryang/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/markeryang/received_events", + "type": "User" + }, + "collaborators": [], + "repository": { + "id": 8316103, + "full_name": "src-openeuler/obs-server", + "human_name": "src-openEuler/obs-server", + "url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server", + "namespace": { + "id": 5460189, + "type": "group", + "name": "src-openEuler", + "path": "src-openeuler", + "html_url": "https://gitee.com/src-openeuler" + }, + "path": "obs-server", + "name": "obs-server", + "owner": { + "id": 5210900, + "login": "freesky-edward", + "name": "freesky-edward", + "avatar_url": "https://portrait.gitee.com/uploads/avatars/user/1736/5210900_freesky-edward_1578982489.png", + "url": "https://gitee.com/api/v5/users/freesky-edward", + "html_url": "https://gitee.com/freesky-edward", + "followers_url": "https://gitee.com/api/v5/users/freesky-edward/followers", + "following_url": "https://gitee.com/api/v5/users/freesky-edward/following_url{/other_user}", + "gists_url": "https://gitee.com/api/v5/users/freesky-edward/gists{/gist_id}", + "starred_url": "https://gitee.com/api/v5/users/freesky-edward/starred{/owner}{/repo}", + "subscriptions_url": "https://gitee.com/api/v5/users/freesky-edward/subscriptions", + "organizations_url": "https://gitee.com/api/v5/users/freesky-edward/orgs", + "repos_url": "https://gitee.com/api/v5/users/freesky-edward/repos", + "events_url": "https://gitee.com/api/v5/users/freesky-edward/events{/privacy}", + "received_events_url": "https://gitee.com/api/v5/users/freesky-edward/received_events", + "type": "User" + }, + "description": "The Open Build Service -- Server Component", + "private": false, + "public": true, + "internal": false, + "fork": false, + "html_url": "https://gitee.com/src-openeuler/obs-server.git", + "ssh_url": "git@gitee.com:src-openeuler/obs-server.git", + "forks_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/forks", + "keys_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/keys{/key_id}", + "collaborators_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/collaborators{/collaborator}", + "hooks_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/hooks", + "branches_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/branches{/branch}", + "tags_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/tags", + "blobs_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/blobs{/sha}", + "stargazers_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/stargazers", + "contributors_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/contributors", + "commits_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/commits{/sha}", + "comments_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/comments{/number}", + "issue_comment_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/issues/comments{/number}", + "issues_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/issues{/number}", + "pulls_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/pulls{/number}", + "milestones_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/milestones{/number}", + "notifications_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/notifications{?since,all,participating}", + "labels_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/labels{/name}", + "releases_url": "https://gitee.com/api/v5/repos/src-openeuler/obs-server/releases{/id}", + "recommend": false, + "gvp": false, + "homepage": null, + "language": null, + "forks_count": 15, + "stargazers_count": 0, + "watchers_count": 129, + "default_branch": "master", + "open_issues_count": 7, + "has_issues": true, + "has_wiki": true, + "issue_comment": false, + "can_comment": false, + "pull_requests_enabled": true, + "has_page": false, + "license": null, + "outsourced": false, + "project_creator": "openeuler-ci-bot", + "members": [ + "doraemon2020", + "jimmy_hero", + "small_leek", + "openeuler-ci-bot" + ], + "pushed_at": "2021-07-28T10:33:10+08:00", + "created_at": "2020-03-06T14:33:22+08:00", + "updated_at": "2021-07-30T17:54:10+08:00", + "parent": null, + "paas": null, + "assignees_number": 0, + "testers_number": 0, + "assignee": [], + "testers": [], + "status": "开始", + "empty_repo": false + }, + "milestone": null, + "created_at": "2021-03-10T06:01:02+08:00", + "updated_at": "2021-03-16T17:25:43+08:00", + "plan_started_at": null, + "deadline": null, + "finished_at": "2021-03-16T17:25:39+08:00", + "scheduled_time": 0.0, + "comments": 7, + "priority": 2, + "issue_type": "CVE和安全问题", + "program": null, + "security_hole": false, + "issue_state": "已完成", + "branch": null, + "issue_type_detail": { + "id": 210726, + "title": "CVE和安全问题", + "template": "\u003C!-- #请根据issue的类型在标题右侧下拉框中选择对应的选项(需求、缺陷或CVE等)--\u003E\n\u003C!-- #请根据issue相关的版本在里程碑中选择对应的节点,若是与版本无关,请选择“不关联里程碑”--\u003E\n\n一、漏洞信息\n漏洞编号: \n\n漏洞归属组件: \n\n漏洞归属的版本:\n\nCVSS V3.0分值:\n\n漏洞简述:\n\n漏洞公开时间:\n\n漏洞创建时间:\n\n漏洞详情参考链接:\n\n漏洞分析指导链接:\nhttps://gitee.com/openeuler/cve-manager/blob/master/doc/md/manual.md\n二、漏洞分析结构反馈\n影响性分析说明:\n\nopenEuler评分:\n\n受影响版本排查(受影响/不受影响):\n", + "ident": null, + "color": "#AFCE00", + "is_system": false, + "created_at": "2020-05-25T10:03:21+08:00", + "updated_at": "2021-02-23T15:07:27+08:00" + }, + "issue_state_detail": { + "id": 437577, + "title": "已完成", + "color": "#8c92a4", + "icon": "icon-task-state-24", + "command": null, + "serial": 2, + "created_at": "2019-09-24T14:03:20+08:00", + "updated_at": "2019-09-24T14:03:20+08:00" + } +} \ No newline at end of file diff --git a/release-assistant/test/test_modify/test_modify_cli.py b/release-assistant/test/test_modify/test_modify_cli.py index 7ca644d5a18aa5f44efbd7a82ceace3745f728b9..20211f7f13ede1a4e6e0e68ff8b18246d2e20a63 100644 --- a/release-assistant/test/test_modify/test_modify_cli.py +++ b/release-assistant/test/test_modify/test_modify_cli.py @@ -13,4 +13,446 @@ # -*- coding:utf-8 -*- """ TestModify -""" \ No newline at end of file +""" +import os +from requests import RequestException +from javcra.cli.commands.modifypart import ModifyCommand +from test.base.basetest import TestMixin + +EXPECT_DATA_FILE = os.path.join(os.path.abspath(os.path.dirname(__file__)), "mock_data") + + +class TestModify(TestMixin): + """ + class for test TestModify + + """ + cmd_class = ModifyCommand + + def test_add_cve_success(self): + """ + test add cve success + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3AQ2G'] +[INFO] add I3AQ2G in cve successfully. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + mock_data = self.read_file_content('add_issue_info.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_final_data = self.read_file_content('add_cve_success.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_r = self.make_object_data(200, mock_data) + mock_final_r = self.make_object_data(200, mock_final_data) + self.mock_request(side_effect=[resp, resp, mock_r, mock_r, mock_final_r, mock_final_r]) + self.command_params = ["I40769", "--giteeid=Mary", "--add=cve", "--id=I3AQ2G"] + self.assert_result() + + def test_add_bugfix_success(self): + """ + test add bugfix success + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3AQ2G'] +[INFO] add I3AQ2G in bugfix successfully. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + mock_data = self.read_file_content('add_issue_info.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_final_data = self.read_file_content('add_bugfix_success.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_r = self.make_object_data(200, mock_data) + mock_final_r = self.make_object_data(200, mock_final_data) + self.mock_request(side_effect=[resp, resp, mock_r, mock_final_r, mock_final_r]) + self.command_params = ["I40769", "--giteeid=Mary", "--add=bugfix", "--id=I3AQ2G"] + self.assert_result() + + def test_add_remain_success(self): + """ + test add remain success + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3AQ2G'] +[INFO] add I3AQ2G in remain successfully. +update remain issues successfully. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + mock_data = self.read_file_content('add_issue_info.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_final_data = self.read_file_content('add_remain_success.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_r = self.make_object_data(200, mock_data) + mock_final_r = self.make_object_data(200, mock_final_data) + self.mock_request( + side_effect=[resp, resp, mock_r, mock_r, resp, resp, resp, mock_r, mock_r, mock_final_r]) + self.command_params = ["I40769", "--giteeid=Mary", "--add=remain", "--id=I3AQ2G"] + self.assert_result() + + def test_add_cve_failed(self): + """ + test add cve failed + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3AQ2G'] +[ERROR] failed to add I3AQ2G in cve. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + mock_data = self.read_file_content('add_issue_info.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_r = self.make_object_data(200, mock_data) + self.mock_request(side_effect=[resp, resp, mock_r, mock_r, resp, RequestException]) + self.command_params = ["I40769", "--giteeid=Mary", "--add=cve", "--id=I3AQ2G"] + self.assert_result() + + def test_add_bugfix_failed(self): + """ + test add bugfix failed + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3AQ2G'] +[ERROR] failed to add I3AQ2G in bugfix. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + mock_data = self.read_file_content('add_issue_info.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_r = self.make_object_data(200, mock_data) + self.mock_request(side_effect=[resp, resp, mock_r, mock_r, RequestException]) + self.command_params = ["I40769", "--giteeid=Mary", "--add=bugfix", "--id=I3AQ2G"] + self.assert_result() + + def test_add_remain_failed(self): + """ + test add remain failed + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3AQ2G'] +[ERROR] failed to add I3AQ2G in remain. +failed to update remain issues, please check whether the issue exist in cve and bugfix part. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + mock_data = self.read_file_content('add_issue_info.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_r = self.make_object_data(200, mock_data) + self.mock_request( + side_effect=[resp, resp, mock_r, mock_r, RequestException, RequestException]) + self.command_params = ["I40769", "--giteeid=Mary", "--add=remain", "--id=I3AQ2G"] + self.assert_result() + + def test_add_remain_not_in_cve_and_bugfix(self): + """ + test add remain not in cve and bugfix + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3AQ2G'] +[INFO] add I3AQ2G in remain successfully. +failed to update remain issues, please check whether the issue exist in cve and bugfix part. + """ + resp = self.make_expect_data(200, 'add_remain_not_in_cve_and_bugfix.txt', folder=EXPECT_DATA_FILE) + mock_data = self.read_file_content('add_issue_info.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_final_data = self.read_file_content('add_remain_not_in_cve_and_bugfix.txt', folder=EXPECT_DATA_FILE, + is_json=False) + mock_r = self.make_object_data(200, mock_data) + mock_final_r = self.make_object_data(200, mock_final_data) + self.mock_request( + side_effect=[resp, resp, mock_r, mock_r, resp, resp, resp, mock_r, mock_r, mock_final_r]) + self.command_params = ["I40769", "--giteeid=Mary", "--add=remain", "--id=I3AQ2G"] + self.assert_result() + + def test_delete_cve_success(self): + """ + test delete cve success + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3V9IG'] +[INFO] delete I3V9IG in cve successfully. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + mock_data = self.read_file_content('delete_cve_success.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_r = self.make_object_data(200, mock_data) + self.mock_request(side_effect=[resp, resp, mock_r]) + self.command_params = ["I40769", "--giteeid=Mary", "--delete=cve", "--id=I3V9IG"] + self.assert_result() + + def test_delete_bugfix_success(self): + """ + test delete bugfix success + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3J655'] +[INFO] delete I3J655 in bugfix successfully. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + mock_data = self.read_file_content('delete_bugfix_success.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_r = self.make_object_data(200, mock_data) + self.mock_request(side_effect=[resp, resp, mock_r]) + self.command_params = ["I40769", "--giteeid=Mary", "--delete=bugfix", "--id=I3J655"] + self.assert_result() + + def test_delete_remain_success(self): + """ + test delete remain success + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3SZRJ'] +[INFO] delete I3SZRJ in remain successfully. +update remain issues successfully. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + mock_data = self.read_file_content('delete_remain_success.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_issue_data = self.read_file_content('add_issue_info.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_final_data = self.read_file_content('delete_update_remain_success.txt', folder=EXPECT_DATA_FILE, + is_json=False) + mock_r = self.make_object_data(200, mock_data) + mock_final_r = self.make_object_data(200, mock_final_data) + mock_issue_r = self.make_object_data(200, mock_issue_data) + self.mock_request(side_effect=[resp, resp, mock_r, mock_r, mock_issue_r, mock_issue_r, mock_final_r]) + self.command_params = ["I40769", "--giteeid=Mary", "--delete=remain", "--id=I3SZRJ"] + self.assert_result() + + def test_delete_cve_failed(self): + """ + test delete cve failed + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3V9IG'] +[ERROR] failed to delete I3V9IG in cve. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + self.mock_request(side_effect=[resp, resp, RequestException]) + self.command_params = ["I40769", "--giteeid=Mary", "--delete=cve", "--id=I3V9IG"] + self.assert_result() + + def test_delete_bugfix_failed(self): + """ + test delete bugfix failed + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3J655'] +[ERROR] failed to delete I3J655 in bugfix. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + self.mock_request(side_effect=[resp, resp, RequestException]) + self.command_params = ["I40769", "--giteeid=Mary", "--delete=bugfix", "--id=I3J655"] + self.assert_result() + + def test_delete_remain_failed(self): + """ + test delete remain failed + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3SZRJ'] +[ERROR] failed to delete I3SZRJ in remain. +failed to update remain issues, please check whether the issue exist in cve and bugfix part. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + self.mock_request( + side_effect=[resp, resp, RequestException, RequestException]) + self.command_params = ["I40769", "--giteeid=Mary", "--delete=remain", "--id=I3SZRJ"] + self.assert_result() + + def test_parameter_validation_failed(self): + """ + test parameter validation failed + """ + + self.expect_str = """ +Parameter validation failed + """ + self.command_params = ["I40769", "--giteeid=Mary", "--delete=remain", "--id"] + self.assert_result() + + def test_no_personnel_authority(self): + """test_no_personnel_authority""" + self.command_params = ["I40769", "--giteeid=Mary", "--delete=remain", "--id=I3AQ2G"] + + self.expect_str = """ +modify part start! I40769 Mary ['I3AQ2G'] +[ERROR] The current user does not have relevant operation permissions +""" + resp = self.make_expect_data(200, 'mock_issue.txt', folder=EXPECT_DATA_FILE) + self.mock_request(side_effect=[resp]) + self.assert_result() + + def test_request_raise_requestexception(self): + """ + test_request_raise_requestexception + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3AQ2G'] +[ERROR] The current user does not have relevant operation permissions + """ + self.command_params = ["I40769", "--giteeid=Mary", "--delete=remain", "--id=I3AQ2G"] + self.mock_request(side_effect=[RequestException]) + self.assert_result() + + def test_update_remain_failed(self): + """ + test_update_remain_failed + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3AQ2G'] +[INFO] delete I3AQ2G in remain successfully. +failed to update remain issues, please check whether the issue exist in cve and bugfix part. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + mock_data = self.read_file_content('add_issue_info.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_r = self.make_object_data(200, mock_data) + self.mock_request(side_effect=[resp, resp, mock_r, mock_r, resp, resp, RequestException]) + self.command_params = ["I40769", "--giteeid=Mary", "--delete=remain", "--id=I3AQ2G"] + self.assert_result() + + def test_delete_multiple_cve(self): + """ + test delete multiple cve + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3V9IG', 'I3AQ2G'] +[INFO] delete I3V9IG,I3AQ2G in cve successfully. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + mock_data = self.read_file_content('delete_multiple_cve_success.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_r = self.make_object_data(200, mock_data) + self.mock_request(side_effect=[resp, resp, mock_r]) + self.command_params = ["I40769", "--giteeid=Mary", "--delete=cve", "--id", "I3V9IG", "I3AQ2G"] + self.assert_result() + + def test_delete_multiple_bugfix(self): + """ + test delete multiple bugfix + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3J655', 'I3AHLY'] +[INFO] delete I3J655,I3AHLY in bugfix successfully. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + mock_data = self.read_file_content('delete_multiple_bugfix_success.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_r = self.make_object_data(200, mock_data) + self.mock_request(side_effect=[resp, resp, mock_r]) + self.command_params = ["I40769", "--giteeid=Mary", "--delete=bugfix", "--id", "I3J655", "I3AHLY"] + self.assert_result() + + def test_delete_multiple_remain(self): + """ + test delete multiple remain + """ + + self.expect_str = """ +modify part start! I40769 Mary ['I3SZRJ', 'I3OC6A'] +[INFO] delete I3SZRJ,I3OC6A in remain successfully. +update remain issues successfully. + """ + resp = self.make_expect_data(200, 'modifypart.txt') + mock_data = self.read_file_content('delete_multiple_remain_success.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_final_1_data = self.read_file_content('delete_multiple_update_remain_success.txt', folder=EXPECT_DATA_FILE, + is_json=False) + mock_final_2_data = self.read_file_content('delete_multiple_update_remain_success2.txt', + folder=EXPECT_DATA_FILE, + is_json=False) + mock_issue_1_data = self.read_file_content('mock_remain_issue_1_data.txt', folder=EXPECT_DATA_FILE, + is_json=False) + mock_issue_2_data = self.read_file_content('mock_remain_issue_2_data.txt', folder=EXPECT_DATA_FILE, + is_json=False) + mock_r = self.make_object_data(200, mock_data) + mock_final_1_r = self.make_object_data(200, mock_final_1_data) + mock_final_2_r = self.make_object_data(200, mock_final_2_data) + mock_issue_1_r = self.make_object_data(200, mock_issue_1_data) + mock_issue_2_r = self.make_object_data(200, mock_issue_2_data) + self.mock_request( + side_effect=[resp, resp, mock_r, mock_r, mock_issue_1_r, mock_issue_1_r, mock_final_1_r, mock_r, + mock_issue_2_r, mock_issue_2_r, mock_final_2_r]) + self.command_params = ["I40769", "--giteeid=Mary", "--delete=remain", "--id", "I3SZRJ", "I3OC6A"] + self.assert_result() + + def test_old_body_is_none(self): + """ + test old body is none + """ + self.expect_str = """ +modify part start! I40769 Mary ['I3AQ2G'] +[ERROR] failed to add I3AQ2G in cve. + """ + self.command_params = ["I40769", "--giteeid=Mary", "--add=cve", "--id=I3AQ2G"] + resp = self.make_expect_data(200, 'modifypart.txt') + issue_body_is_none_data = self.read_file_content('mock_issue_is_none.txt', folder=EXPECT_DATA_FILE, + is_json=False) + mock_issue_body_is_none_r = self.make_object_data(200, issue_body_is_none_data) + self.mock_request(side_effect=[resp, mock_issue_body_is_none_r]) + self.assert_result() + + def test_issue_body_is_none(self): + """ + test issue body is none + """ + self.expect_str = """ +modify part start! I40769 Mary ['I3AQ2G'] +[ERROR] failed to add I3AQ2G in cve. + """ + self.command_params = ["I40769", "--giteeid=Mary", "--add=cve", "--id=I3AQ2G"] + resp = self.make_expect_data(200, 'modifypart.txt') + self.mock_request(side_effect=[resp, resp, RequestException]) + self.assert_result() + + def test_cve_basescore(self): + """ + test cve basescore + """ + self.expect_str = """ +modify part start! I40769 Mary ['I3AQ2G'] +[INFO] add I3AQ2G in cve successfully. + """ + self.command_params = ["I40769", "--giteeid=Mary", "--add=cve", "--id=I3AQ2G"] + resp = self.make_expect_data(200, 'modifypart.txt') + cve_basescore_data = self.read_file_content('mock_issue_basescore.txt', folder=EXPECT_DATA_FILE, + is_json=False) + mock_cve_basescore_r = self.make_object_data(200, cve_basescore_data) + mock_final_data = self.read_file_content('add_cve_success.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_final_r = self.make_object_data(200, mock_final_data) + self.mock_request( + side_effect=[resp, resp, mock_cve_basescore_r, mock_cve_basescore_r, mock_final_r, mock_final_r]) + self.assert_result() + + def test_cve_no_score(self): + """ + test cve no score + """ + self.expect_str = """ +modify part start! I40769 Mary ['I3AQ2G'] +[INFO] add I3AQ2G in cve successfully. + """ + self.command_params = ["I40769", "--giteeid=Mary", "--add=cve", "--id=I3AQ2G"] + resp = self.make_expect_data(200, 'modifypart.txt') + cve_no_core_data = self.read_file_content('mock_issue_no_score.txt', folder=EXPECT_DATA_FILE, + is_json=False) + mock_cve_no_core_r = self.make_object_data(200, cve_no_core_data) + mock_final_data = self.read_file_content('add_cve_no_score.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_final_r = self.make_object_data(200, mock_final_data) + self.mock_request( + side_effect=[resp, resp, mock_cve_no_core_r, mock_cve_no_core_r, mock_final_r, mock_final_r]) + self.assert_result() + + def test_cve_abi_yes(self): + """ + test cve abi yes + """ + self.expect_str = """ +modify part start! I40769 Mary ['I3AQ2G'] +[INFO] add I3AQ2G in cve successfully. + """ + self.command_params = ["I40769", "--giteeid=Mary", "--add=cve", "--id=I3AQ2G"] + resp = self.make_expect_data(200, 'modifypart.txt') + cve_abi_data = self.read_file_content('mock_issue_abi.txt', folder=EXPECT_DATA_FILE, + is_json=False) + mock_cve_abi_r = self.make_object_data(200, cve_abi_data) + mock_final_data = self.read_file_content('add_cve_abi_success.txt', folder=EXPECT_DATA_FILE, is_json=False) + mock_final_r = self.make_object_data(200, mock_final_data) + self.mock_request( + side_effect=[resp, resp, mock_cve_abi_r, mock_cve_abi_r, mock_final_r, mock_final_r]) + self.assert_result()