diff options
Diffstat (limited to 'Library/Homebrew/dev-cmd/pull.rb')
| -rw-r--r-- | Library/Homebrew/dev-cmd/pull.rb | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/Library/Homebrew/dev-cmd/pull.rb b/Library/Homebrew/dev-cmd/pull.rb index aa3c9a9d7..79b9da9eb 100644 --- a/Library/Homebrew/dev-cmd/pull.rb +++ b/Library/Homebrew/dev-cmd/pull.rb @@ -1,4 +1,4 @@ -#: * `pull` [`--bottle`] [`--bump`] [`--clean`] [`--ignore-whitespace`] [`--resolve`] [`--branch-okay`] [`--no-pbcopy`] [`--no-publish`] [`--warn-on-publish-failure`] <patch-source> [<patch-source>]: +#: * `pull` [`--bottle`] [`--bump`] [`--clean`] [`--ignore-whitespace`] [`--resolve`] [`--branch-okay`] [`--no-pbcopy`] [`--no-publish`] [`--warn-on-publish-failure`] [`--bintray-org=`<bintray-org>] [`--test-bot-user=`<test-bot-user>] <patch-source> [<patch-source>]: #: #: Gets a patch from a GitHub commit or pull request and applies it to Homebrew. #: Optionally, installs the formulae changed by the patch. @@ -41,6 +41,12 @@ #: #: If `--warn-on-publish-failure` was passed, do not exit if there's a #: failure publishing bottles on Bintray. +#: +#: If `--bintray-org=`<bintray-org> is passed, publish at the given Bintray +#: organisation. +#: +#: If `--test-bot-user=`<test-bot-user> is passed, pull the bottle block +#: commit from the specified user on GitHub. require "net/http" require "net/https" @@ -52,6 +58,18 @@ require "tap" require "version" require "pkg_version" +module GitHub + module_function + + # Return the corresponding test-bot user name for the given GitHub organization. + def test_bot_user(user) + test_bot = ARGV.value "test-bot-user" + return test_bot if test_bot + return "BrewTestBot" if user.casecmp("homebrew").zero? + "#{user.capitalize}TestBot" + end +end + module Homebrew module_function @@ -225,7 +243,7 @@ module Homebrew url else bottle_branch = "pull-bottle-#{issue}" - "https://github.com/BrewTestBot/homebrew-#{tap.repo}/compare/homebrew:master...pr-#{issue}" + "https://github.com/#{GitHub.test_bot_user user}/homebrew-#{tap.repo}/compare/#{user}:master...pr-#{issue}" end curl "--silent", "--fail", "--output", "/dev/null", "--head", bottle_commit_url @@ -257,7 +275,7 @@ module Homebrew str.force_encoding("UTF-8") if str.respond_to?(:force_encoding) end - def publish_changed_formula_bottles(_tap, changed_formulae_names) + def publish_changed_formula_bottles(tap, changed_formulae_names) if ENV["HOMEBREW_DISABLE_LOAD_FORMULA"] raise "Need to load formulae to publish them!" end @@ -268,7 +286,8 @@ module Homebrew changed_formulae_names.each do |name| f = Formula[name] next if f.bottle_unneeded? || f.bottle_disabled? - next unless publish_bottle_file_on_bintray(f, bintray_creds) + bintray_org = ARGV.value("bintray-org") || tap.user.downcase + next unless publish_bottle_file_on_bintray(f, bintray_org, bintray_creds) published << f.full_name end else @@ -420,7 +439,7 @@ module Homebrew end # Publishes the current bottle files for a given formula to Bintray - def publish_bottle_file_on_bintray(f, creds) + def publish_bottle_file_on_bintray(f, bintray_org, creds) repo = Utils::Bottles::Bintray.repository(f.tap) package = Utils::Bottles::Bintray.package(f.name) info = FormulaInfoFromJson.lookup(f.name) @@ -437,7 +456,7 @@ module Homebrew "--user", "#{creds[:user]}:#{creds[:key]}", "--request", "POST", "--header", "Content-Type: application/json", "--data", '{"publish_wait_for_secs": 0}', - "https://api.bintray.com/content/homebrew/#{repo}/#{package}/#{version}/publish" + "https://api.bintray.com/content/#{bintray_org}/#{repo}/#{package}/#{version}/publish" true rescue => e raise unless ARGV.include?("--warn-on-publish-failure") |
