Skip to content
Snippets Groups Projects
Commit 53912014 authored by ilovezfs's avatar ilovezfs
Browse files

bump-formula-pr: block duplicate pull-requests

parent 08c75616
No related branches found
No related tags found
No related merge requests found
......@@ -78,8 +78,43 @@ module Homebrew
end
end
def fetch_pull_requests(formula)
GitHub.issues_for_formula(formula.name, tap: formula.tap).select do |pr|
pr["html_url"].include?("/pull/")
end
rescue GitHub::RateLimitExceededError => e
opoo e.message
[]
end
def check_for_duplicate_pull_requests(formula)
pull_requests = fetch_pull_requests(formula)
return unless pull_requests && !pull_requests.empty?
duplicates_message = <<-EOS.undent
These open pull requests may be duplicates:
#{pull_requests.map { |pr| "#{pr["title"]} #{pr["html_url"]}" }.join("\n")}
EOS
error_message = "Duplicate PRs should not be opened. Use --force to override this error."
if ARGV.force? && !ARGV.flag?("--quiet")
opoo duplicates_message
elsif !ARGV.force? && ARGV.flag?("--quiet")
odie error_message
elsif !ARGV.force?
odie <<-EOS.undent
#{duplicates_message.chomp}
#{error_message}
EOS
end
end
def bump_formula_pr
formula = ARGV.formulae.first
if formula
check_for_duplicate_pull_requests(formula)
checked_for_duplicates = true
end
new_url = ARGV.value("url")
if new_url && !formula
is_devel = ARGV.include?("--devel")
......@@ -101,6 +136,8 @@ module Homebrew
end
odie "No formula found!" unless formula
check_for_duplicate_pull_requests(formula) unless checked_for_duplicates
requested_spec, formula_spec = if ARGV.include?("--devel")
devel_message = " (devel)"
[:devel, formula.devel]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment