diff options
| author | Jeff Carr <[email protected]> | 2025-07-02 12:51:36 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-07-02 12:51:36 -0500 |
| commit | e2ca78cfb33d8bfea81232de042fa1ced61bf192 (patch) | |
| tree | fa0a412b32284b7ef2f4acfc2591a29d4d444d77 /http.go | |
| parent | 683522ee46da7ce97fa4948ef3e9ebb951a44c1e (diff) | |
send a repos PBv0.0.102
Diffstat (limited to 'http.go')
| -rw-r--r-- | http.go | 61 |
1 files changed, 61 insertions, 0 deletions
@@ -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 +} |
