audit: cleanup shared audit exception handling

This commit is contained in:
Rylan Polster 2020-12-22 10:51:29 -05:00
parent ec4fe89a94
commit da29827a87
2 changed files with 14 additions and 29 deletions

View File

@ -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

View File

@ -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