mirror of
https://github.com/go-gitea/gitea.git
synced 2026-09-19 10:24:51 +02:00
fix(repo): surface unrelated histories on Sync Fork (#39258)
Sync Fork already maps merge conflicts to a JSON error. Unrelated histories still went through `ServerError`, so the UI showed a 500 HTML snippet instead of the same user-facing message PR merge already uses (`repo.pulls.unrelated_histories`). The API path returned 500 for the same git error; PR merge returns 409. Match that. Fixes #36772 AI assistance was used to locate the handler gap and draft the mapping. I reviewed and take responsibility for the change. Signed-off-by: Zhaoqi Xu <lzy00419@outlook.com>
This commit is contained in:
@@ -1331,6 +1331,8 @@ func MergeUpstream(ctx *context.APIContext) {
|
||||
// "$ref": "#/responses/error"
|
||||
// "404":
|
||||
// "$ref": "#/responses/notFound"
|
||||
// "409":
|
||||
// "$ref": "#/responses/error"
|
||||
form := web.GetForm[*api.MergeUpstreamRequest](ctx)
|
||||
mergeStyle, err := repo_service.MergeUpstream(ctx, ctx.Doer, ctx.Repo.Repository, form.Branch, form.FfOnly)
|
||||
if err != nil {
|
||||
@@ -1343,6 +1345,9 @@ func MergeUpstream(ctx *context.APIContext) {
|
||||
} else if errors.Is(err, util.ErrPermissionDenied) {
|
||||
ctx.APIError(http.StatusForbidden, err.Error())
|
||||
return
|
||||
} else if pull_service.IsErrMergeConflicts(err) || pull_service.IsErrMergeUnrelatedHistories(err) {
|
||||
ctx.APIError(http.StatusConflict, err.Error())
|
||||
return
|
||||
}
|
||||
ctx.APIErrorInternal(err)
|
||||
return
|
||||
|
||||
@@ -240,6 +240,9 @@ func MergeUpstream(ctx *context.Context) {
|
||||
} else if pull_service.IsErrMergeConflicts(err) {
|
||||
ctx.JSONError(ctx.Tr("repo.pulls.merge_conflict"))
|
||||
return
|
||||
} else if pull_service.IsErrMergeUnrelatedHistories(err) {
|
||||
ctx.JSONError(ctx.Tr("repo.pulls.unrelated_histories"))
|
||||
return
|
||||
}
|
||||
ctx.ServerError("MergeUpstream", err)
|
||||
return
|
||||
|
||||
+3
@@ -27155,6 +27155,9 @@
|
||||
},
|
||||
"404": {
|
||||
"$ref": "#/components/responses/notFound"
|
||||
},
|
||||
"409": {
|
||||
"$ref": "#/components/responses/error"
|
||||
}
|
||||
},
|
||||
"summary": "Merge a branch from upstream",
|
||||
|
||||
+3
@@ -14997,6 +14997,9 @@
|
||||
},
|
||||
"404": {
|
||||
"$ref": "#/responses/notFound"
|
||||
},
|
||||
"409": {
|
||||
"$ref": "#/responses/error"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user