| 103 | } |
| 104 | |
| 105 | func (s searcher) Commits(query Query) (CommitsResult, error) { |
| 106 | result := CommitsResult{} |
| 107 | |
| 108 | numItemsToRetrieve := query.Limit |
| 109 | query.Limit = min(numItemsToRetrieve, maxPerPage) |
| 110 | query.Page = 1 |
| 111 | |
| 112 | for numItemsToRetrieve > 0 { |
| 113 | page := CommitsResult{} |
| 114 | link, err := s.search(query, &page) |
| 115 | if err != nil { |
| 116 | return result, err |
| 117 | } |
| 118 | |
| 119 | numItemsToAdd := min(len(page.Items), numItemsToRetrieve) |
| 120 | result.IncompleteResults = page.IncompleteResults |
| 121 | result.Total = page.Total |
| 122 | result.Items = append(result.Items, page.Items[:numItemsToAdd]...) |
| 123 | numItemsToRetrieve = numItemsToRetrieve - numItemsToAdd |
| 124 | |
| 125 | query.Page = nextPage(link) |
| 126 | if query.Page == 0 { |
| 127 | break |
| 128 | } |
| 129 | } |
| 130 | return result, nil |
| 131 | } |
| 132 | |
| 133 | func (s searcher) Repositories(query Query) (RepositoriesResult, error) { |
| 134 | result := RepositoriesResult{} |