pr: do not stop processing if failed on some pacakge during check

This commit is contained in:
2025-11-19 16:36:48 +01:00
parent 4bd259a2a0
commit e11993c81f
2 changed files with 13 additions and 8 deletions

View File

@@ -7,7 +7,7 @@ import "src.opensuse.org/autogits/common"
type StateChecker interface {
VerifyProjectState(configs *common.AutogitConfig) ([]*PRToProcess, error)
CheckRepos() error
CheckRepos()
ConsistencyCheckProcess() error
}

View File

@@ -1,7 +1,6 @@
package main
import (
"errors"
"fmt"
"math/rand"
"path"
@@ -43,6 +42,15 @@ func pullRequestToEventState(state models.StateType) string {
}
func (s *DefaultStateChecker) ProcessPR(pr *models.PullRequest, config *common.AutogitConfig) error {
defer func() {
if r := recover(); r != nil {
common.LogError("panic caught in ProcessPR", common.PRtoString(pr))
if err, ok := r.(error); !ok {
common.LogError(err)
}
common.LogError(string(debug.Stack()))
}
}()
return ProcesPullRequest(pr, common.AutogitConfigs{config})
}
@@ -151,7 +159,7 @@ func (s *DefaultStateChecker) VerifyProjectState(config *common.AutogitConfig) (
return PrjGitSubmoduleCheck(config, git, prjGitRepo, submodules)
}
func (s *DefaultStateChecker) CheckRepos() error {
func (s *DefaultStateChecker) CheckRepos() {
defer func() {
if r := recover(); r != nil {
common.LogError("panic caught")
@@ -161,7 +169,6 @@ func (s *DefaultStateChecker) CheckRepos() error {
common.LogError(string(debug.Stack()))
}
}()
errorList := make([]error, 0, 10)
for org, configs := range s.processor.configuredRepos {
for _, config := range configs {
@@ -175,12 +182,12 @@ func (s *DefaultStateChecker) CheckRepos() error {
prs, err := s.i.VerifyProjectState(config)
if err != nil {
common.LogError(" *** verification failed, org:", org, err)
errorList = append(errorList, err)
}
for _, pr := range prs {
prs, err := Gitea.GetRecentPullRequests(pr.Org, pr.Repo, pr.Branch)
if err != nil {
return fmt.Errorf("Error fetching pull requests for %s/%s#%s. Err: %w", pr.Org, pr.Repo, pr.Branch, err)
common.LogError("Error fetching pull requests for", fmt.Sprintf("%s/%s#%s", pr.Org, pr.Repo, pr.Branch), err)
break
}
if len(prs) > 0 {
common.LogDebug(fmt.Sprintf("%s/%s#%s", pr.Org, pr.Repo, pr.Branch), " - # of PRs to check:", len(prs))
@@ -194,8 +201,6 @@ func (s *DefaultStateChecker) CheckRepos() error {
common.LogInfo(" ++ verification complete, org:", org, "config:", config.GitProjectName)
}
}
return errors.Join(errorList...)
}
func (s *DefaultStateChecker) ConsistencyCheckProcess() error {