diff --git a/cve-vulner-manager/controllers/cvedetail.go b/cve-vulner-manager/controllers/cvedetail.go index 554de52fd5402a270aff4c9ed15314278ac0190b..ffb5164339c432b9162a22a7f0060339738381df 100644 --- a/cve-vulner-manager/controllers/cvedetail.go +++ b/cve-vulner-manager/controllers/cvedetail.go @@ -210,6 +210,25 @@ func (c *CveDetailController) Post() { c.successSbom(data) } +// Patch get patch info with cve +func (c *CveDetailController) Patch() { + cveNum := c.GetString("cve_num") + patches, err := models.QueryCveOriginPatchInfo(cveNum) + if err != nil { + c.failed(err) + } + + list := make([]string, len(patches)) + for _, v := range patches { + list = append(list, v.FixPatch) + } + + var resp = make(map[string]interface{}) + resp["body"] = list + + c.success(resp) +} + func (c *CveDetailController) issueStatusName(i int8) string { //1:待分析;2:已正常关闭;3:已分析,待修复;4:已修复;5:已发布;6:已异常关闭" switch i { diff --git a/cve-vulner-manager/controllers/hook.go b/cve-vulner-manager/controllers/hook.go index 9f9e8017afe3b86861b5808f072e05b23eab7146..47734aa3bf03875c2e672aa227c781874a34770e 100644 --- a/cve-vulner-manager/controllers/hook.go +++ b/cve-vulner-manager/controllers/hook.go @@ -98,6 +98,7 @@ const ( reasonX = "xxxxxx" openEulerBotName = "openeuler-ci-bot" + majunBotName = "openMajun_admin" ) var comLock sync.Mutex @@ -234,7 +235,7 @@ func (c *HookEventControllers) handleIssue() { } } if issueHook.Action == "open" { - if issueHook.User.Login == openEulerBotName { + if issueHook.User.Login == openEulerBotName || issueHook.User.Login == majunBotName { return } diff --git a/cve-vulner-manager/cve-ddd/app/coldpatch.go b/cve-vulner-manager/cve-ddd/app/coldpatch.go index 2f246fa7dc6c2ece7386f1b71bef913f3e8aec8e..b0782af963b96f1e70912429b4336947adf2981e 100644 --- a/cve-vulner-manager/cve-ddd/app/coldpatch.go +++ b/cve-vulner-manager/cve-ddd/app/coldpatch.go @@ -101,7 +101,7 @@ func (c *coldPatchService) CollectCveData(cmd CmdToCollectData) { } }() - _, err := c.repo.FindCollectResult("", cmd.Date) + _, err := c.repo.FindCollectResult("", cmd.Date, time.Now().Add(-time.Minute*30)) if err != nil { if err = c.generateCollectResult(cmd.Date); err != nil { c.log.Errorf("generate collect result failed: %v", err) @@ -163,7 +163,7 @@ func (c *coldPatchService) handleAllCollectData() error { } for _, callback := range callbacks { - result, err1 := c.repo.FindCollectResult(callback.Branch, callback.Date) + result, err1 := c.repo.FindCollectResult(callback.Branch, callback.Date, time.Now().Add(-time.Minute*30)) if err1 != nil { c.log.Errorf("find calback result failed: %v", err1) continue diff --git a/cve-vulner-manager/cve-ddd/domain/repository/cve.go b/cve-vulner-manager/cve-ddd/domain/repository/cve.go index fc38100e27a74194a1e714f45de6624a9d06cd5c..7b0f5014ab701cfc389bc902377a04d91dfe92eb 100644 --- a/cve-vulner-manager/cve-ddd/domain/repository/cve.go +++ b/cve-vulner-manager/cve-ddd/domain/repository/cve.go @@ -1,6 +1,10 @@ package repository -import "cvevulner/cve-ddd/domain" +import ( + "time" + + "cvevulner/cve-ddd/domain" +) type Option struct { CveNum []string @@ -18,5 +22,5 @@ type CveRepository interface { UpdateCallback(domain.Callback) error GetProcessingCallback() ([]domain.Callback, error) SaveCollectResult(r domain.CollectResult) error - FindCollectResult(branch, callbackDate string) (string, error) + FindCollectResult(branch, callbackDate string, t time.Time) (string, error) } diff --git a/cve-vulner-manager/cve-ddd/infrastructure/repositoryimpl/callback.go b/cve-vulner-manager/cve-ddd/infrastructure/repositoryimpl/callback.go index 1aa40c3286ccd0cedc8c4dbbaafd00db889187b0..492a1fd588652f36fbaf93fa56270945b5d5795d 100644 --- a/cve-vulner-manager/cve-ddd/infrastructure/repositoryimpl/callback.go +++ b/cve-vulner-manager/cve-ddd/infrastructure/repositoryimpl/callback.go @@ -1,6 +1,8 @@ package repositoryimpl import ( + "time" + "github.com/astaxie/beego/orm" "cvevulner/cve-ddd/domain" @@ -60,7 +62,7 @@ func (impl repositoryImpl) SaveCollectResult(r domain.CollectResult) error { return err } -func (impl repositoryImpl) FindCollectResult(branch, collectDate string) (string, error) { +func (impl repositoryImpl) FindCollectResult(branch, collectDate string, t time.Time) (string, error) { callbackResult := new(models.CollectResult) query := orm.NewOrm().QueryTable(callbackResult) @@ -72,6 +74,10 @@ func (impl repositoryImpl) FindCollectResult(branch, collectDate string) (string query = query.Filter(fieldCollect, collectDate) } + if !t.IsZero() { + query = query.Filter("create_time__gt", t) + } + err := query.One(callbackResult) if err != nil { return "", err diff --git a/cve-vulner-manager/go.mod b/cve-vulner-manager/go.mod index 89d733552b341dfdb33c77b3fad9ccdb9ff6f031..76cd3752d897010b0476cc329e9e05d40c2ba96a 100644 --- a/cve-vulner-manager/go.mod +++ b/cve-vulner-manager/go.mod @@ -15,7 +15,7 @@ require ( github.com/robfig/cron/v3 v3.0.1 github.com/sirupsen/logrus v1.9.3 github.com/xuri/excelize/v2 v2.7.1 - golang.org/x/net v0.36.0 + golang.org/x/net v0.38.0 gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df gopkg.in/yaml.v2 v2.4.0 k8s.io/apimachinery v0.26.10 @@ -44,11 +44,11 @@ require ( github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect github.com/xuri/efp v0.0.0-20231025114914-d1ff6096ae53 // indirect github.com/xuri/nfp v0.0.0-20230919160717-d98342af3f05 // indirect - golang.org/x/crypto v0.35.0 // indirect + golang.org/x/crypto v0.36.0 // indirect golang.org/x/image v0.18.0 // indirect golang.org/x/oauth2 v0.12.0 // indirect - golang.org/x/sys v0.30.0 // indirect - golang.org/x/text v0.22.0 // indirect + golang.org/x/sys v0.31.0 // indirect + golang.org/x/text v0.23.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/protobuf v1.33.0 // indirect gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect diff --git a/cve-vulner-manager/go.sum b/cve-vulner-manager/go.sum index a4fbef6261209e5e5d5ecccf5706b628589e906c..db7291468f91076291b233b7eaee448dd35f1121 100644 --- a/cve-vulner-manager/go.sum +++ b/cve-vulner-manager/go.sum @@ -1091,8 +1091,8 @@ golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= -golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= -golang.org/x/crypto v0.35.0/go.mod h1:dy7dXNW32cAb/6/PRuTNsix8T+vJAqvuIy5Bli/x0YQ= +golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34= +golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1221,8 +1221,8 @@ golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= -golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA= -golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I= +golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8= +golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1368,8 +1368,8 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= -golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik= +golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1398,8 +1398,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= -golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= +golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY= +golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= diff --git a/cve-vulner-manager/routers/commentsRouter_controllers.go b/cve-vulner-manager/routers/commentsRouter_controllers.go index 4801192b5b4d4b02469d7666c79832e5a74eda7c..198f3ecb13c4fe359210f5e6a5fb7507233d0587 100644 --- a/cve-vulner-manager/routers/commentsRouter_controllers.go +++ b/cve-vulner-manager/routers/commentsRouter_controllers.go @@ -42,6 +42,15 @@ func initComment() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["cvevulner/controllers:CveDetailController"] = append(beego.GlobalControllerRouter["cvevulner/controllers:CveDetailController"], + beego.ControllerComments{ + Method: "Patch", + Router: "/patch", + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["cvevulner/controllers:CveErrorFeedBackController"] = append(beego.GlobalControllerRouter["cvevulner/controllers:CveErrorFeedBackController"], beego.ControllerComments{ Method: "Get",