Fix agit checkout command line hint & fix ShowMergeInstructions checking (#31219)

This commit is contained in:
Lunny Xiao 2024-06-03 06:45:21 +08:00 committed by GitHub
parent 98a61040b1
commit 2788a7ca27
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 9 deletions

View File

@ -1794,6 +1794,7 @@ func ViewIssue(ctx *context.Context) {
pull.Issue = issue pull.Issue = issue
canDelete := false canDelete := false
allowMerge := false allowMerge := false
canWriteToHeadRepo := false
if ctx.IsSigned { if ctx.IsSigned {
if err := pull.LoadHeadRepo(ctx); err != nil { if err := pull.LoadHeadRepo(ctx); err != nil {
@ -1814,7 +1815,7 @@ func ViewIssue(ctx *context.Context) {
ctx.Data["DeleteBranchLink"] = issue.Link() + "/cleanup" ctx.Data["DeleteBranchLink"] = issue.Link() + "/cleanup"
} }
} }
ctx.Data["CanWriteToHeadRepo"] = true canWriteToHeadRepo = true
} }
} }
@ -1826,6 +1827,9 @@ func ViewIssue(ctx *context.Context) {
ctx.ServerError("GetUserRepoPermission", err) ctx.ServerError("GetUserRepoPermission", err)
return 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) allowMerge, err = pull_service.IsUserAllowedToMerge(ctx, pull, perm, ctx.Doer)
if err != nil { if err != nil {
ctx.ServerError("IsUserAllowedToMerge", err) ctx.ServerError("IsUserAllowedToMerge", err)
@ -1838,6 +1842,8 @@ func ViewIssue(ctx *context.Context) {
} }
} }
ctx.Data["CanWriteToHeadRepo"] = canWriteToHeadRepo
ctx.Data["ShowMergeInstructions"] = canWriteToHeadRepo
ctx.Data["AllowMerge"] = allowMerge ctx.Data["AllowMerge"] = allowMerge
prUnit, err := repo.GetUnit(ctx, unit.TypePullRequests) prUnit, err := repo.GetUnit(ctx, unit.TypePullRequests)
@ -1892,13 +1898,9 @@ func ViewIssue(ctx *context.Context) {
ctx.ServerError("LoadProtectedBranch", err) ctx.ServerError("LoadProtectedBranch", err)
return return
} }
ctx.Data["ShowMergeInstructions"] = true
if pb != nil { if pb != nil {
pb.Repo = pull.BaseRepo pb.Repo = pull.BaseRepo
var showMergeInstructions bool
if ctx.Doer != nil {
showMergeInstructions = pb.CanUserPush(ctx, ctx.Doer)
}
ctx.Data["ProtectedBranch"] = pb ctx.Data["ProtectedBranch"] = pb
ctx.Data["IsBlockedByApprovals"] = !issues_model.HasEnoughApprovals(ctx, pb, pull) ctx.Data["IsBlockedByApprovals"] = !issues_model.HasEnoughApprovals(ctx, pb, pull)
ctx.Data["IsBlockedByRejection"] = issues_model.MergeBlockedByRejectedReview(ctx, pb, pull) ctx.Data["IsBlockedByRejection"] = issues_model.MergeBlockedByRejectedReview(ctx, pb, pull)
@ -1909,7 +1911,6 @@ func ViewIssue(ctx *context.Context) {
ctx.Data["ChangedProtectedFiles"] = pull.ChangedProtectedFiles ctx.Data["ChangedProtectedFiles"] = pull.ChangedProtectedFiles
ctx.Data["IsBlockedByChangedProtectedFiles"] = len(pull.ChangedProtectedFiles) != 0 ctx.Data["IsBlockedByChangedProtectedFiles"] = len(pull.ChangedProtectedFiles) != 0
ctx.Data["ChangedProtectedFilesNum"] = len(pull.ChangedProtectedFiles) ctx.Data["ChangedProtectedFilesNum"] = len(pull.ChangedProtectedFiles)
ctx.Data["ShowMergeInstructions"] = showMergeInstructions
} }
ctx.Data["WillSign"] = false ctx.Data["WillSign"] = false
if ctx.Doer != nil { if ctx.Doer != nil {

View File

@ -9,10 +9,10 @@
<div class="ui secondary segment"> <div class="ui secondary segment">
{{if eq .PullRequest.Flow 0}} {{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 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}} {{else}}
<div>git fetch -u origin {{.GetGitRefName}}:{{$localBranch}}</div> <div>git fetch -u origin {{.PullRequest.GetGitRefName}}:{{$localBranch}}</div>
{{end}} {{end}}
<div>git checkout {{$localBranch}}</div>
</div> </div>
{{if .ShowMergeInstructions}} {{if .ShowMergeInstructions}}
<div><h3>{{ctx.Locale.Tr "repo.pulls.cmd_instruction_merge_title"}}</h3>{{ctx.Locale.Tr "repo.pulls.cmd_instruction_merge_desc"}}</div> <div><h3>{{ctx.Locale.Tr "repo.pulls.cmd_instruction_merge_title"}}</h3>{{ctx.Locale.Tr "repo.pulls.cmd_instruction_merge_desc"}}</div>