diff options
author | zeripath <art27@cantab.net> | 2021-02-09 00:15:47 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-09 01:15:47 +0100 |
commit | b337c606d3669b3e2f9b805d6c74b593d6271414 (patch) | |
tree | b13f8541258dd11a296169c69f897407bdcf70bf | |
parent | 758627cf8f3f32681bf792b3a6b9f74572210d89 (diff) | |
download | gitea-b337c606d3669b3e2f9b805d6c74b593d6271414.tar.gz gitea-b337c606d3669b3e2f9b805d6c74b593d6271414.zip |
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>
-rw-r--r-- | routers/api/v1/repo/file.go | 22 | ||||
-rw-r--r-- | templates/swagger/v1_json.tmpl | 6 |
2 files changed, 27 insertions, 1 deletions
diff --git a/routers/api/v1/repo/file.go b/routers/api/v1/repo/file.go index 2bd57f1460..37e02874b4 100644 --- a/routers/api/v1/repo/file.go +++ b/routers/api/v1/repo/file.go @@ -43,6 +43,11 @@ func GetRawFile(ctx *context.APIContext) { // description: filepath of the file to get // type: string // 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: // 200: // description: success @@ -54,7 +59,22 @@ func GetRawFile(ctx *context.APIContext) { 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 git.IsErrNotExist(err) { ctx.NotFound() diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl index 45f396f283..28aa617799 100644 --- a/templates/swagger/v1_json.tmpl +++ b/templates/swagger/v1_json.tmpl @@ -7845,6 +7845,12 @@ "name": "filepath", "in": "path", "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": { |