summaryrefslogtreecommitdiffstats
path: root/routers/api
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2019-11-10 08:42:51 +0000
committerGitHub <noreply@github.com>2019-11-10 08:42:51 +0000
commit8eeb2877d5803d0501815466d651a519b32bbd3a (patch)
treeffd1abc59788797e0d99169b8a88655f51d4128f /routers/api
parent31416a5f4e70d4972c351cde170b59d13fcbb77f (diff)
downloadgitea-8eeb2877d5803d0501815466d651a519b32bbd3a.tar.gz
gitea-8eeb2877d5803d0501815466d651a519b32bbd3a.zip
Adjust error reporting from merge failures and use LC_ALL=C for git (#8548)
There are two major components to this PR: * This PR handles merge and rebase failures from merging a little more nicely with Flash errors rather a 500. * All git commands are run in the LC_ALL="C" environment to ensure that error messages are in English. This DefaultLocale is defined in a way that if necessary (due to platform weirdness) it can be overridden at build time using LDFLAGS="-X "code.gitea.io/gitea/modules/git.DefaultLocale=C"" with C changed for the locale as necessary.
Diffstat (limited to 'routers/api')
-rw-r--r--routers/api/v1/repo/pull.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/routers/api/v1/repo/pull.go b/routers/api/v1/repo/pull.go
index 6d86105a15..6af1ba1b04 100644
--- a/routers/api/v1/repo/pull.go
+++ b/routers/api/v1/repo/pull.go
@@ -626,6 +626,18 @@ func MergePullRequest(ctx *context.APIContext, form auth.MergePullRequestForm) {
if models.IsErrInvalidMergeStyle(err) {
ctx.Status(405)
return
+ } else if models.IsErrMergeConflicts(err) {
+ conflictError := err.(models.ErrMergeConflicts)
+ ctx.JSON(http.StatusConflict, conflictError)
+ } else if models.IsErrRebaseConflicts(err) {
+ conflictError := err.(models.ErrRebaseConflicts)
+ ctx.JSON(http.StatusConflict, conflictError)
+ } else if models.IsErrMergeUnrelatedHistories(err) {
+ conflictError := err.(models.ErrMergeUnrelatedHistories)
+ ctx.JSON(http.StatusConflict, conflictError)
+ } else if models.IsErrMergePushOutOfDate(err) {
+ ctx.Status(http.StatusConflict)
+ return
}
ctx.Error(500, "Merge", err)
return