From 40a7660038084dfeb101fb691e7dc1c2c661d24a Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Tue, 6 Oct 2020 08:38:08 +0200 Subject: [PATCH] Fix error create comment on outdated file (#13041) (#13042) * FIX * more specific Co-authored-by: techknowlogick Co-authored-by: techknowlogick --- services/pull/review.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/pull/review.go b/services/pull/review.go index 5a77a4da1..09ab3ff56 100644 --- a/services/pull/review.go +++ b/services/pull/review.go @@ -8,6 +8,7 @@ package pull import ( "bytes" "fmt" + "regexp" "strings" "code.gitea.io/gitea/models" @@ -104,6 +105,8 @@ func CreateCodeComment(doer *models.User, gitRepo *git.Repository, issue *models return comment, nil } +var notEnoughLines = regexp.MustCompile(`exit status 128 - fatal: file .* has only \d+ lines?`) + // createCodeComment creates a plain code comment at the specified line / path func createCodeComment(doer *models.User, repo *models.Repository, issue *models.Issue, content, treePath string, line, reviewID int64) (*models.Comment, error) { var commitID, patch string @@ -127,7 +130,7 @@ func createCodeComment(doer *models.User, repo *models.Repository, issue *models commit, err := gitRepo.LineBlame(pr.GetGitRefName(), gitRepo.Path, treePath, uint(line)) if err == nil { commitID = commit.ID.String() - } else if !strings.Contains(err.Error(), "exit status 128 - fatal: no such path") { + } else if !(strings.Contains(err.Error(), "exit status 128 - fatal: no such path") || notEnoughLines.MatchString(err.Error())) { return nil, fmt.Errorf("LineBlame[%s, %s, %s, %d]: %v", pr.GetGitRefName(), gitRepo.Path, treePath, line, err) } }