Move more common code into SharedAudits.
This commit is contained in:
parent
397f9caa78
commit
5f7c814593
@ -466,14 +466,9 @@ module Cask
|
|||||||
user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}) if @online
|
user, repo = get_repo_data(%r{https?://github\.com/([^/]+)/([^/]+)/?.*}) if @online
|
||||||
return if user.nil?
|
return if user.nil?
|
||||||
|
|
||||||
metadata = SharedAudits.github_release_data(user, repo, cask.version)
|
# TODO: Detect tag from URL instead of using `cask.version`.
|
||||||
return if metadata.nil?
|
error = SharedAudits.github_release(user, repo, cask.version, cask: cask)
|
||||||
|
add_error error if error
|
||||||
if metadata["prerelease"]
|
|
||||||
add_error "#{cask.version} is a GitHub prerelease"
|
|
||||||
elsif metadata["draft"]
|
|
||||||
add_error "#{cask.version} is a GitHub draft"
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def check_gitlab_prerelease_version
|
def check_gitlab_prerelease_version
|
||||||
|
|||||||
@ -703,16 +703,6 @@ module Homebrew
|
|||||||
|
|
||||||
GITLAB_PRERELEASE_ALLOWLIST = {}.freeze
|
GITLAB_PRERELEASE_ALLOWLIST = {}.freeze
|
||||||
|
|
||||||
GITHUB_PRERELEASE_ALLOWLIST = {
|
|
||||||
"cbmc" => "5.12.6",
|
|
||||||
"elm-format" => "0.8.3",
|
|
||||||
"gitless" => "0.8.8",
|
|
||||||
"infrakit" => "0.5",
|
|
||||||
"riff" => "0.5.0",
|
|
||||||
"telegram-cli" => "1.3.1",
|
|
||||||
"volta" => "0.8.6",
|
|
||||||
}.freeze
|
|
||||||
|
|
||||||
# version_prefix = stable_version_string.sub(/\d+$/, "")
|
# version_prefix = stable_version_string.sub(/\d+$/, "")
|
||||||
# version_prefix = stable.version.major_minor
|
# version_prefix = stable.version.major_minor
|
||||||
|
|
||||||
@ -813,12 +803,9 @@ module Homebrew
|
|||||||
.second
|
.second
|
||||||
tag ||= formula.stable.specs[:tag]
|
tag ||= formula.stable.specs[:tag]
|
||||||
|
|
||||||
if @online && (release = SharedAudits.github_release_data(owner, repo, tag))
|
if @online
|
||||||
if release["prerelease"] && (GITHUB_PRERELEASE_ALLOWLIST[formula.name] != formula.version)
|
error = SharedAudits.github_release(owner, repo, tag, formula: formula)
|
||||||
problem "#{tag} is a GitHub prerelease"
|
problem error if error
|
||||||
elsif release["draft"]
|
|
||||||
problem "#{tag} is a GitHub draft"
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -27,6 +27,35 @@ module SharedAudits
|
|||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
GITHUB_PRERELEASE_ALLOWLIST = {
|
||||||
|
"cbmc" => "5.12.6",
|
||||||
|
"elm-format" => "0.8.3",
|
||||||
|
"gitless" => "0.8.8",
|
||||||
|
"infrakit" => "0.5",
|
||||||
|
"riff" => "0.5.0",
|
||||||
|
"telegram-cli" => "1.3.1",
|
||||||
|
"volta" => "0.8.6",
|
||||||
|
}.freeze
|
||||||
|
|
||||||
|
def github_release(user, repo, tag, formula: nil, cask: nil)
|
||||||
|
release = github_release_data(user, repo, tag)
|
||||||
|
return unless release
|
||||||
|
|
||||||
|
if cask && GITHUB_PRERELEASE_ALLOWLIST[cask.token] == :all
|
||||||
|
return if release["prerelease"]
|
||||||
|
|
||||||
|
return "#{tag} is not a GitHub pre-release but cask '#{cask.token}' is in GITHUB_PRERELEASE_ALLOWLIST."
|
||||||
|
end
|
||||||
|
|
||||||
|
if release["prerelease"]
|
||||||
|
return if formula && GITHUB_PRERELEASE_ALLOWLIST[formula.name] == formula.version
|
||||||
|
|
||||||
|
return "#{tag} is a GitHub pre-release."
|
||||||
|
end
|
||||||
|
|
||||||
|
return "#{tag} is a GitHub draft." if release["draft"]
|
||||||
|
end
|
||||||
|
|
||||||
def gitlab_repo_data(user, repo)
|
def gitlab_repo_data(user, repo)
|
||||||
@gitlab_repo_data ||= {}
|
@gitlab_repo_data ||= {}
|
||||||
@gitlab_repo_data["#{user}/#{repo}"] ||= begin
|
@gitlab_repo_data["#{user}/#{repo}"] ||= begin
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user