From 667257595d689469359a421bb89998520a435760 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Tue, 28 Jan 2025 22:48:25 -0600 Subject: add submit patchset --- patchset.Get.go | 2 +- patchset.Make.go | 42 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/patchset.Get.go b/patchset.Get.go index 0ffccb1..963618c 100644 --- a/patchset.Get.go +++ b/patchset.Get.go @@ -15,7 +15,7 @@ import ( var forgeURL string = "https://go.wit.com/" func (f *Forge) GetPatchesets() (*Patchsets, error) { - url := forgeURL + "/GetPatchsets" + url := forgeURL + "GetPatchsets" log.Info("GetPatchsets() url", url) body, err := f.HttpPost(url, nil) if err != nil { diff --git a/patchset.Make.go b/patchset.Make.go index 1a7cec6..1a2db2d 100644 --- a/patchset.Make.go +++ b/patchset.Make.go @@ -11,8 +11,22 @@ import ( "go.wit.com/log" ) -func (f *Forge) MakeDevelPatchSet() (*Patchset, error) { +// creates a patchset +// works from the user branches against the devel branches +func (f *Forge) SubmitDevelPatchSet(name string) (*Patchset, error) { pset := new(Patchset) + pset.Name = name + if os.Getenv("GIT_AUTHOR_NAME") == "" { + return nil, fmt.Errorf("GIT_AUTHOR_NAME not set") + } else { + pset.GitAuthorName = os.Getenv("GIT_AUTHOR_NAME") + } + if os.Getenv("GIT_AUTHOR_EMAIL") == "" { + return nil, fmt.Errorf("GIT_AUTHOR_EMAIL not set") + } else { + pset.GitAuthorEmail = os.Getenv("GIT_AUTHOR_EMAIL") + } + dir, err := os.MkdirTemp("", "forge") if err != nil { return nil, err @@ -39,6 +53,10 @@ func (f *Forge) MakeDevelPatchSet() (*Patchset, error) { return nil, err } } + + if err := f.submitPatchset(pset); err != nil { + return nil, err + } return pset, nil } @@ -191,3 +209,25 @@ func onlyWalkDirs(pDir string) error { }) return baderr } + +func (f *Forge) submitPatchset(pset *Patchset) error { + var url string + url = forgeURL + "patchset" + msg, err := pset.Marshal() + if err != nil { + log.Info("proto.Marshal() failed:", err) + return err + } + log.Info("proto.Marshal() msg len", len(msg)) + body, err := f.HttpPost(url, msg) + if err != nil { + log.Info("httpPost() failed:", err) + return err + } + + test := strings.TrimSpace(string(body)) + for _, line := range strings.Split(test, "\n") { + log.Info("got back:", line) + } + return nil +} -- cgit v1.2.3