From e2ca78cfb33d8bfea81232de042fa1ced61bf192 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Wed, 2 Jul 2025 12:51:36 -0500 Subject: [PATCH] send a repos PB --- http.go | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 http.go diff --git a/http.go b/http.go new file mode 100644 index 0000000..59a955c --- /dev/null +++ b/http.go @@ -0,0 +1,61 @@ +// Copyright 1994-2025 WIT.COM Inc Licensed GPL 3.0 + +package gitpb + +import ( + "bytes" + "io/ioutil" + "net/http" + "os/user" + + "go.wit.com/log" +) + +func httpPost(url string, data []byte) ([]byte, error) { + var err error + var req *http.Request + + req, err = http.NewRequest(http.MethodPost, url, bytes.NewBuffer(data)) + // log.Info("httpPost() with len", len(data), "url", url) + + usr, _ := user.Current() + req.Header.Set("author", usr.Username) + req.Header.Set("hostname", "fixme:hostname") + + client := &http.Client{} + resp, err := client.Do(req) + if err != nil { + log.Error(err) + return []byte("client.Do(req) error"), err + } + defer resp.Body.Close() + // log.Info("httpPost() with len", len(data)) + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + log.Error(err) + return body, err + } + + return body, nil +} + +func (r *Repos) SubmitReposPB(url string) (*Repos, error) { + msg, err := r.Marshal() + if err != nil { + log.Info("Marshal() failed:", err) + return nil, err + } + log.Info("proto.Marshal() msg len", len(msg)) + body, err := httpPost(url, msg) + if err != nil { + log.Info("httpPost() failed:", err) + return nil, err + } + if err := r.Unmarshal(body); err != nil { + log.Info("Unmarshal() failed:", err) + return nil, err + } + + return r, nil +}