From 77f270895795be10588a3cec91980eb3992de1ab Mon Sep 17 00:00:00 2001 From: yangwei999 <348134071@qq.com> Date: Thu, 7 Mar 2024 17:12:34 +0800 Subject: [PATCH 1/2] change logic of update affected branch --- cve-vulner-manager/controllers/cve.go | 84 ++++++++++++++------------- cve-vulner-manager/models/cve.go | 6 +- 2 files changed, 47 insertions(+), 43 deletions(-) diff --git a/cve-vulner-manager/controllers/cve.go b/cve-vulner-manager/controllers/cve.go index ac39ff1..7e70654 100644 --- a/cve-vulner-manager/controllers/cve.go +++ b/cve-vulner-manager/controllers/cve.go @@ -390,7 +390,6 @@ type UpdateAffectedBranchController struct { func (u *UpdateAffectedBranchController) Post() { branch := u.Ctx.Request.Form.Get("branch") - date := u.Ctx.Request.Form.Get("date") cveNum := u.Ctx.Request.Form.Get("cve_num") token := u.Ctx.Request.Header.Get("token") @@ -408,56 +407,61 @@ func (u *UpdateAffectedBranchController) Post() { u.paramError(resp) } - _, err := time.Parse("2006-01-02", date) - if err != nil { - u.paramError(resp) - } - - issues, err := models.QueryIssueToUpdateAffected(date, cveNum) + issues, err := models.QueryIssueToUpdateAffected(cveNum) if err != nil { resp["errno"] = errcode.RecodeDbErr resp["errmsg"] = errcode.RecodeText(errcode.RecodeDbErr) u.response(resp) } - o := orm.NewOrm() - for _, issue := range issues { - if strings.Contains(issue.AffectedVersion, branch) { - continue - } + go func() { + defer func() { + if e := recover(); e != nil { + updateAffectedLog(fmt.Sprintf("panic %s", e), nil) + } + }() - appendStr := fmt.Sprintf(",%s:", branch) - issue.AffectedVersion += appendStr - issue.AbiVersion += appendStr + o := orm.NewOrm() + for _, issue := range issues { + if strings.Contains(issue.AffectedVersion, branch) { + continue + } - var vuln models.VulnCenter - err = models.GetVulnCenterByCVEID(&vuln, issue.CveId) - if err != nil { - updateAffectedLog("get vuln", err) - continue - } + appendStr := fmt.Sprintf(",%s:", branch) + issue.AffectedVersion += appendStr + issue.AbiVersion += appendStr - _, err = taskhandler.UpdateIssueToGit("", "", vuln.PackName, vuln, issue) - if err != nil { - updateAffectedLog("update gitee", err) - continue - } + var vuln models.VulnCenter + err = models.GetVulnCenterByCVEID(&vuln, issue.CveId) + if err != nil { + updateAffectedLog("get vuln", err) + continue + } - err = models.UpdateIssueTemplate(&issue, "AffectedVersion", "AbiVersion") - if err != nil { - updateAffectedLog("update issue template", err) - continue - } + _, err = taskhandler.UpdateIssueToGit("", "", vuln.PackName, vuln, issue) + if err != nil { + updateAffectedLog("update gitee", err) + continue + } - o.Insert(&models.UpdatedAffectedBranch{ - IssueNum: issue.IssueNum, - CveNum: issue.CveNum, - Package: vuln.PackName, - Branch: branch, - CreateTime: time.Now().Format(common.DATE_FORMAT), - UpdateTime: time.Now().Format(common.DATE_FORMAT), - }) - } + err = models.UpdateIssueTemplate(&issue, "AffectedVersion", "AbiVersion") + if err != nil { + updateAffectedLog("update issue template", err) + continue + } + + o.Insert(&models.UpdatedAffectedBranch{ + IssueNum: issue.IssueNum, + CveNum: issue.CveNum, + Package: vuln.PackName, + Branch: branch, + CreateTime: time.Now().Format(common.DATE_FORMAT), + UpdateTime: time.Now().Format(common.DATE_FORMAT), + }) + + time.Sleep(time.Second * 1) + } + }() resp["errno"] = errcode.RecodeOk resp["errmsg"] = errcode.RecodeText(errcode.RecodeOk) diff --git a/cve-vulner-manager/models/cve.go b/cve-vulner-manager/models/cve.go index eea28a4..22c2214 100644 --- a/cve-vulner-manager/models/cve.go +++ b/cve-vulner-manager/models/cve.go @@ -1428,13 +1428,13 @@ func QueryCveIssueForSbom(pkgname, version string) (data []sbomIssue, err error) return } -func QueryIssueToUpdateAffected(date, cveNum string) (data []IssueTemplate, err error) { +func QueryIssueToUpdateAffected(cveNum string) (data []IssueTemplate, err error) { o := orm.NewOrm() var sql string if cveNum != "" { - sql = fmt.Sprintf(`select * from cve_issue_template where owner = "%s" and status < 3 and cve_num = "%s"`, "src-openeuler", cveNum) + sql = fmt.Sprintf(`select * from cve_issue_template where owner = "%s" and status in (1,2,5) and cve_num = "%s"`, "src-openeuler", cveNum) } else { - sql = fmt.Sprintf(`select * from cve_issue_template where owner = "%s" and status < 3 and create_time > "%s"`, "src-openeuler", date) + sql = fmt.Sprintf(`select * from cve_issue_template where owner = "%s" and status in (1,2,5) and`, "src-openeuler") } _, err = o.Raw(sql).QueryRows(&data) -- Gitee From 412d7c48036b22088507a32995c5d0322b308599 Mon Sep 17 00:00:00 2001 From: yangwei999 <348134071@qq.com> Date: Thu, 7 Mar 2024 18:24:51 +0800 Subject: [PATCH 2/2] ci? --- cve-vulner-manager/controllers/cve.go | 1 - 1 file changed, 1 deletion(-) diff --git a/cve-vulner-manager/controllers/cve.go b/cve-vulner-manager/controllers/cve.go index 7e70654..c672824 100644 --- a/cve-vulner-manager/controllers/cve.go +++ b/cve-vulner-manager/controllers/cve.go @@ -394,7 +394,6 @@ func (u *UpdateAffectedBranchController) Post() { token := u.Ctx.Request.Header.Get("token") resp := make(map[string]interface{}) - if token == "" || !models.CheckToken(token) { resp["errno"] = errcode.RecodeSessionErr resp["errmsg"] = errcode.RecodeText(errcode.RecodeSessionErr) -- Gitee