You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.5 KiB
63 lines
1.5 KiB
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 |
|
}
|
|
|