|
|
|
@ -679,7 +679,13 @@ func MergePullRequest(ctx *context.Context, form auth.MergePullRequestForm) { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
if issue.IsClosed { |
|
|
|
|
ctx.NotFound("MergePullRequest", nil) |
|
|
|
|
if issue.IsPull { |
|
|
|
|
ctx.Flash.Error(ctx.Tr("repo.pulls.is_closed")) |
|
|
|
|
ctx.Redirect(ctx.Repo.RepoLink + "/pulls/" + com.ToStr(issue.Index)) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
ctx.Flash.Error(ctx.Tr("repo.issues.closed_title")) |
|
|
|
|
ctx.Redirect(ctx.Repo.RepoLink + "/issues/" + com.ToStr(issue.Index)) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -691,12 +697,20 @@ func MergePullRequest(ctx *context.Context, form auth.MergePullRequestForm) { |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
if !allowedMerge { |
|
|
|
|
ctx.NotFound("MergePullRequest", nil) |
|
|
|
|
ctx.Flash.Error(ctx.Tr("repo.pulls.update_not_allowed")) |
|
|
|
|
ctx.Redirect(ctx.Repo.RepoLink + "/pulls/" + com.ToStr(issue.Index)) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if !pr.CanAutoMerge() || pr.HasMerged { |
|
|
|
|
ctx.NotFound("MergePullRequest", nil) |
|
|
|
|
if !pr.CanAutoMerge() { |
|
|
|
|
ctx.Flash.Error(ctx.Tr("repo.pulls.no_merge_not_ready")) |
|
|
|
|
ctx.Redirect(ctx.Repo.RepoLink + "/pulls/" + com.ToStr(issue.Index)) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if pr.HasMerged { |
|
|
|
|
ctx.Flash.Error(ctx.Tr("repo.pulls.has_merged")) |
|
|
|
|
ctx.Redirect(ctx.Repo.RepoLink + "/pulls/" + com.ToStr(issue.Index)) |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|