From 3fe6b54c3cfa9a180bf1d24b35a5dca327813085 Mon Sep 17 00:00:00 2001 From: Valery Piashchynski Date: Sun, 8 Oct 2023 17:55:29 +0200 Subject: [PATCH] chore: code dedup Signed-off-by: Valery Piashchynski --- github/pool.go | 52 ++++++++++++++++---------------------------------- 1 file changed, 16 insertions(+), 36 deletions(-) diff --git a/github/pool.go b/github/pool.go index 9717be9..3116c82 100644 --- a/github/pool.go +++ b/github/pool.go @@ -69,10 +69,7 @@ func (p *processor) run() { ) if v.pluginCfg.Ref == "" { - p.mu.Lock() - p.errs = append(p.errs, fmt.Errorf("ref can't be empty")) - p.mu.Unlock() - p.wg.Done() + p.appendErr(errors.New("ref can't be empty")) continue } @@ -82,18 +79,12 @@ func (p *processor) run() { path.Join(v.pluginCfg.Folder, gomod), &github.RepositoryContentGetOptions{Ref: v.pluginCfg.Ref}, ) if err != nil { - p.mu.Lock() - p.errs = append(p.errs, err) - p.mu.Unlock() - p.wg.Done() + p.appendErr(err) continue } if resp.StatusCode != http.StatusOK { - p.mu.Lock() - p.errs = append(p.errs, fmt.Errorf("bad response status: %d", resp.StatusCode)) - p.mu.Unlock() - p.wg.Done() + p.appendErr(fmt.Errorf("bad response status: %d", resp.StatusCode)) continue } @@ -107,10 +98,7 @@ func (p *processor) run() { // module github.com/roadrunner-server/logger/v2, we split and get the second part retMod := strings.Split(line, " ") if len(retMod) < 2 || len(retMod) > 2 { - p.mu.Lock() - p.errs = append(p.errs, fmt.Errorf("failed to parse module info for the plugin: %s", line)) - p.mu.Unlock() - p.wg.Done() + p.appendErr(fmt.Errorf("failed to parse module info for the plugin: %s", line)) continue } @@ -121,10 +109,7 @@ func (p *processor) run() { out: if errs := scanner.Err(); errs != nil { - p.mu.Lock() - p.errs = append(p.errs, errs) - p.mu.Unlock() - p.wg.Done() + p.appendErr(errs) continue } @@ -143,26 +128,17 @@ func (p *processor) run() { }, }) if err != nil { - p.mu.Lock() - p.errs = append(p.errs, err) - p.mu.Unlock() - p.wg.Done() + p.appendErr(err) continue } if rsp.StatusCode != http.StatusOK { - p.mu.Lock() - p.errs = append(p.errs, fmt.Errorf("bad response status: %d", rsp.StatusCode)) - p.mu.Unlock() - p.wg.Done() + p.appendErr(fmt.Errorf("bad response status: %d", rsp.StatusCode)) continue } if len(commits) == 0 { - p.mu.Lock() - p.errs = append(p.errs, errors.New("empty commit SHA")) - p.mu.Unlock() - p.wg.Done() + p.appendErr(errors.New("no commits in the repository")) continue } @@ -170,10 +146,7 @@ func (p *processor) run() { at := commits[0].GetCommit().GetCommitter().GetDate() // [:12] because of go.mod pseudo format specs if len(commits[0].GetSHA()) < 12 { - p.mu.Lock() - p.errs = append(p.errs, fmt.Errorf("commit SHA is too short: %s", commits[0].GetSHA())) - p.mu.Unlock() - p.wg.Done() + p.appendErr(fmt.Errorf("commit SHA is too short: %s", commits[0].GetSHA())) continue } @@ -194,6 +167,13 @@ func (p *processor) run() { } } +func (p *processor) appendErr(err error) { + p.mu.Lock() + p.errs = append(p.errs, err) + p.mu.Unlock() + p.wg.Done() +} + func (p *processor) add(pjob *pcfg) { p.wg.Add(1) p.queueCh <- pjob