mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	Only view branch or tag if it match refType requested. (#8899)
* only view branch or tag if it match refName. * remove pointer in method
This commit is contained in:
		
				
					committed by
					
						
						Lunny Xiao
					
				
			
			
				
	
			
			
			
						parent
						
							273a24f226
						
					
				
				
					commit
					8d9e625f83
				
			@@ -518,6 +518,22 @@ func RepoRef() macaron.Handler {
 | 
			
		||||
	return RepoRefByType(RepoRefBranch)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RefTypeIncludesBranches returns true if ref type can be a branch
 | 
			
		||||
func (rt RepoRefType) RefTypeIncludesBranches() bool {
 | 
			
		||||
	if rt == RepoRefLegacy || rt == RepoRefAny || rt == RepoRefBranch {
 | 
			
		||||
		return true
 | 
			
		||||
	}
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// RefTypeIncludesTags returns true if ref type can be a tag
 | 
			
		||||
func (rt RepoRefType) RefTypeIncludesTags() bool {
 | 
			
		||||
	if rt == RepoRefLegacy || rt == RepoRefAny || rt == RepoRefTag {
 | 
			
		||||
		return true
 | 
			
		||||
	}
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getRefNameFromPath(ctx *Context, path string, isExist func(string) bool) string {
 | 
			
		||||
	refName := ""
 | 
			
		||||
	parts := strings.Split(path, "/")
 | 
			
		||||
@@ -623,7 +639,7 @@ func RepoRefByType(refType RepoRefType) macaron.Handler {
 | 
			
		||||
		} else {
 | 
			
		||||
			refName = getRefName(ctx, refType)
 | 
			
		||||
			ctx.Repo.BranchName = refName
 | 
			
		||||
			if ctx.Repo.GitRepo.IsBranchExist(refName) {
 | 
			
		||||
			if refType.RefTypeIncludesBranches() && ctx.Repo.GitRepo.IsBranchExist(refName) {
 | 
			
		||||
				ctx.Repo.IsViewBranch = true
 | 
			
		||||
 | 
			
		||||
				ctx.Repo.Commit, err = ctx.Repo.GitRepo.GetBranchCommit(refName)
 | 
			
		||||
@@ -633,7 +649,7 @@ func RepoRefByType(refType RepoRefType) macaron.Handler {
 | 
			
		||||
				}
 | 
			
		||||
				ctx.Repo.CommitID = ctx.Repo.Commit.ID.String()
 | 
			
		||||
 | 
			
		||||
			} else if ctx.Repo.GitRepo.IsTagExist(refName) {
 | 
			
		||||
			} else if refType.RefTypeIncludesTags() && ctx.Repo.GitRepo.IsTagExist(refName) {
 | 
			
		||||
				ctx.Repo.IsViewTag = true
 | 
			
		||||
				ctx.Repo.Commit, err = ctx.Repo.GitRepo.GetTagCommit(refName)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user