Merge pull request #13651 from iMichka/pull3

This commit is contained in:
Carlo Cabrera 2022-08-05 08:05:40 +08:00 committed by GitHub
commit 35e4d68a1c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -369,28 +369,30 @@ module Homebrew
end
def pr_check_conflicts(user, repo, pr)
hash_template = proc { |h, k| h[k] = [] }
long_build_pr_files = GitHub.search_issues(
"org:#{user}", repo: repo, state: "open", label: "\"no long build conflict\""
).each_with_object(Hash.new(hash_template)) do |long_build_pr, hash|
).each_with_object({}) do |long_build_pr, hash|
number = long_build_pr["number"]
GitHub.get_pull_request_changed_files("#{user}/#{repo}", number).each do |file|
key = file["filename"]
hash[key] ||= []
hash[key] << number
end
end
this_pr_files = GitHub.get_pull_request_changed_files("#{user}/#{repo}", pr)
conflicts = this_pr_files.each_with_object(Hash.new(hash_template)) do |file, hash|
conflicts = this_pr_files.each_with_object({}) do |file, hash|
filename = file["filename"]
next unless long_build_pr_files.key?(filename)
long_build_pr_files[filename].each do |pr_number|
key = "#{user}/#{repo}/pull/#{pr_number}"
hash[key] ||= []
hash[key] << filename
end
end
return if conflicts.blank?
# Raise an error, display the conflicting PR. For example: