class KnifeGithubSearch::GithubSearch
Public Instance Methods
github_search_repos(query, request = {})
click to toggle source
# File lib/chef/knife/github_search.rb, line 74 def github_search_repos(query, request = {}) # once the new search function is available, we can use these params request['sort'] = 'stars' request['order'] = 'desc' request['response'] = 'json' request_arr = [] request.sort.each { |elem| request_arr << elem[0].to_s + '=' + CGI.escape(elem[1].to_s).gsub('+', '%20').gsub(' ','%20') } data = request_arr.join('&') params = {} params[:url] = @github_url + "/api/" + @github_api_version + "/legacy/repos/search/" + query params[:action] = "GET" params[:token] = get_github_token params[:request_uri] = "?#{data}" connection.request(params) end
run()
click to toggle source
# File lib/chef/knife/github_search.rb, line 41 def run # validate base options from base module. validate_base_options # Display information if debug mode is on. display_debug_info # Get the name_args from the command line query = name_args.join(' ') if query.nil? || query.empty? Chef::Log.error("Please specify a search query") exit 1 end result = github_search_repos(query) if config[:link] columns = [ 'score,Score', 'name,Name', "url,URL" ] else columns = [ 'score,Score', 'name,Name', 'description,Description' ] end if result['repositories'].nil? || result['repositories'].empty? Chef::Log.error("No results when searching for: " + query) else items = [] result['repositories'].each { |n| items << [ "#{n['name']}", n ] } display_info(items, columns ) end end