diff --git a/Library/Homebrew/tap_auditor.rb b/Library/Homebrew/tap_auditor.rb index 93bda162ec..574dae149a 100644 --- a/Library/Homebrew/tap_auditor.rb +++ b/Library/Homebrew/tap_auditor.rb @@ -64,16 +64,16 @@ module Homebrew end list = list.keys if list.is_a? Hash - invalid_formulae = list.select do |formula_or_cask_name| + invalid_formulae_casks = list.select do |formula_or_cask_name| @formula_names.exclude?(formula_or_cask_name) && @cask_tokens.exclude?("#{@name}/#{formula_or_cask_name}") end - return if invalid_formulae.empty? + return if invalid_formulae_casks.empty? problem <<~EOS #{list_file}.json references formulae or casks that are not found in the #{@name} tap. - Invalid formulae or casks: #{invalid_formulae.join(", ")} + Invalid formulae or casks: #{invalid_formulae_casks.join(", ")} EOS end diff --git a/Library/Homebrew/utils/shared_audits.rb b/Library/Homebrew/utils/shared_audits.rb index 51800436dd..7e390307bc 100644 --- a/Library/Homebrew/utils/shared_audits.rb +++ b/Library/Homebrew/utils/shared_audits.rb @@ -35,25 +35,15 @@ module SharedAudits release = github_release_data(user, repo, tag) return unless release - if !release["prerelease"] && cask && tap_audit_exception(:github_prerelease_allowlist, cask.tap, cask.token) - return "#{tag} is not a GitHub pre-release but cask '#{cask.token}' is in the GitHub prerelease allowlist." + exception, name, version = if formula + [tap_audit_exception(:github_prerelease_allowlist, formula.tap, formula.name), formula.name, formula.version] + elsif cask + [tap_audit_exception(:github_prerelease_allowlist, cask.tap, cask.token), cask.token, cask.version] end - if release["prerelease"] - exception = if formula - tap_audit_exception(:github_prerelease_allowlist, formula.tap, formula.name) - elsif cask - tap_audit_exception(:github_prerelease_allowlist, cask.tap, cask.token) - end - version = if formula - formula.version - elsif cask - cask.version - end - return if exception && [version, "all"].include?(exception) + return "#{tag} is a GitHub pre-release." if release["prerelease"] && [version, "all"].exclude?(exception) - return "#{tag} is a GitHub pre-release." - end + return "#{tag} is not a GitHub pre-release but '#{name}' is in the GitHub prerelease allowlist." if exception return "#{tag} is a GitHub draft." if release["draft"] end @@ -83,17 +73,12 @@ module SharedAudits return if Date.parse(release["released_at"]) <= Date.today - exception = if formula - tap_audit_exception(:gitlab_prerelease_allowlist, formula.tap, formula.name) + exception, version = if formula + [tap_audit_exception(:gitlab_prerelease_allowlist, formula.tap, formula.name), formula.version] elsif cask - tap_audit_exception(:gitlab_prerelease_allowlist, cask.tap, cask.token) + [tap_audit_exception(:gitlab_prerelease_allowlist, cask.tap, cask.token), cask.version] end - version = if formula - formula.version - elsif cask - cask.version - end - return if exception && [version, "all"].include?(exception) + return if [version, "all"].include?(exception) "#{tag} is a GitLab pre-release." end @@ -189,7 +174,7 @@ module SharedAudits when Array list.include? formula_or_cask when Hash - return false unless list.include? formula_or_cask + return false if list.exclude? formula_or_cask return list[formula_or_cask] if value.blank? list[formula_or_cask] == value