@ -1133,30 +1133,28 @@ func MergePullRequest(ctx *context.Context) {
switch {
case errors . Is ( err , pull_service . ErrIsClosed ) :
if issue . IsPull {
ctx . Flash . Error ( ctx . Tr ( "repo.pulls.is_closed" ) )
ctx . JSON Error( ctx . Tr ( "repo.pulls.is_closed" ) )
} else {
ctx . Flash . Error ( ctx . Tr ( "repo.issues.closed_title" ) )
ctx . JSON Error( ctx . Tr ( "repo.issues.closed_title" ) )
}
case errors . Is ( err , pull_service . ErrUserNotAllowedToMerge ) :
ctx . Flash . Error ( ctx . Tr ( "repo.pulls.update_not_allowed" ) )
ctx . JSON Error( ctx . Tr ( "repo.pulls.update_not_allowed" ) )
case errors . Is ( err , pull_service . ErrHasMerged ) :
ctx . Flash . Error ( ctx . Tr ( "repo.pulls.has_merged" ) )
ctx . JSON Error( ctx . Tr ( "repo.pulls.has_merged" ) )
case errors . Is ( err , pull_service . ErrIsWorkInProgress ) :
ctx . Flash . Error ( ctx . Tr ( "repo.pulls.no_merge_wip" ) )
ctx . JSON Error( ctx . Tr ( "repo.pulls.no_merge_wip" ) )
case errors . Is ( err , pull_service . ErrNotMergableState ) :
ctx . Flash . Error ( ctx . Tr ( "repo.pulls.no_merge_not_ready" ) )
ctx . JSON Error( ctx . Tr ( "repo.pulls.no_merge_not_ready" ) )
case models . IsErrDisallowedToMerge ( err ) :
ctx . Flash . Error ( ctx . Tr ( "repo.pulls.no_merge_not_ready" ) )
ctx . JSON Error( ctx . Tr ( "repo.pulls.no_merge_not_ready" ) )
case asymkey_service . IsErrWontSign ( err ) :
ctx . Flash . Error ( err . Error ( ) ) // has no translation ...
ctx . JSON Error( err . Error ( ) ) // has no translation ...
case errors . Is ( err , pull_service . ErrDependenciesLeft ) :
ctx . Flash . Error ( ctx . Tr ( "repo.issues.dependency.pr_close_blocked" ) )
ctx . JSON Error( ctx . Tr ( "repo.issues.dependency.pr_close_blocked" ) )
default :
ctx . ServerError ( "WebCheck" , err )
return
}
ctx . Redirect ( issue . Link ( ) )
return
}
@ -1164,18 +1162,18 @@ func MergePullRequest(ctx *context.Context) {
if manuallyMerged {
if err := pull_service . MergedManually ( pr , ctx . Doer , ctx . Repo . GitRepo , form . MergeCommitID ) ; err != nil {
switch {
case models . IsErrInvalidMergeStyle ( err ) :
ctx . Flash . Error ( ctx . Tr ( "repo.pulls.invalid_merge_option" ) )
ctx . JSON Error( ctx . Tr ( "repo.pulls.invalid_merge_option" ) )
case strings . Contains ( err . Error ( ) , "Wrong commit ID" ) :
ctx . Flash . Error ( ctx . Tr ( "repo.pulls.wrong_commit_id" ) )
ctx . JSON Error( ctx . Tr ( "repo.pulls.wrong_commit_id" ) )
default :
ctx . ServerError ( "MergedManually" , err )
return
}
return
}
ctx . Redirect ( issue . Link ( ) )
ctx . JSON Redirect( issue . Link ( ) )
return
}
@ -1205,15 +1203,14 @@ func MergePullRequest(ctx *context.Context) {
} else if scheduled {
// nothing more to do ...
ctx . Flash . Success ( ctx . Tr ( "repo.pulls.auto_merge_newly_scheduled" ) )
ctx . Redirect ( fmt . Sprintf ( "%s/pulls/%d" , ctx . Repo . RepoLink , pr . Index ) )
ctx . JSON Redirect( fmt . Sprintf ( "%s/pulls/%d" , ctx . Repo . RepoLink , pr . Index ) )
return
}
}
if err := pull_service . Merge ( ctx , pr , ctx . Doer , ctx . Repo . GitRepo , repo_model . MergeStyle ( form . Do ) , form . HeadCommitID , message , false ) ; err != nil {
if models . IsErrInvalidMergeStyle ( err ) {
ctx . Flash . Error ( ctx . Tr ( "repo.pulls.invalid_merge_option" ) )
ctx . Redirect ( issue . Link ( ) )
ctx . JSONError ( ctx . Tr ( "repo.pulls.invalid_merge_option" ) )
} else if models . IsErrMergeConflicts ( err ) {
conflictError := err . ( models . ErrMergeConflicts )
flashError , err := ctx . RenderToString ( tplAlertDetails , map [ string ] any {
@ -1226,7 +1223,7 @@ func MergePullRequest(ctx *context.Context) {
return
}
ctx . Flash . Error ( flashError )
ctx . Redirect ( issue . Link ( ) )
ctx . JSON Redirect( issue . Link ( ) )
} else if models . IsErrRebaseConflicts ( err ) {
conflictError := err . ( models . ErrRebaseConflicts )
flashError , err := ctx . RenderToString ( tplAlertDetails , map [ string ] any {
@ -1270,7 +1267,7 @@ func MergePullRequest(ctx *context.Context) {
}
ctx . Flash . Error ( flashError )
}
ctx . Redirect ( issue . Link ( ) )
ctx . JSON Redirect( issue . Link ( ) )
} else {
ctx . ServerError ( "Merge" , err )
}
@ -1279,7 +1276,7 @@ func MergePullRequest(ctx *context.Context) {
log . Trace ( "Pull request merged: %d" , pr . ID )
if err := stopTimerIfAvailable ( ctx , ctx . Doer , issue ) ; err != nil {
ctx . ServerError ( "CreateOrStopIssueStopwatch " , err )
ctx . ServerError ( "stopTimerIfAvailable " , err )
return
}
@ -1293,7 +1290,7 @@ func MergePullRequest(ctx *context.Context) {
return
}
if exist {
ctx . Redirect ( issue . Link ( ) )
ctx . JSON Redirect( issue . Link ( ) )
return
}
@ -1311,7 +1308,7 @@ func MergePullRequest(ctx *context.Context) {
deleteBranch ( ctx , pr , headRepo )
}
ctx . Redirect ( issue . Link ( ) )
ctx . JSON Redirect( issue . Link ( ) )
}
// CancelAutoMergePullRequest cancels a scheduled pr