From efa0c9554a468918ab32527fad2dd425275a2b77 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Wed, 11 Jun 2025 17:27:45 -0400 Subject: [PATCH] fixes #19828 -- added a strict parameter to `GitHub::check_for_duplicate_pull_requests` --- Library/Homebrew/utils/github.rb | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/Library/Homebrew/utils/github.rb b/Library/Homebrew/utils/github.rb index 5493bd335f..6094117831 100644 --- a/Library/Homebrew/utils/github.rb +++ b/Library/Homebrew/utils/github.rb @@ -627,6 +627,12 @@ module GitHub pull_requests || [] end + # Check for duplicate pull requests that modify the same file. + # + # Exits the process on duplicates if `strict` or both `version` and + # `official_tap`, otherwise warns. + # + # @api internal sig { params( name: String, @@ -636,10 +642,11 @@ module GitHub state: T.nilable(String), version: T.nilable(String), official_tap: T::Boolean, + strict: T::Boolean, ).void } def self.check_for_duplicate_pull_requests(name, tap_remote_repo, file:, quiet: false, state: nil, - version: nil, official_tap: true) + version: nil, official_tap: true, strict: false) pull_requests = fetch_pull_requests(name, tap_remote_repo, state:, version:) pull_requests.select! do |pr| @@ -659,13 +666,13 @@ module GitHub Manually open these PRs if you are sure that they are not duplicates (and tell us that in the PR). EOS - if !official_tap - opoo duplicates_message - elsif version + if strict || (version && official_tap) odie <<~EOS #{duplicates_message.chomp} #{error_message} EOS + elsif !official_tap + opoo duplicates_message elsif quiet opoo error_message else