MCPcopy Create free account
hub / github.com/cli/cli / Issues

Method Issues

pkg/search/searcher.go:162–195  ·  view source on GitHub ↗
(query Query)

Source from the content-addressed store, hash-verified

160}
161
162func (s searcher) Issues(query Query) (IssuesResult, error) {
163 result := IssuesResult{}
164
165 // Semantic and hybrid searches use a separate, smaller rate-limit bucket and
166 // are relevance-ranked, so bound fetching to a single page.
167 singlePage := query.IssueSearchType == "semantic" || query.IssueSearchType == "hybrid"
168
169 numItemsToRetrieve := query.Limit
170 query.Limit = min(numItemsToRetrieve, maxPerPage)
171 query.Page = 1
172 for numItemsToRetrieve > 0 {
173 page := IssuesResult{}
174 link, err := s.search(query, &page)
175 if err != nil {
176 return result, err
177 }
178
179 numItemsToAdd := min(len(page.Items), numItemsToRetrieve)
180 result.IncompleteResults = page.IncompleteResults
181 result.Total = page.Total
182 result.Items = append(result.Items, page.Items[:numItemsToAdd]...)
183 numItemsToRetrieve = numItemsToRetrieve - numItemsToAdd
184
185 if singlePage {
186 break
187 }
188
189 query.Page = nextPage(link)
190 if query.Page == 0 {
191 break
192 }
193 }
194 return result, nil
195}
196
197// search makes a single-page REST search request for code, commits, issues, prs, or repos,
198// and returns the link header from response for further pagination calls. If the link header

Callers

nothing calls this directly

Calls 3

searchMethod · 0.95
nextPageFunction · 0.85
minFunction · 0.70

Tested by

no test coverage detected