]> source.dussan.org Git - gitea.git/commitdiff
Fix agit checkout command line hint & fix ShowMergeInstructions checking (#31219...
authorGiteabot <teabot@gitea.io>
Mon, 3 Jun 2024 01:45:57 +0000 (09:45 +0800)
committerGitHub <noreply@github.com>
Mon, 3 Jun 2024 01:45:57 +0000 (09:45 +0800)
Backport #31219 by @lunny

Fix #31135

Before
<img width="527" alt="图片"
src="https://github.com/go-gitea/gitea/assets/81045/60c07b55-3db2-4a9a-98f1-0eb72d149df2">

After
<img width="664" alt="图片"
src="https://github.com/go-gitea/gitea/assets/81045/0670ff5d-9e0b-47ac-aba4-9db9131de3b3">

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
routers/web/repo/issue.go
templates/repo/issue/view_content/pull_merge_instruction.tmpl

index 0c8363a1681e5fc2e59ee4695558b38dbff9759e..6cfc22566ad70bb1e63b5af8a0d8655d633f803b 100644 (file)
@@ -1791,6 +1791,7 @@ func ViewIssue(ctx *context.Context) {
                pull.Issue = issue
                canDelete := false
                allowMerge := false
+               canWriteToHeadRepo := false
 
                if ctx.IsSigned {
                        if err := pull.LoadHeadRepo(ctx); err != nil {
@@ -1811,7 +1812,7 @@ func ViewIssue(ctx *context.Context) {
                                                        ctx.Data["DeleteBranchLink"] = issue.Link() + "/cleanup"
                                                }
                                        }
-                                       ctx.Data["CanWriteToHeadRepo"] = true
+                                       canWriteToHeadRepo = true
                                }
                        }
 
@@ -1823,6 +1824,9 @@ func ViewIssue(ctx *context.Context) {
                                ctx.ServerError("GetUserRepoPermission", err)
                                return
                        }
+                       if !canWriteToHeadRepo { // maintainers maybe allowed to push to head repo even if they can't write to it
+                               canWriteToHeadRepo = pull.AllowMaintainerEdit && perm.CanWrite(unit.TypeCode)
+                       }
                        allowMerge, err = pull_service.IsUserAllowedToMerge(ctx, pull, perm, ctx.Doer)
                        if err != nil {
                                ctx.ServerError("IsUserAllowedToMerge", err)
@@ -1835,6 +1839,8 @@ func ViewIssue(ctx *context.Context) {
                        }
                }
 
+               ctx.Data["CanWriteToHeadRepo"] = canWriteToHeadRepo
+               ctx.Data["ShowMergeInstructions"] = canWriteToHeadRepo
                ctx.Data["AllowMerge"] = allowMerge
 
                prUnit, err := repo.GetUnit(ctx, unit.TypePullRequests)
@@ -1889,13 +1895,9 @@ func ViewIssue(ctx *context.Context) {
                        ctx.ServerError("LoadProtectedBranch", err)
                        return
                }
-               ctx.Data["ShowMergeInstructions"] = true
+
                if pb != nil {
                        pb.Repo = pull.BaseRepo
-                       var showMergeInstructions bool
-                       if ctx.Doer != nil {
-                               showMergeInstructions = pb.CanUserPush(ctx, ctx.Doer)
-                       }
                        ctx.Data["ProtectedBranch"] = pb
                        ctx.Data["IsBlockedByApprovals"] = !issues_model.HasEnoughApprovals(ctx, pb, pull)
                        ctx.Data["IsBlockedByRejection"] = issues_model.MergeBlockedByRejectedReview(ctx, pb, pull)
@@ -1906,7 +1908,6 @@ func ViewIssue(ctx *context.Context) {
                        ctx.Data["ChangedProtectedFiles"] = pull.ChangedProtectedFiles
                        ctx.Data["IsBlockedByChangedProtectedFiles"] = len(pull.ChangedProtectedFiles) != 0
                        ctx.Data["ChangedProtectedFilesNum"] = len(pull.ChangedProtectedFiles)
-                       ctx.Data["ShowMergeInstructions"] = showMergeInstructions
                }
                ctx.Data["WillSign"] = false
                if ctx.Doer != nil {
index d585d36574d0c963a87db5b8c785b12b75980dd8..bb59b497190bcf413fd31efd0aab55a34ae15631 100644 (file)
@@ -9,10 +9,10 @@
        <div class="ui secondary segment">
                {{if eq .PullRequest.Flow 0}}
                <div>git fetch -u {{if ne .PullRequest.HeadRepo.ID .PullRequest.BaseRepo.ID}}<origin-url data-url="{{.PullRequest.HeadRepo.Link}}"></origin-url>{{else}}origin{{end}} {{.PullRequest.HeadBranch}}:{{$localBranch}}</div>
-               <div>git checkout {{$localBranch}}</div>
                {{else}}
-               <div>git fetch -u origin {{.GetGitRefName}}:{{$localBranch}}</div>
+               <div>git fetch -u origin {{.PullRequest.GetGitRefName}}:{{$localBranch}}</div>
                {{end}}
+               <div>git checkout {{$localBranch}}</div>
        </div>
        {{if .ShowMergeInstructions}}
        <div><h3>{{ctx.Locale.Tr "repo.pulls.cmd_instruction_merge_title"}}</h3>{{ctx.Locale.Tr "repo.pulls.cmd_instruction_merge_desc"}}</div>