64 lines
1.5 KiB
Go
64 lines
1.5 KiB
Go
|
package service
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"runtime/debug"
|
||
|
"strings"
|
||
|
|
||
|
"go-common/app/tool/saga/model"
|
||
|
"go-common/library/log"
|
||
|
|
||
|
"github.com/pkg/errors"
|
||
|
)
|
||
|
|
||
|
// HandleBuildContributors ...
|
||
|
func (s *Service) HandleBuildContributors(c context.Context, repo *model.RepoInfo) (err error) {
|
||
|
if strings.TrimSpace(repo.Group) == "" {
|
||
|
err = errors.Errorf("repo Group is not valid")
|
||
|
return
|
||
|
}
|
||
|
if strings.TrimSpace(repo.Name) == "" {
|
||
|
err = errors.Errorf("repo Name is not valid")
|
||
|
return
|
||
|
}
|
||
|
if strings.TrimSpace(repo.Branch) == "" {
|
||
|
err = errors.Errorf("repo Branch is not valid")
|
||
|
return
|
||
|
}
|
||
|
go func() {
|
||
|
defer func() {
|
||
|
if x := recover(); x != nil {
|
||
|
log.Error("BuildContributor: %+v %s", x, debug.Stack())
|
||
|
}
|
||
|
}()
|
||
|
if err = s.cmd.BuildContributor(repo); err != nil {
|
||
|
log.Error("BuildContributor %+v", err)
|
||
|
}
|
||
|
}()
|
||
|
return
|
||
|
}
|
||
|
|
||
|
// BuildContributors ...
|
||
|
func (s *Service) BuildContributors(repos []*model.Repo) (err error) {
|
||
|
var (
|
||
|
repo *model.Repo
|
||
|
branch string
|
||
|
)
|
||
|
|
||
|
log.Info("BuildContributors start ...")
|
||
|
for _, repo = range repos {
|
||
|
for _, branch = range repo.Config.AuthBranches {
|
||
|
repoInfo := &model.RepoInfo{
|
||
|
Group: repo.Config.Group,
|
||
|
Name: repo.Config.Name,
|
||
|
Branch: branch,
|
||
|
}
|
||
|
log.Info("BuildContributors project [%s], group [%s], Name [%s], branch [%s]", repo.Config.URL, repo.Config.Group, repo.Config.Name, branch)
|
||
|
if err = s.HandleBuildContributors(context.TODO(), repoInfo); err != nil {
|
||
|
log.Error("BuildContributors err (%+v)", err)
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
return
|
||
|
}
|