mirror of
https://github.com/Homebrew/brew.git
synced 2026-08-12 22:29:27 +04:00
Merge pull request #23456 from AlternateRT/audit-reject-verified-on-new-casks
cask/audit: reject verified parameter on new casks
This commit is contained in:
@@ -491,6 +491,15 @@ module Cask
|
||||
add_error "OSDN download urls are disabled.", location: url.location, strict_only: true
|
||||
end
|
||||
|
||||
sig { void }
|
||||
def audit_unnecessary_verified
|
||||
return unless new_cask?
|
||||
return unless cask.url
|
||||
return unless verified_present?
|
||||
|
||||
add_error "the `verified` parameter has been deprecated; use the `url` stanza without it"
|
||||
end
|
||||
|
||||
sig { void }
|
||||
def audit_generic_artifacts
|
||||
cask.artifacts.grep(Artifact::Artifact).each do |artifact|
|
||||
@@ -1369,6 +1378,11 @@ module Cask
|
||||
URI(cask.url.to_s).host
|
||||
end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def verified_present?
|
||||
cask.url&.verified.present?
|
||||
end
|
||||
|
||||
sig { returns(Tap) }
|
||||
def core_tap
|
||||
@core_tap ||= T.let(CoreTap.instance, T.nilable(Tap))
|
||||
|
||||
@@ -35,7 +35,7 @@ module Cask
|
||||
attr_reader :using
|
||||
|
||||
sig { returns(T.nilable(String)) }
|
||||
attr_reader :tag, :branch, :revision, :only_path
|
||||
attr_reader :tag, :branch, :revision, :only_path, :verified
|
||||
|
||||
extend Forwardable
|
||||
|
||||
@@ -73,6 +73,7 @@ module Cask
|
||||
header = Array(header) unless header.nil?
|
||||
|
||||
specs = {}
|
||||
specs[:verified] = @verified = T.let(verified, T.nilable(String))
|
||||
specs[:using] = @using = T.let(using, T.nilable(T.any(T::Class[AbstractDownloadStrategy], Symbol)))
|
||||
specs[:tag] = @tag = T.let(tag, T.nilable(String))
|
||||
specs[:branch] = @branch = T.let(branch, T.nilable(String))
|
||||
|
||||
@@ -1530,6 +1530,55 @@ RSpec.describe Cask::Audit, :cask do
|
||||
end
|
||||
end
|
||||
|
||||
describe "checking verified" do
|
||||
let(:only) { %w[unnecessary_verified] }
|
||||
let(:cask_token) { "with-verified" }
|
||||
let(:cask) do
|
||||
tmp_cask cask_token.to_s, <<~RUBY
|
||||
cask "#{cask_token}" do
|
||||
version "1.8.0_72,8.13.0.5"
|
||||
sha256 "8dd95daa037ac02455435446ec7bc737b34567afe9156af7d20b2a83805c1d8a"
|
||||
url "https://brew.sh/foo-\#{version.after_comma}.zip", verified: "brew.sh/"
|
||||
name "Audit"
|
||||
desc "Audit Description"
|
||||
homepage "https://foo.example.org"
|
||||
app "Audit.app"
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
context "when `new_cask` is true" do
|
||||
let(:new_cask) { true }
|
||||
|
||||
it { is_expected.to error_with(/the `verified` parameter has been deprecated/) }
|
||||
end
|
||||
|
||||
context "when `new_cask` is false" do
|
||||
let(:new_cask) { false }
|
||||
|
||||
it { is_expected.to pass }
|
||||
end
|
||||
|
||||
context "without verified" do
|
||||
let(:cask_token) { "without-verified" }
|
||||
let(:cask) do
|
||||
tmp_cask cask_token.to_s, <<~RUBY
|
||||
cask "#{cask_token}" do
|
||||
version "1.8.0_72,8.13.0.5"
|
||||
sha256 "8dd95daa037ac02455435446ec7bc737b34567afe9156af7d20b2a83805c1d8a"
|
||||
url "https://brew.sh/foo-\#{version.after_comma}.zip"
|
||||
name "Audit"
|
||||
desc "Audit Description"
|
||||
homepage "https://foo.example.org"
|
||||
app "Audit.app"
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
it { is_expected.to pass }
|
||||
end
|
||||
end
|
||||
|
||||
describe "checking deprecate/disable" do
|
||||
let(:only) { ["deprecate_disable"] }
|
||||
let(:cask_token) { "deprecated-cask" }
|
||||
|
||||
@@ -412,14 +412,6 @@ RSpec.describe Cask::DSL, :cask, :no_api do
|
||||
it "prevents defining multiple urls" do
|
||||
expect { cask }.to raise_error(Cask::CaskInvalidError, /'url' stanza may only appear once/)
|
||||
end
|
||||
|
||||
it "allows the `verified` parameter as a no-op" do
|
||||
cask = Cask::Cask.new("cask-with-verified-url") do
|
||||
url "https://brew.sh/test.zip", verified: "brew.sh"
|
||||
end
|
||||
|
||||
expect(cask.url.specs).not_to have_key(:verified)
|
||||
end
|
||||
end
|
||||
|
||||
describe "homepage stanza" do
|
||||
|
||||
Reference in New Issue
Block a user