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
|
|
}
|