Add support for ref parameter to get raw file API (#14602)

Fix #14597

Signed-off-by: Andrew Thornton <art27@cantab.net>

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
tokarchuk/v1.17
zeripath 4 years ago committed by GitHub
parent 758627cf8f
commit b337c606d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 22
      routers/api/v1/repo/file.go
  2. 6
      templates/swagger/v1_json.tmpl

@ -43,6 +43,11 @@ func GetRawFile(ctx *context.APIContext) {
// description: filepath of the file to get // description: filepath of the file to get
// type: string // type: string
// required: true // required: true
// - name: ref
// in: query
// description: "The name of the commit/branch/tag. Default the repository’s default branch (usually master)"
// type: string
// required: false
// responses: // responses:
// 200: // 200:
// description: success // description: success
@ -54,7 +59,22 @@ func GetRawFile(ctx *context.APIContext) {
return return
} }
blob, err := ctx.Repo.Commit.GetBlobByPath(ctx.Repo.TreePath) commit := ctx.Repo.Commit
if ref := ctx.QueryTrim("ref"); len(ref) > 0 {
var err error
commit, err = ctx.Repo.GitRepo.GetCommit(ref)
if err != nil {
if git.IsErrNotExist(err) {
ctx.NotFound()
} else {
ctx.Error(http.StatusInternalServerError, "GetBlobByPath", err)
}
return
}
}
blob, err := commit.GetBlobByPath(ctx.Repo.TreePath)
if err != nil { if err != nil {
if git.IsErrNotExist(err) { if git.IsErrNotExist(err) {
ctx.NotFound() ctx.NotFound()

@ -7845,6 +7845,12 @@
"name": "filepath", "name": "filepath",
"in": "path", "in": "path",
"required": true "required": true
},
{
"type": "string",
"description": "The name of the commit/branch/tag. Default the repository’s default branch (usually master)",
"name": "ref",
"in": "query"
} }
], ],
"responses": { "responses": {

Loading…
Cancel
Save