diff --git a/conf/app.conf b/conf/app.conf index 6269b3207880f71e8c932c0445511e803cc2d134..fcc232340de9a08b0c6710c0f7ad3443a4f75c91 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -23,7 +23,7 @@ labelUnFix = "CVE/UNFIX" [mysql] -dbhost = 192.168.1.95 +dbhost = "${DB_URI||***}" dbport = 3306 dbuser = "${DB_USER||cve}" dbpwd = "${DB_PWD||***}" @@ -42,7 +42,7 @@ maxsize=304800 [crontab] ymalflag = 2 -getymal = 00 00 02 * * * +getymal = 00 00 01 * * * cveflag = 2 getcve = 00 00 03 * * * oricveflag = 2 @@ -52,13 +52,13 @@ getissue = 00 00 05 * * * issueflag = 2 createissue = * * 05 * * * test = 0/10 * * * * * -gittokenflag = 1 +gittokenflag = 2 issueoath = * * */20 * * * genexcelflag = 7 genexcel = 00 00 04 * * * days = -30 prcnum = 100 -printlogflag = 1 +printlogflag = 2 printlog = 0 */10 * * * * diff --git a/conf/product_app.conf b/conf/product_app.conf index 24ed4d23ea8dd7fbcebd5a2b8364a22979ddba41..c93cbc029b6dd7ee250d4d1226f9da509f1ee69d 100644 --- a/conf/product_app.conf +++ b/conf/product_app.conf @@ -23,7 +23,8 @@ labelUnFix = "CVE/UNFIX" [mysql] -dbhost = 172.16.1.73 +#dbhost = 172.16.1.73 +dbhost = "${DB_URI||***}" dbport = 3306 dbuser = "${DB_USER||cve}" dbpwd = "${DB_PWD||***}" @@ -42,7 +43,7 @@ maxsize=304800 [crontab] ymalflag = 2 -getymal = 00 00 02 * * * +getymal = 00 00 01 * * * cveflag = 2 getcve = 00 00 03 * * * oricveflag = 2 @@ -52,13 +53,13 @@ getissue = 00 00 05 * * * issueflag = 2 createissue = * * 05 * * * test = 0/10 * * * * * -gittokenflag = 1 +gittokenflag = 2 issueoath = * * */20 * * * -genexcelflag = 7 +genexcelflag = 2 genexcel = 00 00 04 * * * days = -30 prcnum = 100 -printlogflag = 1 +printlogflag = 2 printlog = 0 */10 * * * * diff --git a/doc/image/Framework.png b/doc/image/Framework.png index 28a39c7d5d7ee691e8b442b8a0ffeb8e55b5729f..6b40d66c3d1cfcf9cabde6cf2dadda3142212018 100644 Binary files a/doc/image/Framework.png and b/doc/image/Framework.png differ diff --git a/doc/sql/db_struct.sql b/doc/sql/db_struct.sql index f4984fdf62a7f2e3b42e7099ebe1290d295f1ac9..e1643b12d5670213cb05bf1d02a35e8cf37a5fe6 100644 --- a/doc/sql/db_struct.sql +++ b/doc/sql/db_struct.sql @@ -84,7 +84,7 @@ CREATE TABLE `cve_git_open_euler` ( KEY `cve_git_open_euler_package_id` (`package_id`), KEY `cve_git_open_euler_version` (`version`), KEY `cve_git_open_euler_table_id` (`table_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=4748 DEFAULT CHARSET=utf8; /*Table structure for table `cve_git_open_euler_table_relate` */ @@ -98,7 +98,7 @@ CREATE TABLE `cve_git_open_euler_table_relate` ( PRIMARY KEY (`relate_id`), UNIQUE KEY `cve_git_open_euler_table_gitid_tab_un` (`git_id`,`table_name`), KEY `cve_git_open_euler_table_relate_git_id` (`git_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=5003 DEFAULT CHARSET=utf8; /*Table structure for table `cve_git_package_info` */ @@ -129,7 +129,7 @@ CREATE TABLE `cve_git_package_info` ( KEY `cve_git_package_info_git_id` (`git_id`), KEY `cve_git_package_info_git_ids` (`git_ids`), KEY `cve_git_package_info_version` (`version`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=4748 DEFAULT CHARSET=utf8; /*Table structure for table `cve_git_package_table` */ @@ -165,7 +165,7 @@ CREATE TABLE `cve_git_sub_pack` ( PRIMARY KEY (`sub_id`), KEY `cve_git_sub_pack_detail_id` (`detail_id`), KEY `cve_git_sub_pack_ids` (`ids`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=14236 DEFAULT CHARSET=utf8; /*Table structure for table `cve_git_sub_pack_provides` */ @@ -180,7 +180,7 @@ CREATE TABLE `cve_git_sub_pack_provides` ( PRIMARY KEY (`provide_id`), KEY `cve_git_sub_pack_provides_sub_id` (`sub_id`), KEY `cve_git_sub_pack_provides_ids` (`ids`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=80902 DEFAULT CHARSET=utf8; /*Table structure for table `cve_git_sub_pack_require` */ @@ -195,7 +195,7 @@ CREATE TABLE `cve_git_sub_pack_require` ( PRIMARY KEY (`require_id`), KEY `cve_git_sub_pack_require_sub_id` (`sub_id`), KEY `cve_git_sub_pack_require_ids` (`ids`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=106624 DEFAULT CHARSET=utf8; /*Table structure for table `cve_git_sub_pack_requiredby` */ @@ -207,7 +207,7 @@ CREATE TABLE `cve_git_sub_pack_requiredby` ( `requiredb` varchar(256) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `cve_git_sub_pack_requiredby_provide_id` (`provide_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=121916 DEFAULT CHARSET=utf8; /*Table structure for table `cve_gite_origin_issue` */ @@ -392,7 +392,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 AUTO_INCREMENT=543 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=546 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_excel` */ @@ -427,7 +427,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=149 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC; +) ENGINE=InnoDB AUTO_INCREMENT=149 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; /*Table structure for table `cve_origin_upstream` */ @@ -460,7 +460,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=40 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_config` */ @@ -472,7 +472,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=81 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_config_node` */ @@ -484,7 +484,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=101 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=105 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_config_node_cpe` */ @@ -498,7 +498,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=2633 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=2818 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_desc` */ @@ -511,7 +511,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=81 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_event` */ @@ -526,7 +526,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=81 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_fix_suggest` */ @@ -538,7 +538,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=81 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_fix_suggest_ref` */ @@ -576,7 +576,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=81 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_impact_score` */ @@ -592,7 +592,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=161 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=167 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_impact_score_v2` */ @@ -621,7 +621,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=81 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_impact_score_v3` */ @@ -647,7 +647,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=81 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_poc` */ @@ -664,7 +664,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=81 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_reference` */ @@ -679,7 +679,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=1377 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1405 DEFAULT CHARSET=utf8; /*Table structure for table `cve_origin_upstream_vul_type` */ @@ -693,7 +693,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=81 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=utf8; /*Table structure for table `cve_other_user` */ @@ -781,7 +781,7 @@ CREATE TABLE `cve_score` ( PRIMARY KEY (`id`), UNIQUE KEY `openeuler_id` (`openeuler_id`), KEY `cve_score_cve_id` (`cve_id`) -) ENGINE=InnoDB AUTO_INCREMENT=543 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=546 DEFAULT CHARSET=utf8; /*Table structure for table `cve_score_record` */ @@ -796,7 +796,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 AUTO_INCREMENT=543 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=546 DEFAULT CHARSET=utf8; /*Table structure for table `cve_security_notice` */ @@ -822,7 +822,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 AUTO_INCREMENT=543 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=547 DEFAULT CHARSET=utf8; /*Table structure for table `cve_security_reviewer` */ @@ -856,9 +856,8 @@ CREATE TABLE `cve_vuln_center` ( `data_source` tinyint NOT NULL DEFAULT '1', `cve_detail_url` varchar(1024) NOT NULL DEFAULT '', PRIMARY KEY (`cve_id`), - UNIQUE KEY `cve_vuln_c_n_pk_v_un` (`cve_num`,`cve_version`,`pack_name`), KEY `cve_vuln_center_cve_num` (`cve_num`) -) ENGINE=InnoDB AUTO_INCREMENT=600 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=603 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 deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/main.go b/main.go index 6a1e7d117cbbce97a91c546e98288ff270db5955..29a77484f10ece2e9367dc26cef61ac1333361d4 100644 --- a/main.go +++ b/main.go @@ -13,17 +13,19 @@ func init() { common.InitGlobal() // Initialization log common.LogInit() - // Initialize the database - //models.Initdb() - // Initialize a scheduled task - task.InitTask() + } func main() { + // Initialize a scheduled task + ok := task.InitTask() + if !ok { + println("error: Timing task initialization failed, the program ends") + return + } if beego.BConfig.RunMode == "dev" { beego.BConfig.WebConfig.DirectoryIndex = true beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger" } beego.Run() - } diff --git a/task/inittask.go b/task/inittask.go index 8269c6507df0d68898fb83d874bd535ae9947436..b972d52620caf87ceaf4718792473728f23ee5e3 100644 --- a/task/inittask.go +++ b/task/inittask.go @@ -13,6 +13,7 @@ func CheckOriCveTask(oriCveCheck string, ch *chan bool) { err := CheckTask.Run() if err != nil { logs.Error("创建校验原始cve数据失败 ,err:", err) + *ch <- false return } toolbox.AddTask("CheckOriCve", CheckTask) @@ -28,6 +29,7 @@ func InitYamlTask(getYaml string, ch *chan bool) { err := YamlTask.Run() if err != nil { logs.Error("创建获取yaml数据源任务失败 ,err:", err) + *ch <- false return } toolbox.AddTask("GetYamlData", YamlTask) @@ -43,6 +45,7 @@ func InitCveTask(getCve string, ch *chan bool) { err := CveTask.Run() if err != nil { logs.Error("创建Cve任务失败 ,err:", err) + *ch <- false return } toolbox.AddTask("ParamsCveOriginData", CveTask) @@ -51,13 +54,14 @@ func InitCveTask(getCve string, ch *chan bool) { *ch <- true } -//InitIssueTask Get the created issue data source +// InitIssueTask Get the created issue data source func InitIssueTask(getIssue string, ch *chan bool) { logs.Info("获取已经创建的issue数据源 task start") issueTask := toolbox.NewTask("GetIssueData", getIssue, GetIssueData) err := issueTask.Run() if err != nil { logs.Error("获取已经创建的issue数据源任务失败 ,err:", err) + *ch <- false return } toolbox.AddTask("GetIssueData", issueTask) @@ -66,13 +70,14 @@ func InitIssueTask(getIssue string, ch *chan bool) { *ch <- true } -//InitIssueToken Execute the token acquisition task to start +// InitIssueToken Execute the token acquisition task to start func InitIssueToken(issueOath string, ch *chan bool) { logs.Info("执行获取token任务开始") TokenTask := toolbox.NewTask("GetGiteeToken", issueOath, GetGiteeToken) err := TokenTask.Run() if err != nil { logs.Error("create Issue token task failed ,err:", err) + *ch <- false return } toolbox.AddTask("GetGiteeToken", TokenTask) @@ -81,13 +86,14 @@ func InitIssueToken(issueOath string, ch *chan bool) { *ch <- true } -//CreatTask Execute the create issue task to start +// CreatTask Execute the create issue task to start func CreatTask(createIssue string, ch *chan bool) { logs.Info("执行创建issue任务开始") cIssueTask := toolbox.NewTask("CreateIssue", createIssue, CreateIssue) err := cIssueTask.Run() if err != nil { logs.Error("create Issue task failed ,err:", err) + *ch <- false return } toolbox.AddTask("CreateIssue", cIssueTask) @@ -103,6 +109,7 @@ func GenSAExcelTask(genExcel string, ch *chan bool) { err := genExcelTask.Run() if err != nil { logs.Error("create genExcelTask failed ,err:", err) + *ch <- false return } toolbox.AddTask("GenExcelData", genExcelTask) @@ -118,6 +125,7 @@ func PrintLogTask(printLog string, ch *chan bool) { err := printLogTask.Run() if err != nil { logs.Error("创建日志任务失败 ,err:", err) + *ch <- false return } toolbox.AddTask("ProcLogData", printLogTask) @@ -127,11 +135,11 @@ func PrintLogTask(printLog string, ch *chan bool) { } //InitTask Timing task initialization -func InitTask() { +func InitTask() bool { BConfig, err := config.NewConfig("ini", "conf/app.conf") if err != nil { logs.Error("config init error: file:conf/app.conf: ", err) - return + return false } // Get the original yaml data ymalflag, errxs := BConfig.Int("crontab::ymalflag") @@ -139,7 +147,10 @@ func InitTask() { getymal := BConfig.String("crontab::getymal") var yamch = make(chan bool) go InitYamlTask(getymal, &yamch) - <-yamch + ok := <-yamch + if !ok { + return false + } close(yamch) } // Verify the original cve data @@ -148,7 +159,10 @@ func InitTask() { oricvecheck := BConfig.String("crontab::oricvecheck") var checkch = make(chan bool) go CheckOriCveTask(oricvecheck, &checkch) - <-checkch + ok := <-checkch + if !ok { + return false + } close(checkch) } // Refresh gittoken regularly @@ -162,7 +176,10 @@ func InitTask() { if gitToken == "xxx" { var ch = make(chan bool) go InitIssueToken(issueoath, &ch) - <-ch + ok := <-ch + if !ok { + return false + } close(ch) } } @@ -172,7 +189,10 @@ func InitTask() { getissue := BConfig.String("crontab::getissue") var issuech = make(chan bool) go InitIssueTask(getissue, &issuech) - <-issuech + ok := <-issuech + if !ok { + return false + } close(issuech) } // Generate cve vulnerability library @@ -181,7 +201,10 @@ func InitTask() { getcve := BConfig.String("crontab::getcve") var cvech = make(chan bool) go InitCveTask(getcve, &cvech) - <-cvech + ok := <-cvech + if !ok { + return false + } close(cvech) } // Regularly output logs to the console @@ -190,7 +213,10 @@ func InitTask() { printLog := BConfig.String("crontab::printlog") var logch = make(chan bool) go PrintLogTask(printLog, &logch) - <-logch + ok := <-logch + if !ok { + return false + } close(logch) } // Add issue @@ -199,7 +225,10 @@ func InitTask() { var ch = make(chan bool) createIssue := BConfig.String("crontab::createissue") go CreatTask(createIssue, &ch) - <-ch + ok := <-ch + if !ok { + return false + } close(ch) } else { logs.Info("no task") @@ -210,9 +239,13 @@ func InitTask() { var ch = make(chan bool) genExcel := BConfig.String("crontab::genexcel") go GenSAExcelTask(genExcel, &ch) - <-ch + ok := <-ch + if !ok { + return false + } close(ch) } else { logs.Info("no task") } + return true } diff --git a/task/issuetask.go b/task/issuetask.go index 02a9ea7c30b6516354d7afe0124114b0d2e474c5..62e5ff5adfbc78efe1ae318656bc75022a8ca362 100644 --- a/task/issuetask.go +++ b/task/issuetask.go @@ -204,9 +204,21 @@ func ProcIssue(issueValue models.VulnCenter, accessToken, owner, path string) er logs.Error("获取Score 失败, err: ", err, "cveId: ", issueValue.CveId) return err } - branchs := "" + branchList := []string{} errBrands := errors.New("") // Get branch information + branchList, errBrands = taskhandler.GetBranchesInfo(accessToken, owner, path) + if branchList == nil || len(branchList) == 0 { + logs.Error("获取分支信息失败,CveNum: ", issueValue.CveNum, "path: ", path, ", err: ", errBrands) + } + if len(branchList) > 0 { + brandArry = []string{} + for _, branch := range branchList { + brandArry = append(brandArry, branch) + } + + } + branchs := "" if len(brandArry) > 0 { for _, b := range brandArry { if b != "" && len(b) > 1 { @@ -217,11 +229,7 @@ func ProcIssue(issueValue models.VulnCenter, accessToken, owner, path string) er branchs = branchs[:len(branchs)-1] } } else { - branchs, errBrands = taskhandler.GetBranchesInfo(accessToken, owner, path) - if branchs == "" { - logs.Error("获取分支信息失败,CveNum: ", issueValue.CveNum, "path: ", path, ", err: ", errBrands) - } - brandArry = append(brandArry, branchs) + } resp, err := taskhandler.CreateIssueToGit(accessToken, owner, path, assignee, issueValue, sc, brandArry) if err != nil { diff --git a/taskhandler/assist.go b/taskhandler/assist.go index dc929874b77584b9c1071cd01d240f37ba0d63b3..92bc7a5e303042dd9893e6d48743edeb70c59d73 100644 --- a/taskhandler/assist.go +++ b/taskhandler/assist.go @@ -76,13 +76,13 @@ func GetCollaboratorInfo(accessToken string, owner string, path string) (string, return "", errors.New("参数错误") } -func GetBranchesInfo(accessToken string, owner string, path string) (string, error) { - branchName := "" +func GetBranchesInfo(accessToken string, owner string, path string) ([]string, error) { + branchNameList := []string{} if accessToken != "" && owner != "" && path != "" { url := "https://gitee.com/api/v5/repos/" + owner + "/" + path + "/branches?access_token=" + accessToken branch, err := util.HTTPGet(url) if err == nil && branch != nil { - for _, value := range (branch) { + for _, value := range branch { if _, ok := value["name"]; !ok { logs.Error("branches, err: ", ok, "url: ", url) continue @@ -90,16 +90,15 @@ func GetBranchesInfo(accessToken string, owner string, path string) (string, err mapValue := value["name"].(string) if mapValue != "" && len(mapValue) > 3 { subStr := mapValue[len(mapValue)-3:] - if strings.ToUpper(subStr) == "LTS" { - branchName = mapValue - break + if strings.ToUpper(subStr) == "LTS" || mapValue == "openEuler-20.09"{ + branchNameList = append(branchNameList, mapValue) } } } } else { logs.Error("获取分支名称失败, err: ", err, "owner: ", owner, "path: ", path) - return branchName, err + return branchNameList, err } } - return branchName, nil + return branchNameList, nil } diff --git a/taskhandler/cve.go b/taskhandler/cve.go index 18241562b054893d9aa4a68b4ecdc1de334fdc99..3dc8fa81c995799f69837e655021f0a149920421 100644 --- a/taskhandler/cve.go +++ b/taskhandler/cve.go @@ -164,9 +164,9 @@ func UpdateExcelCveGroups(cveData models.OriginExcel, cveRef string, openeulerNu sec.Summary = cveData.PackName + " security update" sec.ReferenceLink = cveRef + cveData.CveNum if goe.Decription != "" && len(goe.Decription) > 0 { - sec.Description = goe.Decription + "\n\n" + "Security Fix(es):" + "\n\n" + cveData.CveDesc + sec.Description = goe.Decription + "\n\n" + "Security Fix(es):" + "\n\n" + cveData.CveDesc + "(" + CveRes.CveNum + ")" } else { - sec.Description = "Security Fix(es):" + "\n\n" + cveData.CveDesc + sec.Description = "Security Fix(es):" + "\n\n" + cveData.CveDesc + "(" + CveRes.CveNum + ")" } secid, secerr := models.CreateSecurityNotice(&sec) if secerr != nil { @@ -218,9 +218,9 @@ func InsertCveExcelGroups(cveData models.OriginExcel, cveRef string, openeulerNu sec.Summary = cveData.PackName + " security update" sec.ReferenceLink = cveRef + cveData.CveNum if goe.Decription != "" && len(goe.Decription) > 0 { - sec.Description = goe.Decription + "\n\n" + "Security Fix(es):" + "\n\n" + cveData.CveDesc + sec.Description = goe.Decription + "\n\n" + "Security Fix(es):" + "\n\n" + cveData.CveDesc + "(" + vul.CveNum + ")" } else { - sec.Description = "Security Fix(es):" + "\n\n" + cveData.CveDesc + sec.Description = "Security Fix(es):" + "\n\n" + cveData.CveDesc + "(" + vul.CveNum + ")" } var sc models.Score sc.CveNum = cveData.CveNum @@ -495,9 +495,9 @@ func UpdateCveGroups(cveData models.OriginUpstream, cveRef string, openeulerNum sec.Summary = pkList[0] + " security update" sec.ReferenceLink = cveRef + cveData.CveNum if goe.Decription != "" && len(goe.Decription) > 0 { - sec.Description = goe.Decription + "\n\n" + "Security Fix(es):" + "\n\n" + cveDesc.EnDescription + sec.Description = goe.Decription + "\n\n" + "Security Fix(es):" + "\n\n" + cveDesc.EnDescription + "(" + CveRes.CveNum + ")" } else { - sec.Description = "Security Fix(es):" + "\n\n" + cveDesc.EnDescription + sec.Description = "Security Fix(es):" + "\n\n" + cveDesc.EnDescription + "(" + CveRes.CveNum + ")" } secid, secerr := models.CreateSecurityNotice(&sec) if secerr != nil { @@ -551,9 +551,9 @@ func InsertCveGroups(cveData models.OriginUpstream, cveRef string, openeulerNum sec.Summary = pkList[0] + " security update" sec.ReferenceLink = cveRef + cveData.CveNum if goe.Decription != "" && len(goe.Decription) > 0 { - sec.Description = goe.Decription + "\n\n" + "Security Fix(es):" + "\n\n" + cveDesc.EnDescription + sec.Description = goe.Decription + "\n\n" + "Security Fix(es):" + "\n\n" + cveDesc.EnDescription + "(" + vul.CveNum + ")" } else { - sec.Description = "Security Fix(es):" + "\n\n" + cveDesc.EnDescription + sec.Description = "Security Fix(es):" + "\n\n" + cveDesc.EnDescription + "(" + vul.CveNum + ")" } var sc models.Score sc.CveNum = cveData.CveNum @@ -913,7 +913,7 @@ func InsertIssueCveGroups(cveData models.GiteOriginIssue, lop models.Loophole, c sec.Status = 0 sec.AffectStatus = "UnFixed" sec.Summary = lop.Components + " security update" - sec.Description = goe.Decription + "\n\n" + "Security Fix(es):" + "\n\n" + RemoveSubstring(lop.BriefIntroduction, "

") + sec.Description = goe.Decription + "\n\n" + "Security Fix(es):" + "\n\n" + RemoveSubstring(lop.BriefIntroduction + "(" + vul.CveNum + ")", "

") sec.ReferenceLink = cveRef + cveData.CveNumber sec.Introduction = "An update for " + lop.Components + " is now available for " + lop.InfProduct sec.Theme = sec.Introduction + ";\n\n" + "openEuler Security has rated this" + @@ -1060,7 +1060,7 @@ func UpdateIssueCveGroups(cveData models.GiteOriginIssue, lop models.Loophole, c sec.Status = 0 sec.AffectStatus = "Fixed" sec.Summary = lop.Components + " security update" - sec.Description = goe.Decription + "\n\n" + "Security Fix(es):" + "\n\n" + RemoveSubstring(lop.BriefIntroduction, "

") + sec.Description = goe.Decription + "\n\n" + "Security Fix(es):" + "\n\n" + RemoveSubstring(lop.BriefIntroduction + "(" + vul.CveNum + ")", "

") sec.ReferenceLink = cveRef + cveData.CveNumber sec.Introduction = "An update for " + lop.Components + " is now available for " + lop.InfProduct sec.Theme = sec.Introduction + ";\n\n" + "openEuler Security has rated this" +