From 1c10f51f9855076b541001b4b033800977d31a7b Mon Sep 17 00:00:00 2001 From: Dustin Rodrigues Date: Wed, 12 Aug 2020 10:31:59 -0400 Subject: [PATCH 1/3] audit: check GitHub tags for prerelease status --- Library/Homebrew/dev-cmd/audit.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index c8cf5f8039..605c3f4ac3 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -781,7 +781,7 @@ module Homebrew return if stable_url_minor_version.even? problem "#{stable.version} is a development release" - when %r{^https://github.com/([\w-]+)/([\w-]+)/} + when %r{^https://github.com/([\w-]+)/([\w-]+)} owner = Regexp.last_match(1) repo = Regexp.last_match(2) tag = url.match(%r{^https://github\.com/[\w-]+/[\w-]+/archive/([^/]+)\.(tar\.gz|zip)$}) @@ -790,6 +790,7 @@ module Homebrew tag ||= url.match(%r{^https://github\.com/[\w-]+/[\w-]+/releases/download/([^/]+)/}) .to_a .second + tag ||= formula.stable.specs[:tag] begin if @online && (release = GitHub.open_api("#{GitHub::API_URL}/repos/#{owner}/#{repo}/releases/tags/#{tag}")) From 4723e650564e831612d18550de4599e9b6396cde Mon Sep 17 00:00:00 2001 From: Dustin Rodrigues Date: Wed, 12 Aug 2020 21:33:37 -0400 Subject: [PATCH 2/3] audit: check formula version against prerelease allowlist version --- Library/Homebrew/dev-cmd/audit.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index 605c3f4ac3..6d81b4507a 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -794,7 +794,7 @@ module Homebrew begin if @online && (release = GitHub.open_api("#{GitHub::API_URL}/repos/#{owner}/#{repo}/releases/tags/#{tag}")) - if release["prerelease"] && !GITHUB_PRERELEASE_ALLOWLIST.include?(formula.name) + if release["prerelease"] && (GITHUB_PRERELEASE_ALLOWLIST[formula.name] != formula.version) problem "#{tag} is a GitHub prerelease" elsif release["draft"] problem "#{tag} is a GitHub draft" From 0bf7773a0baef2c925b88445f84867e1ef3bc382 Mon Sep 17 00:00:00 2001 From: Dustin Rodrigues Date: Wed, 12 Aug 2020 21:34:07 -0400 Subject: [PATCH 3/3] audit: add existing prerelease formulae to allowlist --- Library/Homebrew/dev-cmd/audit.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Library/Homebrew/dev-cmd/audit.rb b/Library/Homebrew/dev-cmd/audit.rb index 6d81b4507a..fa6b3e9e7a 100644 --- a/Library/Homebrew/dev-cmd/audit.rb +++ b/Library/Homebrew/dev-cmd/audit.rb @@ -684,8 +684,13 @@ module Homebrew }.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+$/, "")