# encoding: utf-8 module Github class Search < API include Github::Utils::Url # Search issues # # Find issues by state and keyword. # # = Parameters # :state - open or closed. # :keyword - search term # # = Examples # github = Github.new # github.search.issues 'owner', 'repo-name', 'open','api' # github.search.issues owner: 'owner', repo: 'repo-name', state: 'open', keyword: 'api' # def issues(*args) required = ['owner', 'repo', 'state', 'keyword'] arguments(args, :required => required) get_request("/legacy/issues/search/#{owner}/#{repo}/#{state}/#{escape(keyword)}", arguments.params) end # Search repositories # # Find repositories by keyword. # # = Parameters # :keyword - search term # # = Examples # github = Github.new # github.search.repos 'api' # github.search.repos keyword: 'api' # def repos(*args) arguments(args, :required => [:keyword]) get_request("/legacy/repos/search/#{escape(keyword)}", arguments.params) end alias :repositories :repos # Search users # # Find users by keyword. # # = Parameters # :keyword - search term # # = Examples # github = Github.new # github.search.users keyword: 'wycats' # def users(*args) arguments(args, :required => [:keyword]) get_request("/legacy/user/search/#{escape(keyword)}", arguments.params) end # Search email # # This API call is added for compatibility reasons only. There’s no # guarantee that full email searches will always be available. # # = Parameters # :keyword - search term # # = Examples # github = Github.new # github.search.email email: 'wycats' # def email(*args) arguments(args) do assert_required %w[ email ] end params = arguments.params get_request("/legacy/user/email/#{params.delete('email')}", params) end end # Search end # Github