mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	Add raw blob endpoint to get objects by SHA ID (#5334)
* Add raw blob endpoint This should make it possible to download raw blobs directly from /:repo/:username/raw/blob/:sha1 URLs. * fix: Make it work * As an SHA-ID is no path getRefNameFromPath can't be used to verify file specifying parameter * added relevant change in go-gitea/git #132 Signed-off-by: Berengar W. Lehr <Berengar.Lehr@kompetenztest.de> * Update Gopkg.lock Can't update all vendors due to errors Signed-off-by: Berengar W. Lehr <Berengar.Lehr@kompetenztest.de> * style: Add Gitea copyright header * feat: Added integration test for /repo/u/r/raw/blob * fix: correct year in copyright header
This commit is contained in:
		
				
					committed by
					
						
						techknowlogick
					
				
			
			
				
	
			
			
			
						parent
						
							4651ba06c1
						
					
				
				
					commit
					e08c7e521b
				
			@@ -484,6 +484,8 @@ const (
 | 
			
		||||
	RepoRefTag
 | 
			
		||||
	// RepoRefCommit commit
 | 
			
		||||
	RepoRefCommit
 | 
			
		||||
	// RepoRefBlob blob
 | 
			
		||||
	RepoRefBlob
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// RepoRef handles repository reference names when the ref name is not
 | 
			
		||||
@@ -519,6 +521,9 @@ func getRefName(ctx *Context, pathType RepoRefType) string {
 | 
			
		||||
		if refName := getRefName(ctx, RepoRefCommit); len(refName) > 0 {
 | 
			
		||||
			return refName
 | 
			
		||||
		}
 | 
			
		||||
		if refName := getRefName(ctx, RepoRefBlob); len(refName) > 0 {
 | 
			
		||||
			return refName
 | 
			
		||||
		}
 | 
			
		||||
		ctx.Repo.TreePath = path
 | 
			
		||||
		return ctx.Repo.Repository.DefaultBranch
 | 
			
		||||
	case RepoRefBranch:
 | 
			
		||||
@@ -531,6 +536,12 @@ func getRefName(ctx *Context, pathType RepoRefType) string {
 | 
			
		||||
			ctx.Repo.TreePath = strings.Join(parts[1:], "/")
 | 
			
		||||
			return parts[0]
 | 
			
		||||
		}
 | 
			
		||||
	case RepoRefBlob:
 | 
			
		||||
		_, err := ctx.Repo.GitRepo.GetBlob(path)
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			return ""
 | 
			
		||||
		}
 | 
			
		||||
		return path
 | 
			
		||||
	default:
 | 
			
		||||
		log.Error(4, "Unrecognized path type: %v", path)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user