summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--models/pull.go3
-rw-r--r--services/pull/check.go4
2 files changed, 6 insertions, 1 deletions
diff --git a/models/pull.go b/models/pull.go
index 876036c9e1..a7f51683db 100644
--- a/models/pull.go
+++ b/models/pull.go
@@ -35,6 +35,7 @@ const (
PullRequestStatusChecking
PullRequestStatusMergeable
PullRequestStatusManuallyMerged
+ PullRequestStatusError
)
// PullRequest represents relation between pull request and repositories.
@@ -517,7 +518,7 @@ func (pr *PullRequest) apiFormat(e Engine) *api.PullRequest {
}
if pr.Status != PullRequestStatusChecking {
- mergeable := pr.Status != PullRequestStatusConflict && !pr.IsWorkInProgress()
+ mergeable := !(pr.Status == PullRequestStatusConflict || pr.Status == PullRequestStatusError) && !pr.IsWorkInProgress()
apiPullRequest.Mergeable = mergeable
}
if pr.HasMerged {
diff --git a/services/pull/check.go b/services/pull/check.go
index 74185b6815..b1b9505823 100644
--- a/services/pull/check.go
+++ b/services/pull/check.go
@@ -194,10 +194,14 @@ func TestPullRequests(ctx context.Context) {
if err != nil {
log.Error("GetPullRequestByID[%s]: %v", prID, err)
continue
+ } else if pr.Status != models.PullRequestStatusChecking {
+ continue
} else if manuallyMerged(pr) {
continue
} else if err = TestPatch(pr); err != nil {
log.Error("testPatch[%d]: %v", pr.ID, err)
+ pr.Status = models.PullRequestStatusError
+ pr.UpdateCols("status")
continue
}
checkAndUpdateStatus(pr)