fix delete pull head ref for DeleteIssue (#20032)

* fix delete pull head ref for DeleteIssue

fix #19655

Signed-off-by: a1012112796 <1012112796@qq.com>

* add different help message for delete pull request

Signed-off-by: a1012112796 <1012112796@qq.com>

Co-authored-by: 6543 <6543@obermui.de>
This commit is contained in:
a1012112796 2022-06-19 18:05:15 +08:00 committed by GitHub
parent e86f18a05a
commit cc42c6488a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 3 deletions

View file

@ -1610,6 +1610,9 @@ pulls.auto_merge_canceled_schedule = The auto merge was canceled for this pull r
pulls.auto_merge_newly_scheduled_comment = `scheduled this pull request to auto merge when all checks succeed %[1]s` pulls.auto_merge_newly_scheduled_comment = `scheduled this pull request to auto merge when all checks succeed %[1]s`
pulls.auto_merge_canceled_schedule_comment = `canceled auto merging this pull request when all checks succeed %[1]s` pulls.auto_merge_canceled_schedule_comment = `canceled auto merging this pull request when all checks succeed %[1]s`
pulls.delete.title = Delete this pull request?
pulls.delete.text = Do you really want to delete this pull request? (This will permanently remove all content. Consider closing it instead, if you intend to keep it archived)
milestones.new = New Milestone milestones.new = New Milestone
milestones.closed = Closed %s milestones.closed = Closed %s
milestones.update_ago = Updated %s ago milestones.update_ago = Updated %s ago

View file

@ -878,6 +878,11 @@ func DeleteIssue(ctx *context.Context) {
return return
} }
if issue.IsPull {
ctx.Redirect(fmt.Sprintf("%s/pulls", ctx.Repo.Repository.HTMLURL()), http.StatusSeeOther)
return
}
ctx.Redirect(fmt.Sprintf("%s/issues", ctx.Repo.Repository.HTMLURL()), http.StatusSeeOther) ctx.Redirect(fmt.Sprintf("%s/issues", ctx.Repo.Repository.HTMLURL()), http.StatusSeeOther)
} }

View file

@ -149,7 +149,7 @@ func DeleteIssue(doer *user_model.User, gitRepo *git.Repository, issue *issues_m
// delete pull request related git data // delete pull request related git data
if issue.IsPull { if issue.IsPull {
if err := gitRepo.RemoveReference(fmt.Sprintf("%s%d", git.PullPrefix, issue.PullRequest.Index)); err != nil { if err := gitRepo.RemoveReference(fmt.Sprintf("%s%d/head", git.PullPrefix, issue.PullRequest.Index)); err != nil {
return err return err
} }
} }

View file

@ -660,11 +660,19 @@
</button> </button>
<div class="ui basic modal" id="delete"> <div class="ui basic modal" id="delete">
<div class="ui icon header"> <div class="ui icon header">
{{if .Issue.IsPull}}
{{.i18n.Tr "repo.pulls.delete.title"}}
{{else}}
{{.i18n.Tr "repo.issues.delete.title"}} {{.i18n.Tr "repo.issues.delete.title"}}
{{end}}
</div> </div>
<div class="content center"> <div class="content center">
<p> <p>
{{if .Issue.IsPull}}
{{.i18n.Tr "repo.pulls.delete.text"}}
{{else}}
{{.i18n.Tr "repo.issues.delete.text"}} {{.i18n.Tr "repo.issues.delete.text"}}
{{end}}
</p> </p>
</div> </div>
<form action="{{.Issue.Link}}/delete" method="post"> <form action="{{.Issue.Link}}/delete" method="post">