Merge pull request #1997 from ilovezfs/block-duplicate-pull-requests
bump-formula-pr: block duplicate pull-requests
This commit is contained in:
commit
9c3825fc77
@ -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]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user