Ensure that new pull request button works on forked forks owned by owner of the root (#14932)
Prevent 404 on new pull request button on forked fork owned by the owner of the root repository. Also ensure that the names make sense. Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		
							parent
							
								
									f4629fc472
								
							
						
					
					
						commit
						bf53cf0e04
					
				
					 2 changed files with 32 additions and 11 deletions
				
			
		|  | @ -12,11 +12,32 @@ | |||
| 				{{.i18n.Tr "action.compare_commits_general"}} | ||||
| 			{{ end }} | ||||
| 		</h2> | ||||
| 		{{ $BaseCompareName := $.BaseName -}} | ||||
| 		{{- $HeadCompareName := $.HeadRepo.OwnerName -}} | ||||
| 		{{- if and (eq $.BaseName $.HeadRepo.OwnerName) (ne $.Repository.Name $.HeadRepo.Name) -}} | ||||
| 			{{- $HeadCompareName = printf "%s/%s" $.HeadRepo.OwnerName $.HeadRepo.Name -}} | ||||
| 		{{- end -}} | ||||
| 		{{- $OwnForkCompareName := "" -}} | ||||
| 		{{- if .OwnForkRepo -}} | ||||
| 			{{- $OwnForkCompareName = .OwnForkRepo.OwnerName -}} | ||||
| 		{{- end -}} | ||||
| 		{{- $RootRepoCompareName := "" -}} | ||||
| 		{{- if .RootRepo -}} | ||||
| 			{{- $RootRepoCompareName = .RootRepo.OwnerName -}} | ||||
| 			{{- if eq $.HeadRepo.OwnerName .RootRepo.OwnerName -}} | ||||
| 				{{- $HeadCompareName = printf "%s/%s" $.HeadRepo.OwnerName $.HeadRepo.Name -}} | ||||
| 			{{- end -}} | ||||
| 			{{- if .OwnForkRepo -}} | ||||
| 				{{- if eq $.OwnForkRepo.OwnerName .RootRepo.OwnerName -}} | ||||
| 					{{- $OwnForkRepoCompareName = printf "%s/%s" $.OwnForkRepo.OwnerName $.OwnForkRepo.Name -}} | ||||
| 				{{- end -}} | ||||
| 			{{- end -}} | ||||
| 		{{- end -}} | ||||
| 		<div class="ui segment choose branch"> | ||||
| 			{{svg "octicon-git-compare"}} | ||||
| 			<div class="ui floating filter dropdown" data-no-results="{{.i18n.Tr "repo.pulls.no_results"}}"> | ||||
| 				<div class="ui basic small button"> | ||||
| 					<span class="text">{{.i18n.Tr "repo.pulls.compare_base"}}: {{$.BaseName}}:{{$.BaseBranch}}</span> | ||||
| 					<span class="text">{{.i18n.Tr "repo.pulls.compare_base"}}: {{$BaseCompareName}}:{{$.BaseBranch}}</span> | ||||
| 					{{svg "octicon-triangle-down" 14 "dropdown icon"}} | ||||
| 				</div> | ||||
| 				<div class="menu"> | ||||
|  | @ -26,21 +47,21 @@ | |||
| 					</div> | ||||
| 					<div class="scrolling menu"> | ||||
| 						{{range .Branches}} | ||||
| 							<div class="item {{if eq $.BaseBranch .}}selected{{end}}" data-url="{{$.RepoLink}}/compare/{{EscapePound .}}...{{if not $.PullRequestCtx.SameRepo}}{{$.HeadUser.Name}}/{{$.HeadRepo.Name}}:{{end}}{{EscapePound $.HeadBranch}}">{{$.BaseName}}:{{.}}</div> | ||||
| 							<div class="item {{if eq $.BaseBranch .}}selected{{end}}" data-url="{{$.RepoLink}}/compare/{{EscapePound .}}...{{if not $.PullRequestCtx.SameRepo}}{{$.HeadUser.Name}}/{{$.HeadRepo.Name}}:{{end}}{{EscapePound $.HeadBranch}}">{{$BaseCompareName}}:{{.}}</div> | ||||
| 						{{end}} | ||||
| 						{{if not .PullRequestCtx.SameRepo}} | ||||
| 							{{range .HeadBranches}} | ||||
| 								<div class="item" data-url="{{$.HeadRepo.Link}}/compare/{{EscapePound .}}...{{$.HeadUser.Name}}/{{$.HeadRepo.Name}}:{{EscapePound $.HeadBranch}}">{{$.HeadUser.Name}}:{{.}}</div> | ||||
| 								<div class="item" data-url="{{$.HeadRepo.Link}}/compare/{{EscapePound .}}...{{$.HeadUser.Name}}/{{$.HeadRepo.Name}}:{{EscapePound $.HeadBranch}}">{{$HeadCompareName}}:{{.}}</div> | ||||
| 							{{end}} | ||||
| 						{{end}} | ||||
| 						{{if .OwnForkRepo}} | ||||
| 							{{range .OwnForkRepoBranches}} | ||||
| 								<div class="item" data-url="{{$.OwnForkRepo.Link}}/compare/{{EscapePound .}}...{{$.HeadUser.Name}}/{{$.HeadRepo.Name}}:{{EscapePound $.HeadBranch}}">{{$.OwnForkRepo.OwnerName}}:{{.}}</div> | ||||
| 								<div class="item" data-url="{{$.OwnForkRepo.Link}}/compare/{{EscapePound .}}...{{$.HeadUser.Name}}/{{$.HeadRepo.Name}}:{{EscapePound $.HeadBranch}}">{{$OwnForkCompareName}}:{{.}}</div> | ||||
| 							{{end}} | ||||
| 						{{end}} | ||||
| 						{{if .RootRepo}} | ||||
| 							{{range .RootRepoBranches}} | ||||
| 								<div class="item" data-url="{{$.RootRepo.Link}}/compare/{{EscapePound .}}...{{$.HeadUser.Name}}/{{$.HeadRepo.Name}}:{{EscapePound $.HeadBranch}}">{{$.RootRepo.OwnerName}}:{{.}}</div> | ||||
| 								<div class="item" data-url="{{$.RootRepo.Link}}/compare/{{EscapePound .}}...{{$.HeadUser.Name}}/{{$.HeadRepo.Name}}:{{EscapePound $.HeadBranch}}">{{$RootRepoCompareName}}:{{.}}</div> | ||||
| 							{{end}} | ||||
| 						{{end}} | ||||
| 					</div> | ||||
|  | @ -49,7 +70,7 @@ | |||
| 			... | ||||
| 			<div class="ui floating filter dropdown"> | ||||
| 				<div class="ui basic small button"> | ||||
| 					<span class="text">{{.i18n.Tr "repo.pulls.compare_compare"}}: {{$.HeadUser.Name}}:{{$.HeadBranch}}</span> | ||||
| 					<span class="text">{{.i18n.Tr "repo.pulls.compare_compare"}}: {{$HeadCompareName}}:{{$.HeadBranch}}</span> | ||||
| 					{{svg "octicon-triangle-down" 14 "dropdown icon"}} | ||||
| 				</div> | ||||
| 				<div class="menu"> | ||||
|  | @ -59,21 +80,21 @@ | |||
| 					</div> | ||||
| 					<div class="scrolling menu"> | ||||
| 						{{range .HeadBranches}} | ||||
| 							<div class="{{if eq $.HeadBranch .}}selected{{end}} item" data-url="{{$.RepoLink}}/compare/{{EscapePound $.BaseBranch}}...{{if not $.PullRequestCtx.SameRepo}}{{$.HeadUser.Name}}/{{$.HeadRepo.Name}}:{{end}}{{EscapePound .}}">{{$.HeadUser.Name}}:{{.}}</div> | ||||
| 							<div class="{{if eq $.HeadBranch .}}selected{{end}} item" data-url="{{$.RepoLink}}/compare/{{EscapePound $.BaseBranch}}...{{if not $.PullRequestCtx.SameRepo}}{{$.HeadUser.Name}}/{{$.HeadRepo.Name}}:{{end}}{{EscapePound .}}">{{$HeadCompareName}}:{{.}}</div> | ||||
| 						{{end}} | ||||
| 						{{if not .PullRequestCtx.SameRepo}} | ||||
| 							{{range .Branches}} | ||||
| 								<div class="item" data-url="{{$.RepoLink}}/compare/{{EscapePound $.BaseBranch}}...{{$.BaseName}}/{{$.Repository.Name}}:{{EscapePound .}}">{{$.BaseName}}:{{.}}</div> | ||||
| 								<div class="item" data-url="{{$.RepoLink}}/compare/{{EscapePound $.BaseBranch}}...{{$.BaseName}}/{{$.Repository.Name}}:{{EscapePound .}}">{{$BaseCompareName}}:{{.}}</div> | ||||
| 							{{end}} | ||||
| 						{{end}} | ||||
| 						{{if .OwnForkRepo}} | ||||
| 							{{range .OwnForkRepoBranches}} | ||||
| 								<div class="item" data-url="{{$.RepoLink}}/compare/{{EscapePound $.BaseBranch}}...{{$.OwnForkRepo.OwnerName}}/{{$.OwnForkRepo.Name}}:{{EscapePound .}}">{{$.OwnForkRepo.OwnerName}}:{{.}}</div> | ||||
| 								<div class="item" data-url="{{$.RepoLink}}/compare/{{EscapePound $.BaseBranch}}...{{$.OwnForkRepo.OwnerName}}/{{$.OwnForkRepo.Name}}:{{EscapePound .}}">{{$OwnForkCompareName}}:{{.}}</div> | ||||
| 							{{end}} | ||||
| 						{{end}} | ||||
| 						{{if .RootRepo}} | ||||
| 							{{range .RootRepoBranches}} | ||||
| 								<div class="item" data-url="{{$.RepoLink}}/compare/{{EscapePound $.BaseBranch}}...{{$.RootRepo.OwnerName}}/{{$.RootRepo.Name}}:{{EscapePound .}}">{{$.RootRepo.OwnerName}}:{{.}}</div> | ||||
| 								<div class="item" data-url="{{$.RepoLink}}/compare/{{EscapePound $.BaseBranch}}...{{$.RootRepo.OwnerName}}/{{$.RootRepo.Name}}:{{EscapePound .}}">{{$RootRepoCompareName}}:{{.}}</div> | ||||
| 							{{end}} | ||||
| 						{{end}} | ||||
| 					</div> | ||||
|  |  | |||
|  | @ -64,7 +64,7 @@ | |||
| 			{{if eq $n 0}} | ||||
| 				{{if and .CanCompareOrPull .IsViewBranch (not .Repository.IsArchived)}} | ||||
| 					<div class="fitted item mx-0"> | ||||
| 						<a href="{{.BaseRepo.Link}}/compare/{{.BaseRepo.DefaultBranch | EscapePound}}...{{if ne .Repository.Owner.Name .BaseRepo.Owner.Name}}{{.Repository.Owner.Name}}:{{end}}{{.BranchName | EscapePound}}"> | ||||
| 						<a href="{{.BaseRepo.Link}}/compare/{{.BaseRepo.DefaultBranch | EscapePound}}...{{if ne .Repository.Owner.Name .BaseRepo.Owner.Name}}{{.Repository.Owner.Name}}{{if .BaseRepo.IsFork}}/{{.Repository.Name}}{{end}}:{{end}}{{.BranchName | EscapePound}}"> | ||||
| 							<button id="new-pull-request" class="ui compact basic button">{{if .PullRequestCtx.Allowed}}{{.i18n.Tr "repo.pulls.compare_changes"}}{{else}}{{.i18n.Tr "action.compare_branch"}}{{end}}</button> | ||||
| 						</a> | ||||
| 					</div> | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue