From 94a2ede1775603c757d7aa41333dfdd41e036fa8 Mon Sep 17 00:00:00 2001 From: zhangjianjun Date: Mon, 28 Mar 2022 16:27:07 +0800 Subject: [PATCH] 1. The daily visit of the enterprise token is limited to 10,000 revisions; 2. Only the merged pr can close the issue --- cve-vulner-manager/controllers/hook.go | 9 ------ cve-vulner-manager/models/modeldb.go | 1 + cve-vulner-manager/task/issue.go | 2 +- cve-vulner-manager/taskhandler/issue.go | 39 +++++++++++++++---------- 4 files changed, 25 insertions(+), 26 deletions(-) diff --git a/cve-vulner-manager/controllers/hook.go b/cve-vulner-manager/controllers/hook.go index 079729e..39feb59 100644 --- a/cve-vulner-manager/controllers/hook.go +++ b/cve-vulner-manager/controllers/hook.go @@ -996,15 +996,6 @@ func getRepoIssueAllPR(affectBranch []string, token, owner, repo string, isTemp } if v["state"].(string) == "merged" && v["mergeable"].(bool) { if v["base"].(map[string]interface{})["label"].(string) == brh { - //if v["base"].(map[string]interface{})["repo"].(map[string]interface{})["path"] == repo { - // if v["base"].(map[string]interface{})["repo"].(map[string]interface{})["namespace"].(map[string]interface{})["path"] == owner { - // pr.Id = int64(v["id"].(float64)) - // pr.Number = isTemp.IssueNum - // pr.CveNumber = isTemp.CveNum - // pr.Repo = repo - // prList = append(prList, pr) - // } - //} pr.Id = int64(v["id"].(float64)) pr.Number = isTemp.IssueNum pr.CveNumber = isTemp.CveNum diff --git a/cve-vulner-manager/models/modeldb.go b/cve-vulner-manager/models/modeldb.go index 98e81c6..154a222 100644 --- a/cve-vulner-manager/models/modeldb.go +++ b/cve-vulner-manager/models/modeldb.go @@ -911,6 +911,7 @@ type MindSporeYaml struct { Status int8 `orm:"default(1);column(status)" description:"1:正常;2:已删除"` CpeName string `orm:"type(text);column(cpe_name)" description:"cpe的名称"` MarkBit int8 `orm:"default(1);column(mark_bit)" description:"1:正常;2:已删除"` + Owner string `orm:"size(512);column(owner);index" description:""` CreateTime string `orm:"size(32);column(create_time)"` UpdateTime string `orm:"size(32);column(update_time);null"` DeleteTime string `orm:"size(32);column(delete_time);null"` diff --git a/cve-vulner-manager/task/issue.go b/cve-vulner-manager/task/issue.go index 67827fb..b2335b7 100644 --- a/cve-vulner-manager/task/issue.go +++ b/cve-vulner-manager/task/issue.go @@ -252,7 +252,7 @@ func SetIssueProcParams() error { continue } authToken := tokenMap[vl.OrganizationID] - taskhandler.GetEntIssueDetail(authToken.EnId, its.IssueId, authToken.AccessToken, &its) + taskhandler.GetEntIssueDetail(vl, &its) if len(its.PlanStarted) > 1 && len(its.Deadline) > 1 { its.UpdateTime = time.Now() models.UpdateIssueTemplate(&its, "PlanStarted", "Deadline", "UpdateTime") diff --git a/cve-vulner-manager/taskhandler/issue.go b/cve-vulner-manager/taskhandler/issue.go index 2ad223e..28231d1 100644 --- a/cve-vulner-manager/taskhandler/issue.go +++ b/cve-vulner-manager/taskhandler/issue.go @@ -219,25 +219,32 @@ func GiteeConstructor(res map[string]interface{}, giteeToken *GiteeTokenInfo) { } } -func GetEntIssueDetail(enterpriseId, issueId int64, token string, its *models.IssueTemplate) { - url := fmt.Sprintf("https://api.gitee.com/enterprises/%v/issues/%v?access_token=%v", - enterpriseId, issueId, token) - issueDetail, err := util.HTTPGetDetail(url) - if err == nil && issueDetail != nil { - if _, ok := issueDetail["id"]; !ok { - logs.Error("issueDetail, err: ", ok, "url: ", url) - return +func GetEntIssueDetail(cve models.VulnCenter, its *models.IssueTemplate) { + owner, accessToken := common.GetOwnerAndToken(cve.OrganizationID) + if cve.OrganizationID == 2 { + if len(cve.PackName) < 2 { + cve.PackName = beego.AppConfig.String("opengauss::gauss_issue_path") } - if planAt, ok := issueDetail["plan_started_at"]; !ok || planAt == nil { - logs.Error("plan_started_at is empty, err: ", ok, "url: ", url) - return + } + issueErr, issueBody := GetGiteeIssue(accessToken, owner, cve.PackName, its.IssueNum) + if issueErr != nil { + logs.Error("issue is empty, err: ", issueErr, "IssueNum: ", its.IssueNum) + return + } else { + if issueBody != nil && issueBody["plan_started_at"] != nil { + if planAt, ok := issueBody["plan_started_at"]; !ok || planAt == nil { + logs.Error("plan_started_at is empty, err: ", ok, "IssueNum: ", its.IssueNum) + return + } + its.PlanStarted = issueBody["plan_started_at"].(string) } - its.PlanStarted = issueDetail["plan_started_at"].(string) - if deadLine, ok := issueDetail["deadline"]; !ok || deadLine == nil { - logs.Error("deadLine is empty, err: ", ok, "url: ", url) - return + if issueBody != nil && issueBody["deadline"] != nil { + if deadLine, ok := issueBody["deadline"]; !ok || deadLine == nil { + logs.Error("deadLine is empty, err: ", ok, "IssueNum: ", its.IssueNum) + return + } + its.Deadline = issueBody["deadline"].(string) } - its.Deadline = issueDetail["deadline"].(string) } } -- Gitee