From 883a27b14e9ee234d1693f17e0cc2b18f007f56d Mon Sep 17 00:00:00 2001 From: Norwin Date: Fri, 8 Apr 2022 03:44:16 +0800 Subject: [PATCH] Fetch all items where needed. (#475) Disable pagination in all places where we need all items. Ideally we'd do multiple paginated requests until the needed items are local, but this is blocked by https://gitea.com/gitea/go-sdk/pulls/473. So this is a stopgap to get correct behaviour. Fixes #464 Co-authored-by: Norwin Co-authored-by: 6543 <6543@obermui.de> Reviewed-on: https://gitea.com/gitea/tea/pulls/475 Reviewed-by: Lunny Xiao Reviewed-by: 6543 <6543@obermui.de> Co-authored-by: Norwin Co-committed-by: Norwin --- cmd/pulls.go | 4 +++- cmd/releases/list.go | 4 +++- modules/interact/issue_create.go | 4 +++- modules/task/labels.go | 4 +++- modules/task/login_create.go | 4 +++- modules/task/login_ssh.go | 4 +++- 6 files changed, 18 insertions(+), 6 deletions(-) diff --git a/cmd/pulls.go b/cmd/pulls.go index 76dd842..a92aa82 100644 --- a/cmd/pulls.go +++ b/cmd/pulls.go @@ -71,7 +71,9 @@ func runPullDetail(cmd *cli.Context, index string) error { return err } - reviews, _, err := client.ListPullReviews(ctx.Owner, ctx.Repo, idx, gitea.ListPullReviewsOptions{}) + reviews, _, err := client.ListPullReviews(ctx.Owner, ctx.Repo, idx, gitea.ListPullReviewsOptions{ + ListOptions: gitea.ListOptions{Page: -1}, + }) if err != nil { fmt.Printf("error while loading reviews: %v\n", err) } diff --git a/cmd/releases/list.go b/cmd/releases/list.go index 859d619..c5e80d3 100644 --- a/cmd/releases/list.go +++ b/cmd/releases/list.go @@ -45,7 +45,9 @@ func RunReleasesList(cmd *cli.Context) error { } func getReleaseByTag(owner, repo, tag string, client *gitea.Client) (*gitea.Release, error) { - rl, _, err := client.ListReleases(owner, repo, gitea.ListReleasesOptions{}) + rl, _, err := client.ListReleases(owner, repo, gitea.ListReleasesOptions{ + ListOptions: gitea.ListOptions{Page: -1}, + }) if err != nil { return nil, err } diff --git a/modules/interact/issue_create.go b/modules/interact/issue_create.go index ba1e0cb..fabf2a0 100644 --- a/modules/interact/issue_create.go +++ b/modules/interact/issue_create.go @@ -148,7 +148,9 @@ func fetchIssueSelectables(login *config.Login, owner, repo string, done chan is r.MilestoneList[i] = m.Title } - labels, _, err := c.ListRepoLabels(owner, repo, gitea.ListLabelsOptions{}) + labels, _, err := c.ListRepoLabels(owner, repo, gitea.ListLabelsOptions{ + ListOptions: gitea.ListOptions{Page: -1}, + }) if err != nil { r.Err = err done <- r diff --git a/modules/task/labels.go b/modules/task/labels.go index 608dca1..7d24cfc 100644 --- a/modules/task/labels.go +++ b/modules/task/labels.go @@ -12,7 +12,9 @@ import ( // ResolveLabelNames returns a list of label IDs for a given list of label names func ResolveLabelNames(client *gitea.Client, owner, repo string, labelNames []string) ([]int64, error) { labelIDs := make([]int64, len(labelNames)) - labels, _, err := client.ListRepoLabels(owner, repo, gitea.ListLabelsOptions{}) + labels, _, err := client.ListRepoLabels(owner, repo, gitea.ListLabelsOptions{ + ListOptions: gitea.ListOptions{Page: -1}, + }) if err != nil { return nil, err } diff --git a/modules/task/login_create.go b/modules/task/login_create.go index f1d5bec..7d0e707 100644 --- a/modules/task/login_create.go +++ b/modules/task/login_create.go @@ -101,7 +101,9 @@ func CreateLogin(name, token, user, passwd, sshKey, giteaURL string, insecure bo func generateToken(login config.Login, user, pass string) (string, error) { client := login.Client(gitea.SetBasicAuth(user, pass)) - tl, _, err := client.ListAccessTokens(gitea.ListAccessTokensOptions{}) + tl, _, err := client.ListAccessTokens(gitea.ListAccessTokensOptions{ + ListOptions: gitea.ListOptions{Page: -1}, + }) if err != nil { return "", err } diff --git a/modules/task/login_ssh.go b/modules/task/login_ssh.go index 852bb92..5b7aded 100644 --- a/modules/task/login_ssh.go +++ b/modules/task/login_ssh.go @@ -20,7 +20,9 @@ import ( // a matching private key in ~/.ssh/. If no match is found, path is empty. func findSSHKey(client *gitea.Client) (string, error) { // get keys registered on gitea instance - keys, _, err := client.ListMyPublicKeys(gitea.ListPublicKeysOptions{}) + keys, _, err := client.ListMyPublicKeys(gitea.ListPublicKeysOptions{ + ListOptions: gitea.ListOptions{Page: -1}, + }) if err != nil || len(keys) == 0 { return "", err }