This is an automated email from the ASF dual-hosted git repository. likyh pushed a commit to branch release-v0.14 in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
commit 96559007fbc27996d28381399a364b6cc36a99d1 Author: linyh <[email protected]> AuthorDate: Wed Oct 19 20:54:33 2022 +0800 fix: skip when enrichGithubPrComment not found PR --- plugins/github/tasks/pr_review_comment_extractor.go | 21 ++++++++++++--------- services/pipeline.go | 4 ++-- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/plugins/github/tasks/pr_review_comment_extractor.go b/plugins/github/tasks/pr_review_comment_extractor.go index fae44a83..0307f720 100644 --- a/plugins/github/tasks/pr_review_comment_extractor.go +++ b/plugins/github/tasks/pr_review_comment_extractor.go @@ -19,14 +19,15 @@ package tasks import ( "encoding/json" + goerror "errors" "fmt" - "github.com/apache/incubator-devlake/errors" - "github.com/apache/incubator-devlake/plugins/core/dal" "gorm.io/gorm" "regexp" "strconv" + "github.com/apache/incubator-devlake/errors" "github.com/apache/incubator-devlake/plugins/core" + "github.com/apache/incubator-devlake/plugins/core/dal" "github.com/apache/incubator-devlake/plugins/github/models" "github.com/apache/incubator-devlake/plugins/helper" ) @@ -99,11 +100,11 @@ func ExtractApiPrReviewComments(taskCtx core.SubTaskContext) errors.Error { githubPrComment.AuthorUserId = prReviewComment.User.Id githubPrComment.AuthorUsername = prReviewComment.User.Login - githubAccount, err := convertAccount(prReviewComment.User, data.Repo.GithubId, data.Options.ConnectionId) - if err != nil { - return nil, err - } - results = append(results, githubAccount) + githubAccount, err := convertAccount(prReviewComment.User, data.Repo.GithubId, data.Options.ConnectionId) + if err != nil { + return nil, err + } + results = append(results, githubAccount) } results = append(results, githubPrComment) @@ -127,8 +128,10 @@ func enrichGithubPrComment(data *GithubTaskData, db dal.Dal, prUrlRegex *regexp. } pr := &models.GithubPullRequest{} err = db.First(pr, dal.Where("connection_id = ? and number = ? and repo_id = ?", data.Options.ConnectionId, prNumber, data.Repo.GithubId)) - if err != nil && err != gorm.ErrRecordNotFound { - return 0, errors.NotFound.Wrap(err, "github pull request not found in DB") + if goerror.Is(err, gorm.ErrRecordNotFound) { + return 0, nil + } else if err != nil { + return 0, errors.NotFound.Wrap(err, "github pull request parse failed ") } return pr.GithubId, nil } diff --git a/services/pipeline.go b/services/pipeline.go index 17c1a65b..54806fce 100644 --- a/services/pipeline.go +++ b/services/pipeline.go @@ -157,14 +157,14 @@ func RunPipelineInQueue(pipelineMaxParallel int64) { sema := semaphore.NewWeighted(pipelineMaxParallel) startedPipelineIds := []uint64{} for { - globalPipelineLog.Info("wait for new pipeline") + globalPipelineLog.Info("acquire lock") // start goroutine when sema lock ready and pipeline exist. // to avoid read old pipeline, acquire lock before read exist pipeline err := sema.Acquire(context.TODO(), 1) if err != nil { panic(err) } - globalPipelineLog.Info("get lock and wait pipeline") + globalPipelineLog.Info("get lock and wait next pipeline") dbPipeline := &models.DbPipeline{} for { cronLocker.Lock()
