aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/test/utils/github_spec.rb4
-rw-r--r--Library/Homebrew/utils/github.rb43
2 files changed, 14 insertions, 33 deletions
diff --git a/Library/Homebrew/test/utils/github_spec.rb b/Library/Homebrew/test/utils/github_spec.rb
index 80f0ef786..0b19c8c9e 100644
--- a/Library/Homebrew/test/utils/github_spec.rb
+++ b/Library/Homebrew/test/utils/github_spec.rb
@@ -29,9 +29,9 @@ describe GitHub do
end
end
- describe "::issues_matching", :needs_network do
+ describe "::search_issues", :needs_network do
it "queries GitHub issues with the passed parameters" do
- results = subject.issues_matching("brew search", repo: "Homebrew/brew", author: "avetamine", is: "closed")
+ results = subject.search_issues("brew search", repo: "Homebrew/brew", author: "avetamine", is: "closed")
expect(results.count).to eq(1)
expect(results.first["title"]).to eq("brew search : 422 Unprocessable Entity")
end
diff --git a/Library/Homebrew/utils/github.rb b/Library/Homebrew/utils/github.rb
index 8096c7b9c..cff292598 100644
--- a/Library/Homebrew/utils/github.rb
+++ b/Library/Homebrew/utils/github.rb
@@ -227,7 +227,7 @@ module GitHub
end
end
- def issues_matching(query, qualifiers = {})
+ def search_issues(query, **qualifiers)
search("issues", query, **qualifiers)
end
@@ -235,38 +235,27 @@ module GitHub
open(url_to("repos", user, repo))
end
- def search_code(**params)
- search("code", **params)
- end
-
- def uri_escape(query)
- if URI.respond_to?(:encode_www_form_component)
- URI.encode_www_form_component(query)
- else
- require "erb"
- ERB::Util.url_encode(query)
- end
+ def search_code(**qualifiers)
+ search("code", **qualifiers)
end
def issues_for_formula(name, options = {})
tap = options[:tap] || CoreTap.instance
- issues_matching(name, state: "open", repo: "#{tap.user}/homebrew-#{tap.repo}")
+ search_issues(name, state: "open", repo: "#{tap.user}/homebrew-#{tap.repo}")
end
def print_pull_requests_matching(query)
return [] if ENV["HOMEBREW_NO_GITHUB_API"]
- open_or_closed_prs = issues_matching(query, type: "pr")
+ open_or_closed_prs = search_issues(query, type: "pr")
open_prs = open_or_closed_prs.select { |i| i["state"] == "open" }
- if !open_prs.empty?
+ prs = if !open_prs.empty?
puts "Open pull requests:"
- prs = open_prs
- elsif !open_or_closed_prs.empty?
- puts "Closed pull requests:"
- prs = open_or_closed_prs
+ open_prs
else
- return []
+ puts "Closed pull requests:" unless open_or_closed_prs.empty?
+ open_or_closed_prs
end
prs.each { |i| puts "#{i["title"]} (#{i["html_url"]})" }
@@ -280,19 +269,11 @@ module GitHub
def query_string(*main_params, **qualifiers)
params_list = main_params
- qualifiers.each do |key, value|
- if value.is_a? Array
- value.each { |v| params_list << format_parameter(key, v) }
- else
- params_list << format_parameter(key, value)
- end
+ params_list += qualifiers.flat_map do |key, value|
+ Array(value).map { |v| "#{key}:#{v}" }
end
- "q=#{uri_escape(params_list.join(" "))}&per_page=100"
- end
-
- def format_parameter(key, value)
- "#{key}:#{value}"
+ "q=#{URI.encode_www_form_component(params_list.join(" "))}&per_page=100"
end
def url_to(*subroutes)