Update Gitea SDK to v0.13.0 #49

Merged
6543 merged 1 commits from refs/pull/49/head into master 2020-09-22 21:38:12 +00:00

@ -30,7 +30,7 @@ func (ge *Gitea) Generate() (string, []Entry, error) {
entries := make([]Entry, 0) entries := make([]Entry, 0)
milestoneID, err := ge.milestoneID(client) milestone, _, err := client.GetMilestoneByName(ge.Owner, ge.Repo, ge.Milestone)
if err != nil { if err != nil {
return "", nil, err return "", nil, err
} }
@ -40,14 +40,10 @@ func (ge *Gitea) Generate() (string, []Entry, error) {
from = "issues" from = "issues"
} }
tagURL := getGiteaTagURL(client, ge.BaseURL, ge.Owner, ge.Repo, ge.Milestone, from, milestoneID) tagURL := getGiteaTagURL(client, ge.BaseURL, ge.Owner, ge.Repo, ge.Milestone, from, milestone.ID)
p := 1 perPage := ge.perPage(client)
// https://github.com/go-gitea/gitea/blob/d92781bf941972761177ac9e07441f8893758fd3/models/repo.go#L63 for p := 1; ; p++ {
// https://github.com/go-gitea/gitea/blob/e3c3b33ea7a5a223e22688c3f0eb2d3dab9f991c/models/pull_list.go#L104
// FIXME Gitea has this hard-coded at 40
perPage := 40
for {
options := gitea.ListIssueOption{ options := gitea.ListIssueOption{
ListOptions: gitea.ListOptions{ ListOptions: gitea.ListOptions{
Page: p, Page: p,
@ -80,8 +76,6 @@ func (ge *Gitea) Generate() (string, []Entry, error) {
if len(issues) != perPage { if len(issues) != perPage {
break break
} }
p++
} }
return tagURL, entries, nil return tagURL, entries, nil
@ -121,26 +115,24 @@ func (ge *Gitea) Contributors() (ContributorList, error) {
contributorsMap := make(map[string]bool) contributorsMap := make(map[string]bool)
milestoneID, err := ge.milestoneID(client) milestone, _, err := client.GetMilestoneByName(ge.Owner, ge.Repo, ge.Milestone)
if err != nil { if err != nil {
return nil, err return nil, err
} }
p := 1 perPage := ge.perPage(client)
perPage := 100 for p := 1; ; p++ {
for {
results, _, err := client.ListRepoPullRequests(ge.Owner, ge.Repo, gitea.ListPullRequestsOptions{ results, _, err := client.ListRepoPullRequests(ge.Owner, ge.Repo, gitea.ListPullRequestsOptions{
ListOptions: gitea.ListOptions{ ListOptions: gitea.ListOptions{
Page: p, Page: p,
PageSize: perPage, PageSize: perPage,
}, },
State: "closed", State: "closed",
Milestone: milestoneID, Milestone: milestone.ID,
}) })
if err != nil { if err != nil {
return nil, err return nil, err
} }
p++
for _, pr := range results { for _, pr := range results {
if pr != nil && pr.HasMerged { if pr != nil && pr.HasMerged {
@ -164,17 +156,15 @@ func (ge *Gitea) Contributors() (ContributorList, error) {
return contributors, nil return contributors, nil
} }
func (ge *Gitea) milestoneID(client *gitea.Client) (int64, error) { func (ge *Gitea) perPage(client *gitea.Client) int {
milestones, _, err := client.ListRepoMilestones(ge.Owner, ge.Repo, gitea.ListMilestoneOption{State: gitea.StateAll}) // set low value so it will work in most cases
perPage := 10
if client.CheckServerVersionConstraint(">=1.13.0") == nil {
conf, _, err := client.GetGlobalAPISettings()
if err != nil { if err != nil {
return 0, err return perPage
} }
return conf.MaxResponseItems
for _, ms := range milestones {
if ms.Title == ge.Milestone {
return ms.ID, nil
} }
} return perPage
return 0, fmt.Errorf("no milestone found for %s", ge.Milestone)
} }