mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 19:45:25 +01:00 
			
		
		
		
	Most middleware throw a 404 in case something is not found e.g. a Repo that is not existing. But most API endpoints don't include the 404 response in their documentation. This PR changes this.
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2019 The Gitea Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package repo
 | |
| 
 | |
| import (
 | |
| 	"net/http"
 | |
| 
 | |
| 	"code.gitea.io/gitea/modules/context"
 | |
| 	files_service "code.gitea.io/gitea/services/repository/files"
 | |
| )
 | |
| 
 | |
| // GetBlob get the blob of a repository file.
 | |
| func GetBlob(ctx *context.APIContext) {
 | |
| 	// swagger:operation GET /repos/{owner}/{repo}/git/blobs/{sha} repository GetBlob
 | |
| 	// ---
 | |
| 	// summary: Gets the blob of a repository.
 | |
| 	// produces:
 | |
| 	// - application/json
 | |
| 	// parameters:
 | |
| 	// - name: owner
 | |
| 	//   in: path
 | |
| 	//   description: owner of the repo
 | |
| 	//   type: string
 | |
| 	//   required: true
 | |
| 	// - name: repo
 | |
| 	//   in: path
 | |
| 	//   description: name of the repo
 | |
| 	//   type: string
 | |
| 	//   required: true
 | |
| 	// - name: sha
 | |
| 	//   in: path
 | |
| 	//   description: sha of the commit
 | |
| 	//   type: string
 | |
| 	//   required: true
 | |
| 	// responses:
 | |
| 	//   "200":
 | |
| 	//     "$ref": "#/responses/GitBlobResponse"
 | |
| 	//   "400":
 | |
| 	//     "$ref": "#/responses/error"
 | |
| 	//   "404":
 | |
| 	//     "$ref": "#/responses/notFound"
 | |
| 
 | |
| 	sha := ctx.Params("sha")
 | |
| 	if len(sha) == 0 {
 | |
| 		ctx.Error(http.StatusBadRequest, "", "sha not provided")
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	if blob, err := files_service.GetBlobBySHA(ctx, ctx.Repo.Repository, ctx.Repo.GitRepo, sha); err != nil {
 | |
| 		ctx.Error(http.StatusBadRequest, "", err)
 | |
| 	} else {
 | |
| 		ctx.JSON(http.StatusOK, blob)
 | |
| 	}
 | |
| }
 |