Parcourir la source

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>
tags/v1.22.0-rc0
Michael Santos il y a 7 mois
Parent
révision
5283ce9650
Aucun compte lié à l'adresse e-mail de l'auteur

+ 17
- 1
routers/api/v1/repo/notes.go Voir le fichier

@@ -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

+ 17
- 1
routers/api/v1/repo/pull.go Voir le fichier

@@ -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
- 0
templates/swagger/v1_json.tmpl Voir le fichier

@@ -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": {

+ 5
- 0
tests/integration/api_pull_commits_test.go Voir le fichier

@@ -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

+ 2
- 0
tests/integration/api_repo_git_notes_test.go Voir le fichier

@@ -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)
})
}

Chargement…
Annuler
Enregistrer