diff options
author | 6543 <6543@obermui.de> | 2021-02-03 20:06:13 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-03 20:06:13 +0100 |
commit | 0d1444751f755c624ffb4c56cb0020ce7a083c77 (patch) | |
tree | c00ab7d4a1b120f4fb4a70db134e5d712bef91ed /modules/repository/branch.go | |
parent | c295a27d4a8ef9a3a75280306e1ed94daa3b001d (diff) | |
download | gitea-0d1444751f755c624ffb4c56cb0020ce7a083c77.tar.gz gitea-0d1444751f755c624ffb4c56cb0020ce7a083c77.zip |
[API] Add pagination to ListBranches (#14524)
* make PaginateUserSlice generic -> PaginateSlice
* Add pagination to ListBranches
* add skip, limit to Repository.GetBranches()
* Move routers/api/v1/utils/utils PaginateSlice -> modules/util/paginate.go
* repo_module.GetBranches paginate
* fix & rename & more logging
* better description
Co-authored-by: zeripath <art27@cantab.net>
Co-authored-by: a1012112796 <1012112796@qq.com>
Diffstat (limited to 'modules/repository/branch.go')
-rw-r--r-- | modules/repository/branch.go | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/modules/repository/branch.go b/modules/repository/branch.go index d369a200b0..275bae91e3 100644 --- a/modules/repository/branch.go +++ b/modules/repository/branch.go @@ -13,6 +13,9 @@ import ( // GetBranch returns a branch by its name func GetBranch(repo *models.Repository, branch string) (*git.Branch, error) { + if len(branch) == 0 { + return nil, fmt.Errorf("GetBranch: empty string for branch") + } gitRepo, err := git.OpenRepository(repo.RepoPath()) if err != nil { return nil, err @@ -22,9 +25,10 @@ func GetBranch(repo *models.Repository, branch string) (*git.Branch, error) { return gitRepo.GetBranch(branch) } -// GetBranches returns all the branches of a repository -func GetBranches(repo *models.Repository) ([]*git.Branch, error) { - return git.GetBranchesByPath(repo.RepoPath()) +// GetBranches returns branches from the repository, skipping skip initial branches and +// returning at most limit branches, or all branches if limit is 0. +func GetBranches(repo *models.Repository, skip, limit int) ([]*git.Branch, int, error) { + return git.GetBranchesByPath(repo.RepoPath(), skip, limit) } // checkBranchName validates branch name with existing repository branches @@ -35,7 +39,7 @@ func checkBranchName(repo *models.Repository, name string) error { } defer gitRepo.Close() - branches, err := GetBranches(repo) + branches, _, err := GetBranches(repo, 0, 0) if err != nil { return err } |