From 461f49dcb6ca9f2293b7cfabc9ee17b7a5513bcc Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 29 Apr 2024 11:44:21 -0700 Subject: [PATCH] fix: Display a warning but continue execution when dumping an exception and unable to find related issues Occasionally, when failing to `brew install` or `brew upgrade` a formula, users will get an error message and the last line of it will be: ``` Error: Validation Failed: [{"message"=>"The listed users and repositories cannot be searched either because the resources do not exist or you do not have permission to view them.", "resource"=>"Search", "field"=>"q", "code"=>"invalid"}] ``` Here's an old public example: https://gitlab.com/tabos/rogerrouter/-/issues/21 At Square, this error can be caused by a transient issue with a user's GitHub credentials. My proposal is that any error which prevents `brew` from showing related issues should: 1. Not cause `brew` to exit early (vs. printing diagnostic checks and doing any other cleanup) 2. Be clearly differentiated from the original failure (so it doesn't become a red herring for users troubleshooting their broken formula) --- Library/Homebrew/exceptions.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/exceptions.rb b/Library/Homebrew/exceptions.rb index 5a3ec8b6b9..ccb0daa382 100644 --- a/Library/Homebrew/exceptions.rb +++ b/Library/Homebrew/exceptions.rb @@ -490,8 +490,8 @@ class BuildError < RuntimeError sig { returns(T::Array[T.untyped]) } def fetch_issues GitHub.issues_for_formula(formula.name, tap: formula.tap, state: "open", type: "issue") - rescue GitHub::API::RateLimitExceededError => e - opoo e.message + rescue GitHub::API::Error => e + opoo "Unable to query GitHub for recent issues on the tap\n#{e.message}" [] end