Skip to content

Commit 06ab3a2

Browse files
authored
feat: Add advanced_search parameter to SearchOptions (google#3868)
1 parent 95c2a13 commit 06ab3a2

4 files changed

Lines changed: 57 additions & 0 deletions

File tree

github/github-accessors.go

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

github/github-accessors_test.go

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

github/search.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ type SearchOptions struct {
5454
// Whether to retrieve text match metadata with a query
5555
TextMatch bool `url:"-"`
5656

57+
// Whether to enable advanced search for issues
58+
AdvancedSearch *bool `url:"advanced_search,omitempty"`
59+
5760
ListOptions
5861
}
5962

github/search_test.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,41 @@ func TestSearchService_Issues(t *testing.T) {
265265
}
266266
}
267267

268+
func TestSearchService_Issues_advancedSearch(t *testing.T) {
269+
t.Parallel()
270+
client, mux, _ := setup(t)
271+
272+
mux.HandleFunc("/search/issues", func(w http.ResponseWriter, r *http.Request) {
273+
testMethod(t, r, "GET")
274+
testFormValues(t, r, values{
275+
"q": "blah",
276+
"sort": "forks",
277+
"order": "desc",
278+
"page": "2",
279+
"per_page": "2",
280+
"advanced_search": "true",
281+
})
282+
283+
fmt.Fprint(w, `{"total_count": 4, "incomplete_results": true, "items": [{"number":1},{"number":2}]}`)
284+
})
285+
286+
opts := &SearchOptions{Sort: "forks", Order: "desc", ListOptions: ListOptions{Page: 2, PerPage: 2}, AdvancedSearch: Ptr(true)}
287+
ctx := t.Context()
288+
result, _, err := client.Search.Issues(ctx, "blah", opts)
289+
if err != nil {
290+
t.Errorf("Search.Issues_advancedSearch returned error: %v", err)
291+
}
292+
293+
want := &IssuesSearchResult{
294+
Total: Ptr(4),
295+
IncompleteResults: Ptr(true),
296+
Issues: []*Issue{{Number: Ptr(1)}, {Number: Ptr(2)}},
297+
}
298+
if !cmp.Equal(result, want) {
299+
t.Errorf("Search.Issues_advancedSearch returned %+v, want %+v", result, want)
300+
}
301+
}
302+
268303
func TestSearchService_Issues_coverage(t *testing.T) {
269304
t.Parallel()
270305
client, _, _ := setup(t)

0 commit comments

Comments
 (0)