mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-24 10:13:10 +00:00
api: GetPullRequestCommits: return file list (#27483)
Fixes https://github.com/go-gitea/gitea/issues/27481 ---- Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
parent
65eea1d536
commit
5283ce9650
5 changed files with 65 additions and 2 deletions
|
@ -36,6 +36,14 @@ func GetNote(ctx *context.APIContext) {
|
|||
// description: a git ref or commit sha
|
||||
// type: string
|
||||
// required: true
|
||||
// - 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/Note"
|
||||
|
@ -78,7 +86,15 @@ func getNote(ctx *context.APIContext, identifier string) {
|
|||
return
|
||||
}
|
||||
|
||||
cmt, err := convert.ToCommit(ctx, ctx.Repo.Repository, ctx.Repo.GitRepo, note.Commit, nil, convert.ToCommitOptions{Stat: true})
|
||||
verification := ctx.FormString("verification") == "" || ctx.FormBool("verification")
|
||||
files := ctx.FormString("files") == "" || ctx.FormBool("files")
|
||||
|
||||
cmt, err := convert.ToCommit(ctx, ctx.Repo.Repository, ctx.Repo.GitRepo, note.Commit, nil,
|
||||
convert.ToCommitOptions{
|
||||
Stat: true,
|
||||
Verification: verification,
|
||||
Files: files,
|
||||
})
|
||||
if err != nil {
|
||||
ctx.Error(http.StatusInternalServerError, "ToCommit", err)
|
||||
return
|
||||
|
|
|
@ -1275,6 +1275,14 @@ func GetPullRequestCommits(ctx *context.APIContext) {
|
|||
// in: query
|
||||
// description: page size of results
|
||||
// type: integer
|
||||
// - 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/CommitList"
|
||||
|
@ -1328,9 +1336,17 @@ func GetPullRequestCommits(ctx *context.APIContext) {
|
|||
end = totalNumberOfCommits
|
||||
}
|
||||
|
||||
verification := ctx.FormString("verification") == "" || ctx.FormBool("verification")
|
||||
files := ctx.FormString("files") == "" || ctx.FormBool("files")
|
||||
|
||||
apiCommits := make([]*api.Commit, 0, end-start)
|
||||
for i := start; i < end; i++ {
|
||||
apiCommit, err := convert.ToCommit(ctx, ctx.Repo.Repository, baseGitRepo, commits[i], userCache, convert.ToCommitOptions{Stat: true})
|
||||
apiCommit, err := convert.ToCommit(ctx, ctx.Repo.Repository, baseGitRepo, commits[i], userCache,
|
||||
convert.ToCommitOptions{
|
||||
Stat: true,
|
||||
Verification: verification,
|
||||
Files: files,
|
||||
})
|
||||
if err != nil {
|
||||
ctx.ServerError("toCommit", err)
|
||||
return
|
||||
|
|
24
templates/swagger/v1_json.tmpl
generated
24
templates/swagger/v1_json.tmpl
generated
|
@ -5239,6 +5239,18 @@
|
|||
"name": "sha",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"description": "include verification for every commit (disable for speedup, default 'true')",
|
||||
"name": "verification",
|
||||
"in": "query"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"description": "include a list of affected files for every commit (disable for speedup, default 'true')",
|
||||
"name": "files",
|
||||
"in": "query"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
|
@ -10521,6 +10533,18 @@
|
|||
"description": "page size of results",
|
||||
"name": "limit",
|
||||
"in": "query"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"description": "include verification for every commit (disable for speedup, default 'true')",
|
||||
"name": "verification",
|
||||
"in": "query"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"description": "include a list of affected files for every commit (disable for speedup, default 'true')",
|
||||
"name": "files",
|
||||
"in": "query"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
|
|
|
@ -35,6 +35,11 @@ func TestAPIPullCommits(t *testing.T) {
|
|||
|
||||
assert.Equal(t, "5f22f7d0d95d614d25a5b68592adb345a4b5c7fd", commits[0].SHA)
|
||||
assert.Equal(t, "4a357436d925b5c974181ff12a994538ddc5a269", commits[1].SHA)
|
||||
|
||||
assert.NotEmpty(t, commits[0].Files)
|
||||
assert.NotEmpty(t, commits[1].Files)
|
||||
assert.NotNil(t, commits[0].RepoCommit.Verification)
|
||||
assert.NotNil(t, commits[1].RepoCommit.Verification)
|
||||
}
|
||||
|
||||
// TODO add tests for already merged PR and closed PR
|
||||
|
|
|
@ -37,5 +37,7 @@ func TestAPIReposGitNotes(t *testing.T) {
|
|||
var apiData api.Note
|
||||
DecodeJSON(t, resp, &apiData)
|
||||
assert.Equal(t, "This is a test note\n", apiData.Message)
|
||||
assert.NotEmpty(t, apiData.Commit.Files)
|
||||
assert.NotNil(t, apiData.Commit.RepoCommit.Verification)
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue