From d2d814414eb987ce41bb8621399a7292b1913cf5 Mon Sep 17 00:00:00 2001 From: Nanda H Krishna Date: Mon, 15 Jul 2024 13:30:47 -0400 Subject: [PATCH] cmd/{install,reinstall,upgrade}: ensure that `gh` is installed --- Library/Homebrew/attestation.rb | 1 + Library/Homebrew/cmd/install.rb | 8 ++++++++ Library/Homebrew/cmd/reinstall.rb | 8 ++++++++ Library/Homebrew/cmd/upgrade.rb | 8 ++++++++ 4 files changed, 25 insertions(+) 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