diff --git a/Library/Homebrew/attestation.rb b/Library/Homebrew/attestation.rb index d65ee36e01..e62564394e 100644 --- a/Library/Homebrew/attestation.rb +++ b/Library/Homebrew/attestation.rb @@ -4,6 +4,7 @@ require "date" require "json" require "utils/popen" +require "utils/github/api" require "exceptions" require "system_command" diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb index 763a933606..bab0b2e903 100644 --- a/Library/Homebrew/cmd/install.rb +++ b/Library/Homebrew/cmd/install.rb @@ -263,6 +263,14 @@ module Homebrew end end + if Homebrew::Attestation.enabled? + if formulae.include?(Formula["gh"]) + formulae.unshift(T.must(formulae.delete(Formula["gh"]))) + else + Homebrew::Attestation.ensure_gh_installed! + end + end + # if the user's flags will prevent bottle only-installations when no # developer tools are available, we need to stop them early on build_flags = [] diff --git a/Library/Homebrew/cmd/reinstall.rb b/Library/Homebrew/cmd/reinstall.rb index 20f87915f9..37046832f0 100644 --- a/Library/Homebrew/cmd/reinstall.rb +++ b/Library/Homebrew/cmd/reinstall.rb @@ -124,6 +124,14 @@ module Homebrew end end + if Homebrew::Attestation.enabled? + if formulae.include?(Formula["gh"]) + formulae.unshift(T.must(formulae.delete(Formula["gh"]))) + else + Homebrew::Attestation.ensure_gh_installed! + end + end + Install.perform_preinstall_checks formulae.each do |formula| diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb index aab7e7714d..ff898c08a7 100644 --- a/Library/Homebrew/cmd/upgrade.rb +++ b/Library/Homebrew/cmd/upgrade.rb @@ -134,6 +134,14 @@ module Homebrew only_upgrade_formulae = formulae.present? && casks.blank? only_upgrade_casks = casks.present? && formulae.blank? + if Homebrew::Attestation.enabled? + if formulae.include?(Formula["gh"]) + formulae.unshift(T.must(formulae.delete(Formula["gh"]))) + else + Homebrew::Attestation.ensure_gh_installed! + end + end + upgrade_outdated_formulae(formulae) unless only_upgrade_casks upgrade_outdated_casks(casks) unless only_upgrade_formulae