Use Values.Set over Values.Add in SearchService.search.
Use Values.Set over Values.Add in SearchService.search.

params is the result of calling
"github.com/google/go-querystring/query".Values function on opt, where
type of opt is SearchOptions.

SearchOptions struct does not contain any fields with struct tag value
`url:"q"`. As a result, it's guaranteed that there will never be a "q"
entry in params by the time params.Add("q", query) is called.

Therefore, it's sufficient to use params.Set("q", query) instead.
Prefer to do that because it's simpler, easier to reason about, more
readable. It's clear that this is the only place that controls the "q"
query parameter, and there will not be multiple copies of it (which
would not be intended).

google/go-github