refactor github module duplicate

This commit is contained in:
Baffour Adu Boampong 2020-07-07 21:14:30 +00:00
parent af117fab25
commit 53643870a3
3 changed files with 24 additions and 21 deletions

View File

@ -314,7 +314,26 @@ module Homebrew
new_formula_version = formula_version(formula, requested_spec, new_contents)
GitHub.check_for_duplicate_pull_requests(formula, tap_full_name, new_formula_version.to_s)
pull_requests = GitHub.check_for_duplicate_pull_requests(formula, tap_full_name, new_formula_version.to_s)
duplicates_message = <<~EOS
These pull requests may be duplicates:
#{pull_requests.join("\n")}
EOS
error_message = "Duplicate PRs should not be opened. Use --force to override this error."
unless !pull_requests.blank?
if args.force? && !args.quiet?
opoo duplicates_message
elsif !args.force? && args.quiet?
odie error_message
elsif !args.force?
odie <<~EOS
#{duplicates_message.chomp}
#{error_message}
EOS
end
end
if !new_mirrors && !formula_spec.mirrors.empty?
if args.force?

View File

@ -53,13 +53,13 @@ module Homebrew
tap_full_name = formula.tap&.full_name
current_version = current_formula_version(formula)
livecheck_response = livecheck_formula(package_name)
pull_requests = GitHub.check_for_duplicate_pull_requests(formula, tap_full_name, latest_version, true)
pull_requests = GitHub.check_for_duplicate_pull_requests(formula, tap_full_name, latest_version)
{
repology_latest_version: latest_version,
current_formula_version: current_version.to_s,
livecheck_latest_version: livecheck_response[:livecheck_version],
open_pull_requests: pull_requests,
open_pull_requests: pull_requests.join(", "),
}
end

View File

@ -356,7 +356,7 @@ module GitHub
[]
end
def check_for_duplicate_pull_requests(formula, tap_full_name, version, fetch_pr = false)
def check_for_duplicate_pull_requests(formula, tap_full_name, version)
# check for open requests
pull_requests = fetch_pull_requests(formula.name, tap_full_name, state: "open")
@ -364,23 +364,7 @@ module GitHub
pull_requests = fetch_pull_requests("#{formula.name} #{version}", tap_full_name) if pull_requests.blank?
return if pull_requests.blank?
return pull_requests.map { |pr| { title: pr["title"], url: pr["html_url"] } } if fetch_pr
duplicates_message = <<~EOS
These 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 Homebrew.args.force? && !Homebrew.args.quiet?
opoo duplicates_message
elsif !Homebrew.args.force? && Homebrew.args.quiet?
odie error_message
elsif !Homebrew.args.force?
odie <<~EOS
#{duplicates_message.chomp}
#{error_message}
EOS
end
pull_requests.map { |pr| { title: pr["title"], url: pr["html_url"] } }
end
def create_fork(repo)