mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 05:18:25 +00:00 
			
		
		
		
	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:
		@@ -12,11 +12,32 @@
 | 
				
			|||||||
				{{.i18n.Tr "action.compare_commits_general"}}
 | 
									{{.i18n.Tr "action.compare_commits_general"}}
 | 
				
			||||||
			{{ end }}
 | 
								{{ end }}
 | 
				
			||||||
		</h2>
 | 
							</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">
 | 
							<div class="ui segment choose branch">
 | 
				
			||||||
			{{svg "octicon-git-compare"}}
 | 
								{{svg "octicon-git-compare"}}
 | 
				
			||||||
			<div class="ui floating filter dropdown" data-no-results="{{.i18n.Tr "repo.pulls.no_results"}}">
 | 
								<div class="ui floating filter dropdown" data-no-results="{{.i18n.Tr "repo.pulls.no_results"}}">
 | 
				
			||||||
				<div class="ui basic small button">
 | 
									<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"}}
 | 
										{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="menu">
 | 
									<div class="menu">
 | 
				
			||||||
@@ -26,21 +47,21 @@
 | 
				
			|||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="scrolling menu">
 | 
										<div class="scrolling menu">
 | 
				
			||||||
						{{range .Branches}}
 | 
											{{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}}
 | 
											{{end}}
 | 
				
			||||||
						{{if not .PullRequestCtx.SameRepo}}
 | 
											{{if not .PullRequestCtx.SameRepo}}
 | 
				
			||||||
							{{range .HeadBranches}}
 | 
												{{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}}
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
						{{if .OwnForkRepo}}
 | 
											{{if .OwnForkRepo}}
 | 
				
			||||||
							{{range .OwnForkRepoBranches}}
 | 
												{{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}}
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
						{{if .RootRepo}}
 | 
											{{if .RootRepo}}
 | 
				
			||||||
							{{range .RootRepoBranches}}
 | 
												{{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}}
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
@@ -49,7 +70,7 @@
 | 
				
			|||||||
			...
 | 
								...
 | 
				
			||||||
			<div class="ui floating filter dropdown">
 | 
								<div class="ui floating filter dropdown">
 | 
				
			||||||
				<div class="ui basic small button">
 | 
									<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"}}
 | 
										{{svg "octicon-triangle-down" 14 "dropdown icon"}}
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="menu">
 | 
									<div class="menu">
 | 
				
			||||||
@@ -59,21 +80,21 @@
 | 
				
			|||||||
					</div>
 | 
										</div>
 | 
				
			||||||
					<div class="scrolling menu">
 | 
										<div class="scrolling menu">
 | 
				
			||||||
						{{range .HeadBranches}}
 | 
											{{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}}
 | 
											{{end}}
 | 
				
			||||||
						{{if not .PullRequestCtx.SameRepo}}
 | 
											{{if not .PullRequestCtx.SameRepo}}
 | 
				
			||||||
							{{range .Branches}}
 | 
												{{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}}
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
						{{if .OwnForkRepo}}
 | 
											{{if .OwnForkRepo}}
 | 
				
			||||||
							{{range .OwnForkRepoBranches}}
 | 
												{{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}}
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
						{{if .RootRepo}}
 | 
											{{if .RootRepo}}
 | 
				
			||||||
							{{range .RootRepoBranches}}
 | 
												{{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}}
 | 
				
			||||||
						{{end}}
 | 
											{{end}}
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -64,7 +64,7 @@
 | 
				
			|||||||
			{{if eq $n 0}}
 | 
								{{if eq $n 0}}
 | 
				
			||||||
				{{if and .CanCompareOrPull .IsViewBranch (not .Repository.IsArchived)}}
 | 
									{{if and .CanCompareOrPull .IsViewBranch (not .Repository.IsArchived)}}
 | 
				
			||||||
					<div class="fitted item mx-0">
 | 
										<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>
 | 
												<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>
 | 
											</a>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user