2019-04-17 19:06:35 +03:00
// Copyright 2019 The Gitea Authors. All rights reserved.
2022-11-27 21:20:29 +03:00
// SPDX-License-Identifier: MIT
2019-04-17 19:06:35 +03:00
package repo
import (
"net/http"
2024-02-27 10:12:22 +03:00
"code.gitea.io/gitea/services/context"
2021-11-24 10:56:24 +03:00
files_service "code.gitea.io/gitea/services/repository/files"
2019-04-17 19:06:35 +03:00
)
// 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"
2019-12-20 20:07:12 +03:00
// "400":
// "$ref": "#/responses/error"
2023-09-13 05:37:54 +03:00
// "404":
// "$ref": "#/responses/notFound"
2019-04-17 19:06:35 +03:00
sha := ctx . Params ( "sha" )
if len ( sha ) == 0 {
ctx . Error ( http . StatusBadRequest , "" , "sha not provided" )
return
}
2022-04-21 18:17:57 +03:00
if blob , err := files_service . GetBlobBySHA ( ctx , ctx . Repo . Repository , ctx . Repo . GitRepo , sha ) ; err != nil {
2019-04-17 19:06:35 +03:00
ctx . Error ( http . StatusBadRequest , "" , err )
} else {
ctx . JSON ( http . StatusOK , blob )
}
}