From 9c643cb10001d0d34920954915d2f800e8211006 Mon Sep 17 00:00:00 2001 From: Sean Molenaar Date: Tue, 9 Jul 2024 14:11:47 +0200 Subject: [PATCH 1/3] fix: ignore SAML issues in GH API --- Library/Homebrew/utils/github.rb | 2 ++ Library/Homebrew/utils/github/api.rb | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/utils/github.rb b/Library/Homebrew/utils/github.rb index 2b0c11a98968f..fdeb0097c7d5d 100644 --- a/Library/Homebrew/utils/github.rb +++ b/Library/Homebrew/utils/github.rb @@ -917,6 +917,8 @@ def self.too_many_open_prs?(tap) return false if !more_graphql_data && prs.length < MAXIMUM_OPEN_PRS homebrew_prs_count = graphql_result.dig("viewer", "pullRequests", "nodes").count do |pr| + next unless pr.present? + pr["headRepositoryOwner"]["login"] == "Homebrew" end return true if homebrew_prs_count >= MAXIMUM_OPEN_PRS diff --git a/Library/Homebrew/utils/github/api.rb b/Library/Homebrew/utils/github/api.rb index b683a0b855d4a..a48a76be92d9b 100644 --- a/Library/Homebrew/utils/github/api.rb +++ b/Library/Homebrew/utils/github/api.rb @@ -322,7 +322,15 @@ def self.open_graphql(query, variables: nil, scopes: [].freeze, raise_errors: tr if raise_errors if result["errors"].present? - raise Error, result["errors"].map { |e| "#{e["type"]}: #{e["message"]}" }.join("\n") + related_errors = result["errors"].reject do |e| + e.key?("extensions") && e["extensions"]["saml_failure"] == true + end + + if related_errors.present? + raise Error, related_errors.map { |e| + "#{e["type"]}: #{e["message"]}" + }.join("\n") + end end result["data"] From d1518108a86b39b05676e9432c00c7cb48f5bd9f Mon Sep 17 00:00:00 2001 From: Sean Molenaar Date: Tue, 9 Jul 2024 15:16:16 +0200 Subject: [PATCH 2/3] Update api.rb Co-authored-by: Mike McQuaid --- Library/Homebrew/utils/github/api.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/utils/github/api.rb b/Library/Homebrew/utils/github/api.rb index a48a76be92d9b..8b4af15232abe 100644 --- a/Library/Homebrew/utils/github/api.rb +++ b/Library/Homebrew/utils/github/api.rb @@ -323,7 +323,8 @@ def self.open_graphql(query, variables: nil, scopes: [].freeze, raise_errors: tr if raise_errors if result["errors"].present? related_errors = result["errors"].reject do |e| - e.key?("extensions") && e["extensions"]["saml_failure"] == true + # comment explaining why we don't care about saml_failure + e.dig("extensions", "saml_failure") == true end if related_errors.present? From a2a84b1dc71f18f8e04121660bba774c2c5d6d15 Mon Sep 17 00:00:00 2001 From: Sean Molenaar Date: Tue, 9 Jul 2024 15:17:37 +0200 Subject: [PATCH 3/3] Update api.rb --- Library/Homebrew/utils/github/api.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/utils/github/api.rb b/Library/Homebrew/utils/github/api.rb index 8b4af15232abe..3483521f3c229 100644 --- a/Library/Homebrew/utils/github/api.rb +++ b/Library/Homebrew/utils/github/api.rb @@ -323,7 +323,7 @@ def self.open_graphql(query, variables: nil, scopes: [].freeze, raise_errors: tr if raise_errors if result["errors"].present? related_errors = result["errors"].reject do |e| - # comment explaining why we don't care about saml_failure + # saml_failure only happens for other orgs, Homebrew doesn't have it e.dig("extensions", "saml_failure") == true end