// Copyright 1994-2025 WIT.COM Inc Licensed GPL 3.0 package forgepb import ( "go.wit.com/log" ) // retrieves current patches from forge func (f *Forge) GetPatches() error { url := f.forgeURL + "GetPatchsets" log.Info("GetPatchsets() url", url) body, err := f.HttpPost(url, nil) if err != nil { log.Info("httpPost() failed:", err) return err } log.Info("GetPatchets() len(body)", len(body)) var psets *Patchsets psets = new(Patchsets) err = psets.Unmarshal(body) if err != nil { log.Info("Unmarshal failed", err) return err } psets.PrintTable() f.loadUpstreamPatchsets(psets) return nil } func (f *Forge) loadUpstreamPatchsets(psets *Patchsets) { var foundnew bool all := psets.All() for all.Scan() { pset := all.Next() found := f.Patchsets.FindByUuid(pset.Uuid) author := log.Sprintf("Author: %s <%s>", found.GitAuthorName, found.GitAuthorEmail) if found == nil { log.Info("new patchset", pset.Name, pset.Uuid) pset.State = "new" foundnew = true if pset == nil { log.Warn("OH NO! pset == nil") continue } if f.Patchsets == nil { log.Warn("OH NO! f.Patchsets == nil") continue } log.Warn("appending pset", pset.Uuid, pset.State, pset.Name) f.Patchsets.Append(pset) continue } log.Info("EXAMINE PSET", pset.Name, pset.Uuid, pset.Patches.Len()) for _, patch := range pset.Patches.Patches { // log.Info("\tnew patch:", i, patch.CommitHash, patch.Namespace) if f.findPatch(patch) { // log.Info("\talready found!!!!!!!", pset.Uuid, patch.Namespace) continue } if err := f.addRandomPatch(patch); err == nil { log.Info("\tnew patch added:", patch.CommitHash, found.Name, found.Comment, author) foundnew = true } else { log.Info("\tnew patch failed:", patch.CommitHash, found.Name, found.Comment, author, err) } } pset.State = found.State if pset.State == "" { pset.State = "new" } } if foundnew { f.SavePatchsets() } }