From c38f7fd594372d518c7ffacbc392f55d3b953a01 Mon Sep 17 00:00:00 2001 From: zhangjianjun_code <7844966+zhangjianjun_code@user.noreply.gitee.com> Date: Sat, 31 Oct 2020 14:52:42 +0800 Subject: [PATCH 1/4] Add maintainer default value --- conf/app.conf | 14 ++++----- conf/product_app.conf | 5 ++-- doc/sql/db_struct.sql | 64 +++++++++++++++++++++++---------------- git | 0 models/modeldb.go | 11 +++++-- models/uploadcve.go | 69 ++++++++++++++++++++++++++++++++++++++----- task/issuetask.go | 15 ++++++++++ 7 files changed, 133 insertions(+), 45 deletions(-) create mode 100644 git diff --git a/conf/app.conf b/conf/app.conf index 2f53947..b6504c0 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -46,18 +46,18 @@ maxsize=204800 [crontab] ymalflag = 2 getymal = 00 00 23 * * * -cveflag = 1 +cveflag = 2 getcve = 00 00 01 * * * oricveflag = 2 oricvecheck = 00 00 05 * * * getissueflag = 2 getissue = 00 00 05 * * * -issueflag = 2 +issueflag = 1 createissue = * * 05 * * * test = 0/10 * * * * * gittokenflag = 2 issueoath = * * */20 * * * -genexcelflag = 1 +genexcelflag = 2 genexcel = 0 */10 * * * * days = -30 prcnum = 50 @@ -67,13 +67,13 @@ printlog = 0 */20 * * * * [gitee] #owner = cve-test -owner = src-openeuler -path = test +#owner = src-openeuler +#path = test #email = 1499273991@qq.com #redirect_uri = http://119.8.126.102:80/v1/issue/oauth/callback # -------jianjun gitee 配置 -------- -#owner = cve-test -#path = jasper +owner = cve-test +path = jasper email = 7844966+zhangjianjun_code@user.noreply.gitee.com redirect_uri = http://159.138.2.2:80/v1/issue/oauth/callback diff --git a/conf/product_app.conf b/conf/product_app.conf index 4e7f565..d58a7f8 100644 --- a/conf/product_app.conf +++ b/conf/product_app.conf @@ -43,7 +43,7 @@ maxlines=50000 maxsize=204800 [crontab] -ymalflag = 1 +ymalflag = 2 getymal = 00 00 01 * * 1 cveflag = 1 getcve = 00 00 03 * * * @@ -67,7 +67,8 @@ printlog = 0 */10 * * * * [gitee] owner = src-openeuler path = jasper -email = 7844966+zhangjianjun_code@user.noreply.gitee.com +#email = 7844966+zhangjianjun_code@user.noreply.gitee.com +email = ***** #redirect_uri = https://api.openeuler.org/cve-manager/v1/issue/oauth/callback scope = user_info projects pull_requests issues notes keys hook groups gists enterprises emails diff --git a/doc/sql/db_struct.sql b/doc/sql/db_struct.sql index 4f6404f..a643cd4 100644 --- a/doc/sql/db_struct.sql +++ b/doc/sql/db_struct.sql @@ -52,7 +52,7 @@ CREATE TABLE `cve_export_record` ( `state` tinyint NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `file_name` (`file_name`) -) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8; /*Table structure for table `cve_git_open_euler` */ @@ -241,7 +241,7 @@ CREATE TABLE `cve_gite_origin_issue` ( PRIMARY KEY (`id`), UNIQUE KEY `issue_id` (`issue_id`), UNIQUE KEY `number` (`number`) -) ENGINE=InnoDB AUTO_INCREMENT=691 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=591 DEFAULT CHARSET=utf8; /*Table structure for table `cve_gite_repo` */ @@ -262,7 +262,7 @@ CREATE TABLE `cve_gite_repo` ( `delete_time` varchar(255) DEFAULT NULL, PRIMARY KEY (`repo_id`), KEY `cve_gite_repo_group_id` (`group_id`) -) ENGINE=InnoDB AUTO_INCREMENT=14269 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=28649 DEFAULT CHARSET=utf8; /*Table structure for table `cve_gite_repo_branch` */ @@ -293,7 +293,7 @@ CREATE TABLE `cve_gite_repo_member` ( PRIMARY KEY (`repo_id`), KEY `cve_gite_repo_member_group_id` (`group_id`), CONSTRAINT `member_groups_group_id` FOREIGN KEY (`group_id`) REFERENCES `cve_git_repo_groups` (`group_id`) -) ENGINE=InnoDB AUTO_INCREMENT=884 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1766 DEFAULT CHARSET=utf8; /*Table structure for table `cve_ip_white` */ @@ -308,6 +308,17 @@ CREATE TABLE `cve_ip_white` ( KEY `cve_ip_white_machine_ip` (`machine_ip`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +/*Table structure for table `cve_issue_assignee` */ + +DROP TABLE IF EXISTS `cve_issue_assignee`; + +CREATE TABLE `cve_issue_assignee` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `assignee` varchar(255) NOT NULL DEFAULT '', + PRIMARY KEY (`id`), + UNIQUE KEY `assignee` (`assignee`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; + /*Table structure for table `cve_issue_hooks` */ DROP TABLE IF EXISTS `cve_issue_hooks`; @@ -334,7 +345,7 @@ CREATE TABLE `cve_issue_hooks` ( UNIQUE KEY `cve_issue_hooks_owner_repo_status_un` (`owner`,`repo`,`hook_url`,`status`), KEY `cve_issue_hooks_Cve_id` (`cve_id`), KEY `cve_issue_hooks_issue_num` (`issue_num`) -) ENGINE=InnoDB AUTO_INCREMENT=114 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; /*Table structure for table `cve_issue_template` */ @@ -380,7 +391,7 @@ CREATE TABLE `cve_issue_template` ( UNIQUE KEY `cve_issue_template_cvn_issnu` (`cve_num`,`issue_num`), KEY `cve_issue_template_cve_id` (`cve_id`), KEY `cve_issue_template_issue_num` (`issue_num`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=619 DEFAULT CHARSET=utf8; /*Table structure for table `cve_open_euler_s_a` */ @@ -394,7 +405,7 @@ CREATE TABLE `cve_open_euler_s_a` ( PRIMARY KEY (`openeuler_id`), UNIQUE KEY `openeuler_sa_num` (`openeuler_sa_num`), KEY `cve_open_euler_s_a_cve_id` (`cve_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1949 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_excel` */ @@ -429,7 +440,7 @@ CREATE TABLE `cve_origin_excel` ( `delete_time` datetime DEFAULT NULL, PRIMARY KEY (`cve_id`) USING BTREE, UNIQUE KEY `cve_origin_excel_num_un` (`cve_num`) -) ENGINE=InnoDB AUTO_INCREMENT=152 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; /*Table structure for table `cve_origin_upstream` */ @@ -462,7 +473,7 @@ CREATE TABLE `cve_origin_upstream` ( KEY `cve_origin_upstream_cve_packname` (`cve_packname`), KEY `cve_origin_upstream_git_packname` (`git_packname`), KEY `cve_origin_upstream_version` (`version`) -) ENGINE=InnoDB AUTO_INCREMENT=1393 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1457 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_config` */ @@ -474,7 +485,7 @@ CREATE TABLE `cve_origin_upstream_config` ( `nodes` varchar(32) DEFAULT NULL, PRIMARY KEY (`conf_id`), KEY `cve_origin_upstream_config_cve_id` (`cve_id`) -) ENGINE=InnoDB AUTO_INCREMENT=2810 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=4237 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_config_node` */ @@ -486,7 +497,7 @@ CREATE TABLE `cve_origin_upstream_config_node` ( `operator` varchar(256) DEFAULT NULL, PRIMARY KEY (`node_id`), KEY `cve_origin_upstream_config_node_conf_id` (`conf_id`) -) ENGINE=InnoDB AUTO_INCREMENT=5303 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=8024 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_config_node_cpe` */ @@ -500,7 +511,7 @@ CREATE TABLE `cve_origin_upstream_config_node_cpe` ( `vulner_able` varchar(64) DEFAULT NULL, PRIMARY KEY (`cpe_id`), KEY `cve_origin_upstream_config_node_cpe_node_id` (`node_id`) -) ENGINE=InnoDB AUTO_INCREMENT=163418 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=246346 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_desc` */ @@ -513,7 +524,7 @@ CREATE TABLE `cve_origin_upstream_desc` ( `zh_desc` text CHARACTER SET utf8 COLLATE utf8_general_ci, PRIMARY KEY (`desc_id`), KEY `cve_origin_upstream_desc_cve_id` (`cve_id`) -) ENGINE=InnoDB AUTO_INCREMENT=2810 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=4237 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_event` */ @@ -528,7 +539,7 @@ CREATE TABLE `cve_origin_upstream_event` ( `description` text CHARACTER SET utf8 COLLATE utf8_general_ci, PRIMARY KEY (`event_id`), KEY `cve_origin_upstream_event_cve_id` (`cve_id`) -) ENGINE=InnoDB AUTO_INCREMENT=2810 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=4237 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_fix_suggest` */ @@ -540,7 +551,7 @@ CREATE TABLE `cve_origin_upstream_fix_suggest` ( `detail` varchar(1024) DEFAULT NULL, PRIMARY KEY (`fix_id`), KEY `cve_origin_upstream_fix_suggest_cve_id` (`cve_id`) -) ENGINE=InnoDB AUTO_INCREMENT=2798 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=4219 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_fix_suggest_ref` */ @@ -578,7 +589,7 @@ CREATE TABLE `cve_origin_upstream_impact` ( `impact` varchar(32) DEFAULT NULL, PRIMARY KEY (`impact_id`), KEY `cve_origin_upstream_impact_cve_id` (`cve_id`) -) ENGINE=InnoDB AUTO_INCREMENT=2810 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=4237 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_impact_score` */ @@ -594,7 +605,7 @@ CREATE TABLE `cve_origin_upstream_impact_score` ( `score_status` tinyint DEFAULT '1', PRIMARY KEY (`score_id`), KEY `cve_origin_upstream_impact_score_impact_id` (`impact_id`) -) ENGINE=InnoDB AUTO_INCREMENT=5619 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=8473 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_impact_score_v2` */ @@ -623,7 +634,7 @@ CREATE TABLE `cve_origin_upstream_impact_score_v2` ( `cve_level` varchar(32) DEFAULT NULL, PRIMARY KEY (`v2_id`), KEY `cve_origin_upstream_impact_score_v2_score_id` (`score_id`) -) ENGINE=InnoDB AUTO_INCREMENT=2810 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=4237 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_impact_score_v3` */ @@ -649,7 +660,7 @@ CREATE TABLE `cve_origin_upstream_impact_score_v3` ( `cve_level` varchar(32) DEFAULT NULL, PRIMARY KEY (`v3_id`), KEY `cve_origin_upstream_impact_score_v3_score_id` (`score_id`) -) ENGINE=InnoDB AUTO_INCREMENT=2810 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=4237 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_poc` */ @@ -666,7 +677,7 @@ CREATE TABLE `cve_origin_upstream_poc` ( `desc` text CHARACTER SET utf8 COLLATE utf8_general_ci, PRIMARY KEY (`poc_id`), KEY `cve_origin_upstream_poc_cve_id` (`cve_id`) -) ENGINE=InnoDB AUTO_INCREMENT=2810 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=4237 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_reference` */ @@ -681,7 +692,7 @@ CREATE TABLE `cve_origin_upstream_reference` ( `tags` text CHARACTER SET utf8 COLLATE utf8_general_ci, PRIMARY KEY (`ref_id`), KEY `cve_origin_upstream_reference_cve_id` (`cve_id`) -) ENGINE=InnoDB AUTO_INCREMENT=55467 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=83782 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_vul_type` */ @@ -695,7 +706,7 @@ CREATE TABLE `cve_origin_upstream_vul_type` ( `zh_desc` text CHARACTER SET utf8 COLLATE utf8_general_ci, PRIMARY KEY (`vul_id`), KEY `cve_origin_upstream_vul_type_cve_id` (`cve_id`) -) ENGINE=InnoDB AUTO_INCREMENT=2798 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=4219 DEFAULT CHARSET=utf8; /*Table structure for table `cve_other_user` */ @@ -783,7 +794,7 @@ CREATE TABLE `cve_score` ( PRIMARY KEY (`id`), UNIQUE KEY `openeuler_id` (`openeuler_id`), KEY `cve_score_cve_id` (`cve_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1949 DEFAULT CHARSET=utf8; /*Table structure for table `cve_score_record` */ @@ -798,7 +809,7 @@ CREATE TABLE `cve_score_record` ( `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `cve_score_record_cve_id` (`cve_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1951 DEFAULT CHARSET=utf8; /*Table structure for table `cve_security_notice` */ @@ -824,7 +835,7 @@ CREATE TABLE `cve_security_notice` ( PRIMARY KEY (`sec_id`), UNIQUE KEY `openeuler_id` (`openeuler_id`), KEY `cve_security_notice_cve_id` (`cve_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1949 DEFAULT CHARSET=utf8; /*Table structure for table `cve_security_reviewer` */ @@ -833,6 +844,7 @@ DROP TABLE IF EXISTS `cve_security_reviewer`; CREATE TABLE `cve_security_reviewer` ( `id` bigint NOT NULL AUTO_INCREMENT, `name_space` varchar(255) NOT NULL DEFAULT '', + `status` tinyint NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `name_space` (`name_space`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; @@ -860,7 +872,7 @@ CREATE TABLE `cve_vuln_center` ( PRIMARY KEY (`cve_id`), UNIQUE KEY `cve_vuln_center_num_pack_v_un` (`cve_num`,`cve_version`,`pack_name`), KEY `cve_vuln_center_cve_num` (`cve_num`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1955 DEFAULT CHARSET=utf8; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; diff --git a/git b/git new file mode 100644 index 0000000..e69de29 diff --git a/models/modeldb.go b/models/modeldb.go index d925465..330d936 100644 --- a/models/modeldb.go +++ b/models/modeldb.go @@ -326,6 +326,11 @@ type SecurityReviewer struct { NameSpace string `orm:"unique" description:"码云空间地址"` } +type IssueAssignee struct { + Id int64 `orm:"pk;auto"` + Assignee string `orm:"unique" description:"码云空间地址"` +} + type OriginUpstreamConfigNodeCpe struct { CpeId int64 `orm:"pk;auto;column(cpe_id)"` NodeId int64 `orm:"index;column(node_id)" description:"OriginUpstreamConfigNode 外键"` @@ -517,7 +522,7 @@ type GiteRepo struct { OrgId int64 OrgPath string `orm:"size(128);column(org_path);null" description:"组织名称"` Path string `orm:"size(512);column(path);null" description:"仓库名称"` - Status int8 `orm:"default(0);column(status);null" description:"1: 正常;2:已删除"` + Status int8 `orm:"default(0);column(status);null" description:"0: 正常;1:已删除"` Public bool Private bool Fork bool @@ -550,7 +555,7 @@ type ExportRecord struct { Id int64 `orm:"pk;auto"` FileName string `orm:"unique"` FileCode string - State int8 ` description:"0:文件生成中;1 文件可下载;2 文件不可下载"` + State int8 ` description:"0:文件生成中;1 文件可下载;2 文件不可下载"` CreateTime int64 `orm:"column(create_time)" description:"时间戳"` } @@ -588,7 +593,7 @@ func CreateDb() bool { new(OriginUpstreamPoc), new(OriginUpstreamEvent), new(OriginUpstreamReference), new(OriginUpstreamVulType), new(OriginUpstreamFixSuggest), new(OriginUpstreamFixSuggestRefTag), new(OriginUpstreamFixSuggestRef), new(GiteOriginIssue), new(OriginExcel), new(ExportRecord), new(GitRepoGroups), - new(GiteRepo), new(GiteRepoMember), new(GiteRepoBranch), new(PackageCpe), new(EmailList), + new(GiteRepo), new(GiteRepoMember), new(GiteRepoBranch), new(PackageCpe), new(EmailList), new(IssueAssignee), ) logs.Info("table create success!") errosyn := orm.RunSyncdb("default", false, true) diff --git a/models/uploadcve.go b/models/uploadcve.go index 12dd07f..8b0c9e4 100644 --- a/models/uploadcve.go +++ b/models/uploadcve.go @@ -31,7 +31,7 @@ func QueryOriginRepo(pkgName string) (GiteRepo, bool) { logs.Error("pkgName: ", pkgName, ",无法 获取组织, err: ", errx) return gr, false } - err := o.Raw("select * from cve_gite_repo where path = ? and org_path = ? and status = ?", pkgName, repoOrg, 1).QueryRow(&gr) + err := o.Raw("select * from cve_gite_repo where path = ? and org_path = ? and status = ?", pkgName, repoOrg, 0).QueryRow(&gr) if err != nil { logs.Info("pkgName", pkgName, "repoOrg", repoOrg, ", cve_gite_repo 无对应数据") return gr, false @@ -44,7 +44,7 @@ func QueryOriginRepo(pkgName string) (GiteRepo, bool) { func QueryRepoMember(groupId int64, memberType string) ([]GiteRepoMember, bool) { o := orm.NewOrm() var grm []GiteRepoMember - num, err := o.Raw("select * from cve_gite_repo_member where group_id = ? and member_type = ?", groupId, memberType).QueryRows(&grm) + num, err := o.Raw("select * from cve_gite_repo_member where group_id = ?", groupId).QueryRows(&grm) if err != nil || num == 0 { logs.Info("groupId", groupId, ",memberType", memberType, ", cve_gite_repo_member 无对应数据") return grm, false @@ -54,39 +54,94 @@ func QueryRepoMember(groupId int64, memberType string) ([]GiteRepoMember, bool) } } +func QueryAssignee() ([]IssueAssignee, bool) { + o := orm.NewOrm() + var iae []IssueAssignee + num, err := o.Raw("select * from cve_isssueA_asignee").QueryRows(&iae) + if err != nil || num == 0 { + return iae, false + } else { + return iae, true + } +} + func QueryCveOpeneulerdata(pkgName string, version string) (GitOpenEuler, bool) { goe, ok := QueryYamlData(pkgName, version) if !ok || goe.GitId == 0 { gr, okrg := QueryOriginRepo(pkgName) if !okrg || gr.RepoId == 0 { + aie, aieOk := QueryAssignee() + if aieOk { + for _, a := range aie { + if a.Assignee != "" && len(a.Assignee) > 1 { + goe.MainTainer = a.Assignee + break + } + } + return goe, true + } return goe, ok } grm, okgrm := QueryRepoMember(gr.GroupId, "Maintainer") if !okgrm { + aie, aieOk := QueryAssignee() + if aieOk { + for _, a := range aie { + if a.Assignee != "" && len(a.Assignee) > 1 { + goe.MainTainer = a.Assignee + break + } + } + return goe, true + } return goe, ok } for _, g := range grm { - goe.MainTainer = g.MemberName - break + if g.MemberName != "" && len(g.MemberName) > 1 { + goe.MainTainer = g.MemberName + break + } } return goe, true } else { if goe.MainTainer == "" || len(goe.MainTainer) == 0 { gr, okrg := QueryOriginRepo(pkgName) if !okrg || gr.RepoId == 0 { + aie, aieOk := QueryAssignee() + if aieOk { + for _, a := range aie { + if a.Assignee != "" && len(a.Assignee) > 1 { + goe.MainTainer = a.Assignee + break + } + } + return goe, true + } return goe, ok } grm, okgrm := QueryRepoMember(gr.GroupId, "Maintainer") if !okgrm { + aie, aieOk := QueryAssignee() + if aieOk { + for _, a := range aie { + if a.Assignee != "" && len(a.Assignee) > 1 { + goe.MainTainer = a.Assignee + break + } + } + return goe, true + } return goe, ok } for _, g := range grm { - goe.MainTainer = g.MemberName - break + if g.MemberName != "" && len(g.MemberName) > 1 { + goe.MainTainer = g.MemberName + break + } } } } - return goe, ok + return goe, true } func QueryCveOpeneulerDetaildata(pkgName string, version string) (GitPackageInfo, bool) { diff --git a/task/issuetask.go b/task/issuetask.go index bd3c7b7..927fae4 100644 --- a/task/issuetask.go +++ b/task/issuetask.go @@ -147,6 +147,21 @@ func ProcUpdateIssue(issueValue models.VulnCenter, accessToken, owner, path stri lit.NVDVector = sr.NvectorVule lit.CveBrief = issueValue.Description lit.CveLevel = issueValue.CveLevel + if lit.Assignee == "" || len(lit.Assignee) < 2 { + gitYaml, ok := models.QueryCveOpeneulerdata(issueValue.PackName, issueValue.CveVersion) + if !ok || gitYaml.MainTainer == "" || len(gitYaml.MainTainer) < 1 { + assignee, assErr := taskhandler.GetCollaboratorInfo(accessToken, owner, path) + if assignee != "" && len(assignee) > 1{ + lit.Assignee = assignee + //return err + } else { + logs.Error("获取仓库: owner:", owner, "path:", path, "分析人失败", "assErr:", assErr, + ", cveid: ", issueValue.CveId, ",创建无maintainer的issue") + } + } else { + lit.Assignee = gitYaml.MainTainer + } + } path = lit.Repo _, err := taskhandler.UpdateIssueToGit(accessToken, owner, path, issueValue, lit) -- Gitee From 3115cb6516cbf43828f48bcba96627fd8145177b Mon Sep 17 00:00:00 2001 From: zhangjianjun_code <7844966+zhangjianjun_code@user.noreply.gitee.com> Date: Sat, 31 Oct 2020 15:51:44 +0800 Subject: [PATCH 2/4] Added cvenumber. Submitting an issue needs to be greater than the cve number after 2018, excluding 2018 --- conf/app.conf | 6 ++++-- conf/product_app.conf | 2 ++ task/issuetask.go | 18 ++++++++++++++++++ taskhandler/cve.go | 23 +++++++++++++++++++++++ 4 files changed, 47 insertions(+), 2 deletions(-) diff --git a/conf/app.conf b/conf/app.conf index b6504c0..ad97d18 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -46,13 +46,13 @@ maxsize=204800 [crontab] ymalflag = 2 getymal = 00 00 23 * * * -cveflag = 2 +cveflag = 1 getcve = 00 00 01 * * * oricveflag = 2 oricvecheck = 00 00 05 * * * getissueflag = 2 getissue = 00 00 05 * * * -issueflag = 1 +issueflag = 2 createissue = * * 05 * * * test = 0/10 * * * * * gittokenflag = 2 @@ -99,6 +99,8 @@ apiurl = https://api.openeuler.org/pkgmanage [cve] cveref = https://nvd.nist.gov/vuln/detail/ openeulernum = 3000 +# Import cve as data after 2018 +cve_number = 2018 [reflink] comment_cmd = https://gitee.com/openeuler/cve-manager/blob/master/doc/md/manual.md diff --git a/conf/product_app.conf b/conf/product_app.conf index d58a7f8..832c90e 100644 --- a/conf/product_app.conf +++ b/conf/product_app.conf @@ -92,6 +92,8 @@ apiurl = https://api.openeuler.org/pkgmanage [cve] cveref = https://nvd.nist.gov/vuln/detail/ openeulernum = 3000 +# Import cve as data after 2018 +cve_number = 2018 [reflink] comment_cmd = https://gitee.com/openeuler/cve-manager/blob/master/doc/md/manual.md diff --git a/task/issuetask.go b/task/issuetask.go index 927fae4..9e78922 100644 --- a/task/issuetask.go +++ b/task/issuetask.go @@ -9,6 +9,7 @@ import ( "github.com/astaxie/beego/config" "github.com/astaxie/beego/logs" "os" + "strconv" "strings" ) @@ -72,6 +73,11 @@ func CreateIssue() error { logs.Error("config crontab::days error:", ok) return ok } + years, ok := BConfig.Int("cve::cve_number") + if ok != nil { + logs.Error("config cve::years error:", ok) + return ok + } prcnum, ok := BConfig.Int("crontab::prcnum") if ok != nil { logs.Error("config crontab::prcnum error:", ok) @@ -105,6 +111,18 @@ func CreateIssue() error { continue } } + // Import cve as data after 2018 + cveNumList := strings.Split(issueValue.CveNum, "-") + if cveNumList != nil && len(cveNumList) > 1 { + cveYears, yearErr := strconv.Atoi(cveNumList[1]) + if yearErr == nil { + if cveYears <= years { + models.UpdateIssueStatus(issueValue, 2) + logs.Info("cve: ", issueValue.CveNum, ",需要大于: ", years, ",否则不需要在git上提交issue, cveData: ", issueValue) + continue + } + } + } // Determine whether cve has been processed issueExist := taskhandler.GetCveSecurityNotice(issueValue.CveNum) if issueExist { diff --git a/taskhandler/cve.go b/taskhandler/cve.go index c37cca0..17c6a28 100644 --- a/taskhandler/cve.go +++ b/taskhandler/cve.go @@ -8,6 +8,7 @@ import ( "errors" "fmt" "github.com/astaxie/beego" + "github.com/astaxie/beego/config" "github.com/astaxie/beego/logs" "io" "io/ioutil" @@ -679,6 +680,28 @@ func GenCveVuler(cveData models.OriginUpstream, cveRef string, openeulernum int) models.UpdateOriginStatus(common.GetCurTime(), cveData.PackName, cveData.Version, cveData.CveId, 3) return false, errors.New("数据错误,暂时不处理") } + BConfig, err := config.NewConfig("ini", "conf/app.conf") + if err != nil { + logs.Error("config init error:", err) + return false, err + } + years, confOk := BConfig.Int("cve::cve_number") + if confOk != nil { + logs.Error("config cve::years error:", confOk) + return false, errors.New("数据错误,暂时不处理") + } + // Import cve as data after 2018 + cveNumList := strings.Split(cveData.CveNum, "-") + if cveNumList != nil && len(cveNumList) > 1 { + cveYears, yearErr := strconv.Atoi(cveNumList[1]) + if yearErr == nil { + if cveYears <= years { + models.UpdateOriginStatus(common.GetCurTime(), cveData.PackName, cveData.Version, cveData.CveId, 3) + logs.Info("cve: ", cveData.CveNum, ",需要大于: ", years, ",否则不需要在git上提交issue, cveData: ", cveData) + return false, errors.New("数据错误,暂时不处理") + } + } + } cveDesc, ok := models.QueryCveDesc(cveData.CveId) if !ok { logs.Error("当前数据描述为空暂不处理, data: ", cveData) -- Gitee From 59678fec6046c628f7c5ab55919e2fdc02facb30 Mon Sep 17 00:00:00 2001 From: zhangjianjun_code <7844966+zhangjianjun_code@user.noreply.gitee.com> Date: Sat, 31 Oct 2020 17:00:23 +0800 Subject: [PATCH 3/4] python parsing cve data --- cve-py/newexcels/20.03-CVE-10-10.xlsx | Bin 12859 -> 0 bytes cve-py/newexcels/20.09-CVE-2019.xlsx | Bin 0 -> 13464 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 cve-py/newexcels/20.03-CVE-10-10.xlsx create mode 100644 cve-py/newexcels/20.09-CVE-2019.xlsx diff --git a/cve-py/newexcels/20.03-CVE-10-10.xlsx b/cve-py/newexcels/20.03-CVE-10-10.xlsx deleted file mode 100644 index 67c3c08c98677dac89f2f5f3e30f53f8679c1f26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12859 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 Date: Sat, 31 Oct 2020 17:05:33 +0800 Subject: [PATCH 4/4] The code has not been submitted, resubmit --- cve-py/controller/timertaskcontroller.py | 6 ++++++ cve-py/main.py | 2 ++ 2 files changed, 8 insertions(+) diff --git a/cve-py/controller/timertaskcontroller.py b/cve-py/controller/timertaskcontroller.py index 9c04eea..f8259bf 100644 --- a/cve-py/controller/timertaskcontroller.py +++ b/cve-py/controller/timertaskcontroller.py @@ -42,3 +42,9 @@ def timertask(): print("Err:", err) +def initExce(): + """ + import excel data + :return:None + """ + taskcontroller.runtabletask() \ No newline at end of file diff --git a/cve-py/main.py b/cve-py/main.py index 966cf7e..b40a4ae 100644 --- a/cve-py/main.py +++ b/cve-py/main.py @@ -20,6 +20,8 @@ from controller import timertaskcontroller if __name__ == '__main__': + print("import excel start:") + timertaskcontroller.initExce() print("The program starts, waiting for the timing task to execute") timertaskcontroller.timertask() -- Gitee