diff options
| author | Mike McQuaid | 2017-02-15 14:39:13 +0000 |
|---|---|---|
| committer | GitHub | 2017-02-15 14:39:13 +0000 |
| commit | 9c3825fc77e6660157ad734fc173b5f78f9fe7f7 (patch) | |
| tree | 9378bd89660c8558d9af4e9901537f16311540da /Library | |
| parent | 21eaa1c60a0868b78db27f80d93e84cd85a51c75 (diff) | |
| parent | 539120143bad6ffb9a8a7c3e2ab76c6bc951036e (diff) | |
| download | brew-9c3825fc77e6660157ad734fc173b5f78f9fe7f7.tar.bz2 | |
Merge pull request #1997 from ilovezfs/block-duplicate-pull-requests
bump-formula-pr: block duplicate pull-requests
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/dev-cmd/bump-formula-pr.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/Library/Homebrew/dev-cmd/bump-formula-pr.rb b/Library/Homebrew/dev-cmd/bump-formula-pr.rb index 68bf32d0b..ea2daf1c4 100644 --- a/Library/Homebrew/dev-cmd/bump-formula-pr.rb +++ b/Library/Homebrew/dev-cmd/bump-formula-pr.rb @@ -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] |
