Skip to content

Commit 870cda8

Browse files
committed
take care of closed&not-merged+deleted-branch pull requests
1 parent 846c924 commit 870cda8

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

models/migrations/v136.go

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"fmt"
99

1010
"code.gitea.io/gitea/models"
11+
"code.gitea.io/gitea/modules/log"
1112
"code.gitea.io/gitea/modules/setting"
1213
pull_service "code.gitea.io/gitea/services/pull"
1314

@@ -44,13 +45,21 @@ func addCommitDivergenceToPulls(x *xorm.Engine) error {
4445
for _, pr := range results {
4546
divergence, err := pull_service.GetDiverging(pr)
4647
if err != nil {
47-
return fmt.Errorf("GetDiverging: %v", err)
48-
} else {
49-
pr.CommitsAhead = divergence.Ahead
50-
pr.CommitsBehind = divergence.Behind
51-
if _, err = sess.ID(pr.ID).Cols("commits_ahead", "commits_behind").Update(pr); err != nil {
52-
return fmt.Errorf("Update Cols: %v", err)
48+
if err = pr.LoadIssue(); err != nil {
49+
return fmt.Errorf("pr.LoadIssue()[%d]: %v", pr.ID, err)
5350
}
51+
if !pr.Issue.IsClosed {
52+
return fmt.Errorf("GetDiverging: %v", err)
53+
}
54+
log.Error("Could not recalculate Divergence for pull: %d", pr.ID)
55+
pr.CommitsAhead = 0
56+
pr.CommitsBehind = 0
57+
}
58+
59+
pr.CommitsAhead = divergence.Ahead
60+
pr.CommitsBehind = divergence.Behind
61+
if _, err = sess.ID(pr.ID).Cols("commits_ahead", "commits_behind").Update(pr); err != nil {
62+
return fmt.Errorf("Update Cols: %v", err)
5463
}
5564
}
5665

0 commit comments

Comments
 (0)