diff options
author | Matthew Walowski <mattwalowski@gmail.com> | 2023-05-09 18:34:07 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-10 09:34:07 +0800 |
commit | 5930ab5fdf7a970fcca3cd50b44cf1cacb615a54 (patch) | |
tree | ff7c5906653807d00db102e4849a781de2827864 /routers/api/v1/repo/commits.go | |
parent | 9a0652f0b2e1d56e1187a9442e7f053dad453703 (diff) | |
download | gitea-5930ab5fdf7a970fcca3cd50b44cf1cacb615a54.tar.gz gitea-5930ab5fdf7a970fcca3cd50b44cf1cacb615a54.zip |
Filter get single commit (#24613)
Pretty much the same thing as #24568 but for getting a single commit
instead of getting a list of commits
Diffstat (limited to 'routers/api/v1/repo/commits.go')
-rw-r--r-- | routers/api/v1/repo/commits.go | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/routers/api/v1/repo/commits.go b/routers/api/v1/repo/commits.go index 9b7de91a72..20d4405d6d 100644 --- a/routers/api/v1/repo/commits.go +++ b/routers/api/v1/repo/commits.go @@ -42,6 +42,18 @@ func GetSingleCommit(ctx *context.APIContext) { // description: a git ref or commit sha // type: string // required: true + // - name: stat + // in: query + // description: include diff stats for every commit (disable for speedup, default 'true') + // type: boolean + // - name: verification + // in: query + // description: include verification for every commit (disable for speedup, default 'true') + // type: boolean + // - name: files + // in: query + // description: include a list of affected files for every commit (disable for speedup, default 'true') + // type: boolean // responses: // "200": // "$ref": "#/responses/Commit" @@ -55,10 +67,11 @@ func GetSingleCommit(ctx *context.APIContext) { ctx.Error(http.StatusUnprocessableEntity, "no valid ref or sha", fmt.Sprintf("no valid ref or sha: %s", sha)) return } - getCommit(ctx, sha) + + getCommit(ctx, sha, convert.ParseCommitOptions(ctx)) } -func getCommit(ctx *context.APIContext, identifier string) { +func getCommit(ctx *context.APIContext, identifier string, toCommitOpts convert.ToCommitOptions) { commit, err := ctx.Repo.GitRepo.GetCommit(identifier) if err != nil { if git.IsErrNotExist(err) { @@ -69,7 +82,7 @@ func getCommit(ctx *context.APIContext, identifier string) { return } - json, err := convert.ToCommit(ctx, ctx.Repo.Repository, ctx.Repo.GitRepo, commit, nil, convert.ToCommitOptions{Stat: true}) + json, err := convert.ToCommit(ctx, ctx.Repo.Repository, ctx.Repo.GitRepo, commit, nil, toCommitOpts) if err != nil { ctx.Error(http.StatusInternalServerError, "toCommit", err) return @@ -240,24 +253,12 @@ func GetAllCommits(ctx *context.APIContext) { } pageCount := int(math.Ceil(float64(commitsCountTotal) / float64(listOptions.PageSize))) - userCache := make(map[string]*user_model.User) - apiCommits := make([]*api.Commit, len(commits)) - stat := ctx.FormString("stat") == "" || ctx.FormBool("stat") - verification := ctx.FormString("verification") == "" || ctx.FormBool("verification") - files := ctx.FormString("files") == "" || ctx.FormBool("files") - for i, commit := range commits { // Create json struct - apiCommits[i], err = convert.ToCommit(ctx, ctx.Repo.Repository, ctx.Repo.GitRepo, commit, userCache, - convert.ToCommitOptions{ - Stat: stat, - Verification: verification, - Files: files, - }) - + apiCommits[i], err = convert.ToCommit(ctx, ctx.Repo.Repository, ctx.Repo.GitRepo, commit, userCache, convert.ParseCommitOptions(ctx)) if err != nil { ctx.Error(http.StatusInternalServerError, "toCommit", err) return |