summaryrefslogtreecommitdiffstats
path: root/routers
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2023-02-03 23:11:48 +0000
committerGitHub <noreply@github.com>2023-02-03 18:11:48 -0500
commit3c5655ce18056277917092d370bbdfbcdaaa8ae6 (patch)
tree3c0f003e14a1286b56c57d52410e8fc661dca4fb /routers
parent01f082287d7957ed63a0865b26e04ad23382c715 (diff)
downloadgitea-3c5655ce18056277917092d370bbdfbcdaaa8ae6.tar.gz
gitea-3c5655ce18056277917092d370bbdfbcdaaa8ae6.zip
Improve trace logging for pulls and processes (#22633)
Our trace logging is far from perfect and is difficult to follow. This PR: * Add trace logging for process manager add and remove. * Fixes an errant read file for git refs in getMergeCommit * Brings in the pullrequest `String` and `ColorFormat` methods introduced in #22568 * Adds a lot more logging in to testPR etc. Ref #22578 --------- Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: delvh <dev.lh@web.de> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Diffstat (limited to 'routers')
-rw-r--r--routers/web/repo/pull.go51
1 files changed, 23 insertions, 28 deletions
diff --git a/routers/web/repo/pull.go b/routers/web/repo/pull.go
index 71bc98d13d..11d336d4ec 100644
--- a/routers/web/repo/pull.go
+++ b/routers/web/repo/pull.go
@@ -926,59 +926,54 @@ func MergePullRequest(ctx *context.Context) {
pr := issue.PullRequest
pr.Issue = issue
pr.Issue.Repo = ctx.Repo.Repository
- manuallMerge := repo_model.MergeStyle(form.Do) == repo_model.MergeStyleManuallyMerged
+ manualMerge := repo_model.MergeStyle(form.Do) == repo_model.MergeStyleManuallyMerged
forceMerge := form.ForceMerge != nil && *form.ForceMerge
// start with merging by checking
- if err := pull_service.CheckPullMergable(ctx, ctx.Doer, &ctx.Repo.Permission, pr, manuallMerge, forceMerge); err != nil {
- if errors.Is(err, pull_service.ErrIsClosed) {
+ if err := pull_service.CheckPullMergable(ctx, ctx.Doer, &ctx.Repo.Permission, pr, manualMerge, forceMerge); err != nil {
+ switch {
+ case errors.Is(err, pull_service.ErrIsClosed):
if issue.IsPull {
ctx.Flash.Error(ctx.Tr("repo.pulls.is_closed"))
- ctx.Redirect(issue.Link())
} else {
ctx.Flash.Error(ctx.Tr("repo.issues.closed_title"))
- ctx.Redirect(issue.Link())
}
- } else if errors.Is(err, pull_service.ErrUserNotAllowedToMerge) {
+ case errors.Is(err, pull_service.ErrUserNotAllowedToMerge):
ctx.Flash.Error(ctx.Tr("repo.pulls.update_not_allowed"))
- ctx.Redirect(issue.Link())
- } else if errors.Is(err, pull_service.ErrHasMerged) {
+ case errors.Is(err, pull_service.ErrHasMerged):
ctx.Flash.Error(ctx.Tr("repo.pulls.has_merged"))
- ctx.Redirect(issue.Link())
- } else if errors.Is(err, pull_service.ErrIsWorkInProgress) {
+ case errors.Is(err, pull_service.ErrIsWorkInProgress):
ctx.Flash.Error(ctx.Tr("repo.pulls.no_merge_wip"))
- ctx.Redirect(issue.Link())
- } else if errors.Is(err, pull_service.ErrNotMergableState) {
+ case errors.Is(err, pull_service.ErrNotMergableState):
ctx.Flash.Error(ctx.Tr("repo.pulls.no_merge_not_ready"))
- ctx.Redirect(issue.Link())
- } else if models.IsErrDisallowedToMerge(err) {
+ case models.IsErrDisallowedToMerge(err):
ctx.Flash.Error(ctx.Tr("repo.pulls.no_merge_not_ready"))
- ctx.Redirect(issue.Link())
- } else if asymkey_service.IsErrWontSign(err) {
- ctx.Flash.Error(err.Error()) // has not translation ...
- ctx.Redirect(issue.Link())
- } else if errors.Is(err, pull_service.ErrDependenciesLeft) {
+ case asymkey_service.IsErrWontSign(err):
+ ctx.Flash.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.Redirect(issue.Link())
- } else {
+ default:
ctx.ServerError("WebCheck", err)
+ return
}
+
+ ctx.Redirect(issue.Link())
return
}
// handle manually-merged mark
- if manuallMerge {
+ if manualMerge {
if err := pull_service.MergedManually(pr, ctx.Doer, ctx.Repo.GitRepo, form.MergeCommitID); err != nil {
- if models.IsErrInvalidMergeStyle(err) {
+ switch {
+
+ case models.IsErrInvalidMergeStyle(err):
ctx.Flash.Error(ctx.Tr("repo.pulls.invalid_merge_option"))
- ctx.Redirect(issue.Link())
- } else if strings.Contains(err.Error(), "Wrong commit ID") {
+ case strings.Contains(err.Error(), "Wrong commit ID"):
ctx.Flash.Error(ctx.Tr("repo.pulls.wrong_commit_id"))
- ctx.Redirect(issue.Link())
- } else {
+ default:
ctx.ServerError("MergedManually", err)
+ return
}
- return
}
ctx.Redirect(issue.Link())