Delete Bintray code

Remove all code related to Bintray. It no longer works so there's no
point keeping it around.

Some of this could arguably be deprecated/disabled first/instead but:
I'm not sure I see the sense in keeping stuff around that's known to be
broken.
This commit is contained in:
Mike McQuaid 2021-05-12 13:37:18 +01:00
parent 6c9ef43e72
commit b914411ac8
No known key found for this signature in database
GPG Key ID: 48A898132FD8EE70
20 changed files with 22 additions and 508 deletions

View File

@ -130,8 +130,14 @@ class Archive
warn_on_error: T.nilable(T::Boolean)).void
}
def upload_bottles(bottles_hash, warn_on_error: false)
bottles_hash.each do |_formula_name, bottle_hash|
directory = bottle_hash["bintray"]["repository"]
bottles_hash.each do |formula_full_name, bottle_hash|
_, formula_tap_repo, = formula_full_name.split("/")
directory = if formula_tap_repo
"bottles-#{tap.repo}"
else
"bottles"
end
bottle_count = bottle_hash["bottle"]["tags"].length
bottle_hash["bottle"]["tags"].each_value do |tag_hash|

View File

@ -1,278 +0,0 @@
# typed: false
# frozen_string_literal: true
require "utils/curl"
require "json"
# Bintray API client.
#
# @api private
class Bintray
extend T::Sig
include Context
include Utils::Curl
API_URL = "https://api.bintray.com"
URL_REGEX = %r{^https://[\w-]+\.bintray\.com/}.freeze
class Error < RuntimeError
end
sig { returns(String) }
def inspect
"#<Bintray: org=#{@bintray_org}>"
end
sig { params(org: T.nilable(String)).void }
def initialize(org: "homebrew")
@bintray_org = org
raise UsageError, "Must set a Bintray organisation!" unless @bintray_org
ENV["HOMEBREW_FORCE_HOMEBREW_ON_LINUX"] = "1" if @bintray_org == "homebrew" && !OS.mac?
end
def open_api(url, *args, auth: true)
if auth
raise UsageError, "HOMEBREW_BINTRAY_USER is unset." unless (user = Homebrew::EnvConfig.bintray_user)
raise UsageError, "HOMEBREW_BINTRAY_KEY is unset." unless (key = Homebrew::EnvConfig.bintray_key)
args += ["--user", "#{user}:#{key}"]
end
curl(*args, url, print_stdout: false, secrets: key)
end
sig {
params(local_file: String,
repo: String,
package: String,
version: String,
remote_file: String,
sha256: T.nilable(String),
warn_on_error: T.nilable(T::Boolean)).void
}
def upload(local_file, repo:, package:, version:, remote_file:, sha256: nil, warn_on_error: false)
unless File.exist? local_file
msg = "#{local_file} for upload doesn't exist!"
raise Error, msg unless warn_on_error
# Warn and return early here since we know this upload is going to fail.
opoo msg
return
end
url = "#{API_URL}/content/#{@bintray_org}/#{repo}/#{package}/#{version}/#{remote_file}"
args = ["--upload-file", local_file]
args += ["--header", "X-Checksum-Sha2: #{sha256}"] if sha256.present?
args << "--fail" unless warn_on_error
result = T.unsafe(self).open_api(url, *args)
json = JSON.parse(result.stdout)
return if json["message"] == "success"
msg = "Bottle upload failed: #{json["message"]}"
raise msg unless warn_on_error
opoo msg
end
sig {
params(repo: String,
package: String,
version: String,
file_count: T.nilable(Integer),
warn_on_error: T.nilable(T::Boolean)).void
}
def publish(repo:, package:, version:, file_count:, warn_on_error: false)
url = "#{API_URL}/content/#{@bintray_org}/#{repo}/#{package}/#{version}/publish"
upload_args = %w[--request POST]
upload_args += ["--fail"] unless warn_on_error
result = T.unsafe(self).open_api(url, *upload_args)
json = JSON.parse(result.stdout)
if file_count.present? && json["files"] != file_count
message = "Bottle publish failed: expected #{file_count} bottles, but published #{json["files"]} instead."
raise message unless warn_on_error
opoo message
end
odebug "Published #{json["files"]} bottles"
end
sig { params(org: T.nilable(String)).returns(T::Boolean) }
def official_org?(org: @bintray_org)
%w[homebrew linuxbrew].include? org
end
sig { params(url: String).returns(T::Boolean) }
def stable_mirrored?(url)
headers, = curl_output("--connect-timeout", "15", "--location", "--head", url)
status_code = headers.scan(%r{^HTTP/.* (\d+)}).last.first
status_code.start_with?("2")
end
sig {
params(formula: Formula,
repo: String,
publish_package: T::Boolean,
warn_on_error: T::Boolean).returns(String)
}
def mirror_formula(formula, repo: "mirror", publish_package: false, warn_on_error: false)
package = Utils::Bottles::Bintray.package formula.name
create_package(repo: repo, package: package) unless package_exists?(repo: repo, package: package)
formula.downloader.fetch
version = ERB::Util.url_encode(formula.pkg_version)
filename = ERB::Util.url_encode(formula.downloader.basename)
destination_url = "https://dl.bintray.com/#{@bintray_org}/#{repo}/#{filename}"
odebug "Uploading to #{destination_url}"
upload(
formula.downloader.cached_location,
repo: repo,
package: package,
version: version,
sha256: formula.stable.checksum,
remote_file: filename,
warn_on_error: warn_on_error,
)
return destination_url unless publish_package
odebug "Publishing #{@bintray_org}/#{repo}/#{package}/#{version}"
publish(repo: repo, package: package, version: version, file_count: 1, warn_on_error: warn_on_error)
destination_url
end
sig { params(repo: String, package: String).void }
def create_package(repo:, package:)
url = "#{API_URL}/packages/#{@bintray_org}/#{repo}"
data = { name: package, public_download_numbers: true }
data[:public_stats] = official_org?
open_api(url, "--header", "Content-Type: application/json", "--request", "POST", "--data", data.to_json)
end
sig { params(repo: String, package: String).returns(T::Boolean) }
def package_exists?(repo:, package:)
url = "#{API_URL}/packages/#{@bintray_org}/#{repo}/#{package}"
begin
open_api(url, "--fail", "--silent", "--output", "/dev/null", auth: false)
rescue ErrorDuringExecution => e
stderr = e.output
.select { |type,| type == :stderr }
.map { |_, line| line }
.join
raise if e.status.exitstatus != 22 && stderr.exclude?("404 Not Found")
false
else
true
end
end
# Gets the SHA-256 checksum of the specified remote file.
#
# @return the checksum, the empty string (if the file doesn't have a checksum), nil (if the file doesn't exist)
sig { params(repo: String, remote_file: String).returns(T.nilable(String)) }
def remote_checksum(repo:, remote_file:)
url = "https://dl.bintray.com/#{@bintray_org}/#{repo}/#{remote_file}"
result = curl_output "--fail", "--silent", "--head", url
if result.success?
result.stdout.match(/^X-Checksum-Sha2:\s+(\h{64})\b/i)&.values_at(1)&.first || ""
else
raise Error if result.status.exitstatus != 22 && result.stderr.exclude?("404 Not Found")
nil
end
end
sig { params(bintray_repo: String, bintray_package: String, filename: String).returns(String) }
def file_delete_instructions(bintray_repo, bintray_package, filename)
<<~EOS
Remove this file manually in your web browser:
https://bintray.com/#{@bintray_org}/#{bintray_repo}/#{bintray_package}/view#files
Or run:
curl -X DELETE -u $HOMEBREW_BINTRAY_USER:$HOMEBREW_BINTRAY_KEY \\
https://api.bintray.com/content/#{@bintray_org}/#{bintray_repo}/#{filename}
EOS
end
sig {
params(bottles_hash: T::Hash[String, T.untyped],
publish_package: T::Boolean,
warn_on_error: T.nilable(T::Boolean)).void
}
def upload_bottles(bottles_hash, publish_package: false, warn_on_error: false)
formula_packaged = {}
bottles_hash.each do |formula_name, bottle_hash|
version = ERB::Util.url_encode(bottle_hash["formula"]["pkg_version"])
bintray_package = bottle_hash["bintray"]["package"]
bintray_repo = bottle_hash["bintray"]["repository"]
bottle_count = bottle_hash["bottle"]["tags"].length
bottle_hash["bottle"]["tags"].each do |tag, tag_hash|
filename = Bottle::Filename.new(bottle_hash["formula"]["name"], bottle_hash["formula"]["pkg_version"],
tag, bottle_hash["bottle"]["rebuild"]).bintray
sha256 = tag_hash["sha256"]
delete_instructions = file_delete_instructions(bintray_repo, bintray_package, filename)
odebug "Checking remote file #{@bintray_org}/#{bintray_repo}/#{filename}"
result = remote_checksum(repo: bintray_repo, remote_file: filename)
case result
when nil
# File doesn't exist.
if !formula_packaged[formula_name] && !package_exists?(repo: bintray_repo, package: bintray_package)
odebug "Creating package #{@bintray_org}/#{bintray_repo}/#{bintray_package}"
create_package repo: bintray_repo, package: bintray_package
formula_packaged[formula_name] = true
end
odebug "Uploading #{@bintray_org}/#{bintray_repo}/#{bintray_package}/#{version}/#{filename}"
upload(tag_hash["local_filename"],
repo: bintray_repo,
package: bintray_package,
version: version,
remote_file: filename,
sha256: sha256,
warn_on_error: warn_on_error)
when sha256
# File exists, checksum matches.
odebug "#{filename} is already published with matching hash."
bottle_count -= 1
when ""
# File exists, but can't find checksum
failed_message = "#{filename} is already published!"
raise Error, "#{failed_message}\n#{delete_instructions}" unless warn_on_error
opoo failed_message
else
# File exists, but checksum either doesn't exist or is mismatched.
failed_message = <<~EOS
#{filename} is already published with a mismatched hash!
Expected: #{sha256}
Actual: #{result}
EOS
raise Error, "#{failed_message}#{delete_instructions}" unless warn_on_error
opoo failed_message
end
end
next unless publish_package
odebug "Publishing #{@bintray_org}/#{bintray_repo}/#{bintray_package}/#{version}"
publish(repo: bintray_repo,
package: bintray_package,
version: version,
file_count: bottle_count,
warn_on_error: warn_on_error)
end
end
end

View File

@ -183,11 +183,6 @@ module Homebrew
sig { returns(T.nilable(String)) }
def workflow; end
sig { returns(T.nilable(String)) }
def bintray_org; end
sig { returns(T.nilable(String)) }
def bintray_repo; end
sig { returns(T.nilable(String)) }
def package_name; end

View File

@ -87,7 +87,7 @@ fetch() {
curl_args[${#curl_args[*]}]="-q"
fi
# Authorization is needed for GitHub Packages but harmless on Bintray/GitHub Releases
# Authorization is needed for GitHub Packages but harmless on GitHub Releases
curl_args+=(
--fail
--remote-time
@ -145,8 +145,7 @@ Failed to download ${VENDOR_URL} and ${VENDOR_URL2}!
Do not file an issue on GitHub about this; you will need to figure out for
yourself what issue with your internet connection restricts your access to
both Bintray (used for Homebrew bottles/binary packages) and GitHub
(used for Homebrew updates).
GitHub (used for Homebrew updates and binary packages).
EOS
fi

View File

@ -10,7 +10,6 @@ require "cli/parser"
require "utils/inreplace"
require "erb"
require "archive"
require "bintray"
BOTTLE_ERB = <<-EOS
bottle do
@ -584,15 +583,6 @@ module Homebrew
},
}
if bottle.root_url.match?(::Bintray::URL_REGEX) ||
# TODO: given the naming: ideally the Internet Archive uploader wouldn't use this.
bottle.root_url.start_with?("#{::Archive::URL_PREFIX}/")
json[f.full_name]["bintray"] = {
"package" => Utils::Bottles::Bintray.package(f.name),
"repository" => Utils::Bottles::Bintray.repository(tap),
}
end
puts "Writing #{filename.json}" if args.verbose?
json_path = Pathname(filename.json)
json_path.unlink if json_path.exist?

View File

@ -24,7 +24,7 @@ module Homebrew
flag "--workflow=",
description: "Dispatch specified workflow (default: `dispatch-build-bottle.yml`)."
switch "--upload",
description: "Upload built bottles to Bintray."
description: "Upload built bottles."
switch "--linux",
description: "Dispatch bottle for Linux (using GitHub runners)."

View File

@ -1,7 +1,6 @@
# typed: true
# frozen_string_literal: true
require "bintray"
require "cli/parser"
module Homebrew
@ -13,34 +12,13 @@ module Homebrew
def mirror_args
Homebrew::CLI::Parser.new do
description <<~EOS
Reupload the stable URL of a formula to Bintray for use as a mirror.
Reupload the stable URL of a formula for use as a mirror.
EOS
flag "--bintray-org=",
description: "Upload to the specified Bintray organisation (default: `homebrew`)."
flag "--bintray-repo=",
description: "Upload to the specified Bintray repository (default: `mirror`)."
switch "--no-publish",
description: "Upload to Bintray, but don't publish."
named_args :formula, min: 1
hide_from_man_page!
end
end
def mirror
args = mirror_args.parse
odeprecated "brew mirror (Bintray will be shut down on 1st May 2021)"
bintray_org = args.bintray_org || "homebrew"
bintray_repo = args.bintray_repo || "mirror"
bintray = Bintray.new(org: bintray_org)
args.named.to_formulae.each do |formula|
mirror_url = bintray.mirror_formula(formula, repo: bintray_repo, publish_package: !args.no_publish?)
ohai "Mirrored #{formula.full_name} to #{mirror_url}!"
end
odisabled "`brew mirror` (Bintray was shut down on 1st May 2021)"
end
end

View File

@ -55,8 +55,6 @@ module Homebrew
description: "Download artifacts with the specified name (default: `bottles`)."
flag "--archive-item=",
description: "Upload to the specified Internet Archive item (default: `homebrew`)."
flag "--bintray-org=",
description: "Upload to the specified Bintray organisation (default: `homebrew`)."
flag "--tap=",
description: "Target tap repository (default: `homebrew/core`)."
flag "--root-url=",
@ -64,9 +62,6 @@ module Homebrew
flag "--root-url-using=",
description: "Use the specified download strategy class for downloading the bottle's URL instead of "\
"Homebrew's default."
flag "--bintray-mirror=",
description: "Use the specified Bintray repository to automatically mirror stable URLs "\
"defined in the formulae (default: `mirror`)."
comma_array "--workflows=",
description: "Retrieve artifacts from the specified workflow (default: `tests.yml`). "\
"Can be a comma-separated list to include multiple workflows."
@ -74,7 +69,6 @@ module Homebrew
description: "Comma-separated list of workflows which can be ignored if they have not been run."
conflicts "--clean", "--autosquash"
conflicts "--archive-item", "--bintray-org"
named_args :pull_request, min: 1
end
@ -308,26 +302,6 @@ module Homebrew
end
end
def mirror_formulae(tap, original_commit, org:, repo:, args:, publish: true)
changed_formulae(tap, original_commit).select do |f|
stable_urls = [f.stable.url] + f.stable.mirrors
stable_urls.grep(%r{^https://dl.bintray.com/#{org}/#{repo}/}) do |mirror_url|
if args.dry_run?
puts "brew mirror #{f.full_name}"
else
odebug "Mirroring #{mirror_url}"
mirror_args = ["mirror", f.full_name]
mirror_args << "--debug" if args.debug?
mirror_args << "--verbose" if args.verbose?
mirror_args << "--bintray-org=#{org}" if org
mirror_args << "--bintray-repo=#{repo}" if repo
mirror_args << "--no-publish" unless publish
system HOMEBREW_BREW_FILE, *mirror_args
end
end
end
end
def changed_formulae(tap, original_commit)
if Homebrew::EnvConfig.disable_load_formula?
opoo "Can't check if updated bottles are necessary as formula loading is disabled!"
@ -368,8 +342,6 @@ module Homebrew
workflows = args.workflows.presence || ["tests.yml"]
artifact = args.artifact || "bottles"
archive_item = args.archive_item
bintray_org = args.bintray_org || "homebrew"
mirror_repo = args.bintray_mirror || "mirror"
tap = Tap.fetch(args.tap || CoreTap.instance.name)
Utils::Git.set_name_email!(committer: args.committer.blank?)
@ -403,12 +375,6 @@ module Homebrew
verbose: args.verbose?, resolve: args.resolve?, reason: args.message)
end
signoff!(tap.path, pr: pr, dry_run: args.dry_run?) unless args.clean?
unless args.no_upload?
mirror_formulae(tap, original_commit,
org: bintray_org, repo: mirror_repo, publish: !args.no_publish?,
args: args)
end
end
unless formulae_need_bottles?(tap, original_commit, user, repo, pr, args: args)
@ -447,11 +413,7 @@ module Homebrew
upload_args << "--committer=#{args.committer}" if args.committer
upload_args << "--root-url=#{args.root_url}" if args.root_url
upload_args << "--root-url-using=#{args.root_url_using}" if args.root_url_using
upload_args << if archive_item.present?
"--archive-item=#{archive_item}"
else
"--bintray-org=#{bintray_org}"
end
upload_args << "--archive-item=#{archive_item}" if archive_item.present?
safe_system HOMEBREW_BREW_FILE, *upload_args
end
end

View File

@ -3,7 +3,6 @@
require "cli/parser"
require "archive"
require "bintray"
require "github_packages"
require "github_releases"
@ -34,8 +33,6 @@ module Homebrew
description: "Specify a committer name and email in `git`'s standard author format."
flag "--archive-item=",
description: "Upload to the specified Internet Archive item (default: `homebrew`)."
flag "--bintray-org=",
description: "Upload to the specified Bintray organisation (default: `homebrew`)."
flag "--github-org=",
description: "Upload to the specified GitHub organisation's GitHub Packages (default: `homebrew`)."
flag "--root-url=",
@ -65,12 +62,6 @@ module Homebrew
end
end
def bintray?(bottles_hash)
@bintray ||= bottles_hash.values.all? do |bottle_hash|
bottle_hash["bottle"]["root_url"].match? Bintray::URL_REGEX
end
end
def github_releases?(bottles_hash)
@github_releases ||= bottles_hash.values.all? do |bottle_hash|
root_url = bottle_hash["bottle"]["root_url"]
@ -126,8 +117,6 @@ module Homebrew
nil
elsif internet_archive?(bottles_hash)
"Internet Archive"
elsif bintray?(bottles_hash)
"Bintray"
elsif github_releases?(bottles_hash)
"GitHub Releases"
else
@ -176,14 +165,6 @@ module Homebrew
archive = Archive.new(item: archive_item)
archive.upload_bottles(bottles_hash,
warn_on_error: args.warn_on_upload_failure?)
elsif bintray?(bottles_hash)
odeprecated "brew pr-upload for Bintray (Bintray will be shut down on 1st May 2021)"
bintray_org = args.bintray_org || "homebrew"
bintray = Bintray.new(org: bintray_org)
bintray.upload_bottles(bottles_hash,
publish_package: !args.no_publish?,
warn_on_error: args.warn_on_upload_failure?)
elsif github_releases?(bottles_hash)
github_releases = GitHubReleases.new
github_releases.upload_bottles(bottles_hash)

View File

@ -33,12 +33,6 @@ module Homebrew
description: "Use this as the `bat` configuration file.",
default_text: "`$HOME/.bat/config`.",
},
HOMEBREW_BINTRAY_KEY: {
description: "Use this API key when accessing the Bintray API (where bottles are stored).",
},
HOMEBREW_BINTRAY_USER: {
description: "Use this username when accessing the Bintray API (where bottles are stored).",
},
HOMEBREW_BOOTSNAP: {
description: "If set, use Bootsnap to speed up repeated `brew` calls. "\
"A no-op when using Homebrew's vendored, relocatable Ruby on macOS (as it doesn't work).",

View File

@ -13,7 +13,6 @@ require "patch"
require "compilers"
require "os/mac/version"
require "extend/on_os"
require "bintray"
class SoftwareSpec
extend T::Sig
@ -461,8 +460,6 @@ class BottleSpecification
if var.nil?
@root_url ||= if (github_packages_url = GitHubPackages.root_url_if_match(Homebrew::EnvConfig.bottle_domain))
github_packages_url
elsif Homebrew::EnvConfig.bottle_domain.match?(::Bintray::URL_REGEX)
"#{Homebrew::EnvConfig.bottle_domain}/#{Utils::Bottles::Bintray.repository(tap)}"
else
Homebrew::EnvConfig.bottle_domain
end

View File

@ -2893,11 +2893,6 @@ class Binding
def irb(); end
end
class Bintray
extend ::T::Private::Methods::MethodHooks
extend ::T::Private::Methods::SingletonMethodHooks
end
module Bootsnap
def bundler?(); end
VERSION = ::T.let(nil, ::T.untyped)
@ -8161,10 +8156,6 @@ module Homebrew::EnvConfig
def self.bat_config_path(); end
def self.bintray_key(); end
def self.bintray_user(); end
def self.bootsnap?(); end
def self.bottle_domain(); end

View File

@ -680,10 +680,6 @@ def stub_hash(parameters)
"sha256":"#{parameters[:sha256]}"
}
}
},
"bintray":{
"package":"#{parameters[:name]}",
"repository":"bottles"
}
}
}

View File

@ -1,21 +0,0 @@
# typed: false
# frozen_string_literal: true
require "utils/bottles"
describe Utils::Bottles::Bintray do
describe "::package" do
it "converts a Formula name to a package name" do
expect(described_class.package("openssl@1.1")).to eq("openssl:1.1")
expect(described_class.package("gtk+")).to eq("gtkx")
expect(described_class.package("llvm")).to eq("llvm")
end
end
describe "::repository" do
it "returns the repository for a given Tap" do
expect(described_class.repository(Tap.new("homebrew", "bintray-test")))
.to eq("bottles-bintray-test")
end
end
end

View File

@ -215,24 +215,6 @@ module Utils
end
end
# Helper functions for bottles hosted on Bintray.
module Bintray
def self.package(formula_name)
package_name = formula_name.to_s.dup
package_name.tr!("+", "x")
package_name.sub!(/(.)@(\d)/, "\\1:\\2") # Handle foo@1.2 style formulae.
package_name
end
def self.repository(tap = nil)
if tap.nil? || tap.core_tap?
"bottles"
else
"bottles-#{tap.repo}"
end
end
end
# Collector for bottle specifications.
class Collector
extend T::Sig

View File

@ -1383,11 +1383,8 @@ _brew_mirror() {
case "${cur}" in
-*)
__brewcomp "
--bintray-org
--bintray-repo
--debug
--help
--no-publish
--quiet
--verbose
"
@ -1395,7 +1392,6 @@ _brew_mirror() {
;;
*)
esac
__brew_complete_formulae
}
_brew_missing() {
@ -1545,8 +1541,6 @@ _brew_pr_pull() {
--archive-item
--artifact
--autosquash
--bintray-mirror
--bintray-org
--branch-okay
--clean
--committer
@ -1580,7 +1574,6 @@ _brew_pr_upload() {
-*)
__brewcomp "
--archive-item
--bintray-org
--committer
--debug
--dry-run

View File

@ -585,7 +585,7 @@ __fish_brew_complete_arg 'dispatch-build-bottle' -l linux -d 'Dispatch bottle fo
__fish_brew_complete_arg 'dispatch-build-bottle' -l macos -d 'Version of macOS the bottle should be built for'
__fish_brew_complete_arg 'dispatch-build-bottle' -l quiet -d 'Make some output more quiet'
__fish_brew_complete_arg 'dispatch-build-bottle' -l tap -d 'Target tap repository (default: `homebrew/core`)'
__fish_brew_complete_arg 'dispatch-build-bottle' -l upload -d 'Upload built bottles to Bintray'
__fish_brew_complete_arg 'dispatch-build-bottle' -l upload -d 'Upload built bottles'
__fish_brew_complete_arg 'dispatch-build-bottle' -l verbose -d 'Make some output more verbose'
__fish_brew_complete_arg 'dispatch-build-bottle' -l workflow -d 'Dispatch specified workflow (default: `dispatch-build-bottle.yml`)'
__fish_brew_complete_arg 'dispatch-build-bottle' -a '(__fish_brew_suggest_formulae_all)'
@ -967,15 +967,11 @@ __fish_brew_complete_arg 'migrate' -l verbose -d 'Make some output more verbose'
__fish_brew_complete_arg 'migrate' -a '(__fish_brew_suggest_formulae_installed)'
__fish_brew_complete_cmd 'mirror' 'Reupload the stable URL of a formula to Bintray for use as a mirror'
__fish_brew_complete_arg 'mirror' -l bintray-org -d 'Upload to the specified Bintray organisation (default: `homebrew`)'
__fish_brew_complete_arg 'mirror' -l bintray-repo -d 'Upload to the specified Bintray repository (default: `mirror`)'
__fish_brew_complete_cmd 'mirror' 'Reupload the stable URL of a formula for use as a mirror'
__fish_brew_complete_arg 'mirror' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'mirror' -l help -d 'Show this message'
__fish_brew_complete_arg 'mirror' -l no-publish -d 'Upload to Bintray, but don\'t publish'
__fish_brew_complete_arg 'mirror' -l quiet -d 'Make some output more quiet'
__fish_brew_complete_arg 'mirror' -l verbose -d 'Make some output more verbose'
__fish_brew_complete_arg 'mirror' -a '(__fish_brew_suggest_formulae_all)'
__fish_brew_complete_cmd 'missing' 'Check the given formula kegs for missing dependencies'
@ -1058,8 +1054,6 @@ __fish_brew_complete_cmd 'pr-pull' 'Download and publish bottles, and apply the
__fish_brew_complete_arg 'pr-pull' -l archive-item -d 'Upload to the specified Internet Archive item (default: `homebrew`)'
__fish_brew_complete_arg 'pr-pull' -l artifact -d 'Download artifacts with the specified name (default: `bottles`)'
__fish_brew_complete_arg 'pr-pull' -l autosquash -d 'Automatically reformat and reword commits in the pull request to our preferred format'
__fish_brew_complete_arg 'pr-pull' -l bintray-mirror -d 'Use the specified Bintray repository to automatically mirror stable URLs defined in the formulae (default: `mirror`)'
__fish_brew_complete_arg 'pr-pull' -l bintray-org -d 'Upload to the specified Bintray organisation (default: `homebrew`)'
__fish_brew_complete_arg 'pr-pull' -l branch-okay -d 'Do not warn if pulling to a branch besides the repository default (useful for testing)'
__fish_brew_complete_arg 'pr-pull' -l clean -d 'Do not amend the commits from pull requests'
__fish_brew_complete_arg 'pr-pull' -l committer -d 'Specify a committer name and email in `git`\'s standard author format'
@ -1084,7 +1078,6 @@ __fish_brew_complete_arg 'pr-pull' -l workflows -d 'Retrieve artifacts from the
__fish_brew_complete_cmd 'pr-upload' 'Apply the bottle commit and publish bottles to a host'
__fish_brew_complete_arg 'pr-upload' -l archive-item -d 'Upload to the specified Internet Archive item (default: `homebrew`)'
__fish_brew_complete_arg 'pr-upload' -l bintray-org -d 'Upload to the specified Bintray organisation (default: `homebrew`)'
__fish_brew_complete_arg 'pr-upload' -l committer -d 'Specify a committer name and email in `git`\'s standard author format'
__fish_brew_complete_arg 'pr-upload' -l debug -d 'Display any debugging information'
__fish_brew_complete_arg 'pr-upload' -l dry-run -d 'Print what would be done rather than doing it'

View File

@ -177,7 +177,7 @@ __brew_internal_commands() {
'log:Show the `git log` for formula, or show the log for the Homebrew repository if no formula is provided'
'man:Generate Homebrew'\''s manpages'
'migrate:Migrate renamed packages to new names, where formula are old names of packages'
'mirror:Reupload the stable URL of a formula to Bintray for use as a mirror'
'mirror:Reupload the stable URL of a formula for use as a mirror'
'missing:Check the given formula kegs for missing dependencies'
'options:Show install options specific to formula'
'outdated:List installed casks and formulae that have an updated version available'
@ -721,7 +721,7 @@ _brew_dispatch_build_bottle() {
'(--linux)--macos[Version of macOS the bottle should be built for]' \
'--quiet[Make some output more quiet]' \
'--tap[Target tap repository (default: `homebrew/core`)]' \
'--upload[Upload built bottles to Bintray]' \
'--upload[Upload built bottles]' \
'--verbose[Make some output more verbose]' \
'--workflow[Dispatch specified workflow (default: `dispatch-build-bottle.yml`)]' \
- formula \
@ -1191,15 +1191,10 @@ _brew_migrate() {
# brew mirror
_brew_mirror() {
_arguments \
'--bintray-org[Upload to the specified Bintray organisation (default: `homebrew`)]' \
'--bintray-repo[Upload to the specified Bintray repository (default: `mirror`)]' \
'--debug[Display any debugging information]' \
'--help[Show this message]' \
'--no-publish[Upload to Bintray, but don'\''t publish]' \
'--quiet[Make some output more quiet]' \
'--verbose[Make some output more verbose]' \
- formula \
'*::formula:__brew_formulae'
'--verbose[Make some output more verbose]'
}
# brew missing
@ -1301,11 +1296,9 @@ _brew_pr_publish() {
# brew pr-pull
_brew_pr_pull() {
_arguments \
'(--bintray-org)--archive-item[Upload to the specified Internet Archive item (default: `homebrew`)]' \
'--archive-item[Upload to the specified Internet Archive item (default: `homebrew`)]' \
'--artifact[Download artifacts with the specified name (default: `bottles`)]' \
'(--clean)--autosquash[Automatically reformat and reword commits in the pull request to our preferred format]' \
'--bintray-mirror[Use the specified Bintray repository to automatically mirror stable URLs defined in the formulae (default: `mirror`)]' \
'(--archive-item)--bintray-org[Upload to the specified Bintray organisation (default: `homebrew`)]' \
'--branch-okay[Do not warn if pulling to a branch besides the repository default (useful for testing)]' \
'(--autosquash)--clean[Do not amend the commits from pull requests]' \
'--committer[Specify a committer name and email in `git`'\''s standard author format]' \
@ -1332,7 +1325,6 @@ _brew_pr_pull() {
_brew_pr_upload() {
_arguments \
'--archive-item[Upload to the specified Internet Archive item (default: `homebrew`)]' \
'--bintray-org[Upload to the specified Bintray organisation (default: `homebrew`)]' \
'--committer[Specify a committer name and email in `git`'\''s standard author format]' \
'--debug[Display any debugging information]' \
'--dry-run[Print what would be done rather than doing it]' \

View File

@ -1027,7 +1027,7 @@ Build bottles for these formulae with GitHub Actions.
* `--workflow`:
Dispatch specified workflow (default: `dispatch-build-bottle.yml`).
* `--upload`:
Upload built bottles to Bintray.
Upload built bottles.
* `--linux`:
Dispatch bottle for Linux (using GitHub runners).
@ -1185,16 +1185,12 @@ Requires write access to the repository.
Download artifacts with the specified name (default: `bottles`).
* `--archive-item`:
Upload to the specified Internet Archive item (default: `homebrew`).
* `--bintray-org`:
Upload to the specified Bintray organisation (default: `homebrew`).
* `--tap`:
Target tap repository (default: `homebrew/core`).
* `--root-url`:
Use the specified *`URL`* as the root of the bottle's URL instead of Homebrew's default.
* `--root-url-using`:
Use the specified download strategy class for downloading the bottle's URL instead of Homebrew's default.
* `--bintray-mirror`:
Use the specified Bintray repository to automatically mirror stable URLs defined in the formulae (default: `mirror`).
* `--workflows`:
Retrieve artifacts from the specified workflow (default: `tests.yml`). Can be a comma-separated list to include multiple workflows.
* `--ignore-missing-artifacts`:
@ -1218,8 +1214,6 @@ Apply the bottle commit and publish bottles to a host.
Specify a committer name and email in `git`'s standard author format.
* `--archive-item`:
Upload to the specified Internet Archive item (default: `homebrew`).
* `--bintray-org`:
Upload to the specified Bintray organisation (default: `homebrew`).
* `--github-org`:
Upload to the specified GitHub organisation's GitHub Packages (default: `homebrew`).
* `--root-url`:
@ -1805,12 +1799,6 @@ example, run `export HOMEBREW_NO_INSECURE_REDIRECT=1` rather than just
*Default:* `$HOME/.bat/config`.
- `HOMEBREW_BINTRAY_KEY`
<br>Use this API key when accessing the Bintray API (where bottles are stored).
- `HOMEBREW_BINTRAY_USER`
<br>Use this username when accessing the Bintray API (where bottles are stored).
- `HOMEBREW_BOOTSNAP`
<br>If set, use Bootsnap to speed up repeated `brew` calls. A no-op when using Homebrew's vendored, relocatable Ruby on macOS (as it doesn't work).

View File

@ -1449,7 +1449,7 @@ Dispatch specified workflow (default: \fBdispatch\-build\-bottle\.yml\fR)\.
.
.TP
\fB\-\-upload\fR
Upload built bottles to Bintray\.
Upload built bottles\.
.
.TP
\fB\-\-linux\fR
@ -1668,10 +1668,6 @@ Download artifacts with the specified name (default: \fBbottles\fR)\.
Upload to the specified Internet Archive item (default: \fBhomebrew\fR)\.
.
.TP
\fB\-\-bintray\-org\fR
Upload to the specified Bintray organisation (default: \fBhomebrew\fR)\.
.
.TP
\fB\-\-tap\fR
Target tap repository (default: \fBhomebrew/core\fR)\.
.
@ -1684,10 +1680,6 @@ Use the specified \fIURL\fR as the root of the bottle\'s URL instead of Homebrew
Use the specified download strategy class for downloading the bottle\'s URL instead of Homebrew\'s default\.
.
.TP
\fB\-\-bintray\-mirror\fR
Use the specified Bintray repository to automatically mirror stable URLs defined in the formulae (default: \fBmirror\fR)\.
.
.TP
\fB\-\-workflows\fR
Retrieve artifacts from the specified workflow (default: \fBtests\.yml\fR)\. Can be a comma\-separated list to include multiple workflows\.
.
@ -1727,10 +1719,6 @@ Specify a committer name and email in \fBgit\fR\'s standard author format\.
Upload to the specified Internet Archive item (default: \fBhomebrew\fR)\.
.
.TP
\fB\-\-bintray\-org\fR
Upload to the specified Bintray organisation (default: \fBhomebrew\fR)\.
.
.TP
\fB\-\-github\-org\fR
Upload to the specified GitHub organisation\'s GitHub Packages (default: \fBhomebrew\fR)\.
.
@ -2519,18 +2507,6 @@ Use this as the \fBbat\fR configuration file\.
\fIDefault:\fR \fB$HOME/\.bat/config\fR\.
.
.TP
\fBHOMEBREW_BINTRAY_KEY\fR
.
.br
Use this API key when accessing the Bintray API (where bottles are stored)\.
.
.TP
\fBHOMEBREW_BINTRAY_USER\fR
.
.br
Use this username when accessing the Bintray API (where bottles are stored)\.
.
.TP
\fBHOMEBREW_BOOTSNAP\fR
.
.br