improve the releases api paging (#5831)
* improve the releases api paging * add max limit on API paging
This commit is contained in:
parent
9a137faaaf
commit
892bfd0b19
5 changed files with 29 additions and 2 deletions
|
@ -7,6 +7,7 @@ package repo
|
|||
import (
|
||||
"code.gitea.io/gitea/models"
|
||||
"code.gitea.io/gitea/modules/context"
|
||||
"code.gitea.io/gitea/modules/setting"
|
||||
|
||||
api "code.gitea.io/sdk/gitea"
|
||||
)
|
||||
|
@ -55,6 +56,20 @@ func GetRelease(ctx *context.APIContext) {
|
|||
ctx.JSON(200, release.APIFormat())
|
||||
}
|
||||
|
||||
func getPagesInfo(ctx *context.APIContext) (int, int) {
|
||||
page := ctx.QueryInt("page")
|
||||
if page == 0 {
|
||||
page = 1
|
||||
}
|
||||
perPage := ctx.QueryInt("per_page")
|
||||
if perPage == 0 {
|
||||
perPage = setting.API.DefaultPagingNum
|
||||
} else if perPage > setting.API.MaxResponseItems {
|
||||
perPage = setting.API.MaxResponseItems
|
||||
}
|
||||
return page, perPage
|
||||
}
|
||||
|
||||
// ListReleases list a repository's releases
|
||||
func ListReleases(ctx *context.APIContext) {
|
||||
// swagger:operation GET /repos/{owner}/{repo}/releases repository repoListReleases
|
||||
|
@ -76,10 +91,11 @@ func ListReleases(ctx *context.APIContext) {
|
|||
// responses:
|
||||
// "200":
|
||||
// "$ref": "#/responses/ReleaseList"
|
||||
page, limit := getPagesInfo(ctx)
|
||||
releases, err := models.GetReleasesByRepoID(ctx.Repo.Repository.ID, models.FindReleasesOptions{
|
||||
IncludeDrafts: ctx.Repo.AccessMode >= models.AccessModeWrite,
|
||||
IncludeTags: false,
|
||||
}, 1, 2147483647)
|
||||
}, page, limit)
|
||||
if err != nil {
|
||||
ctx.Error(500, "GetReleasesByRepoID", err)
|
||||
return
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue