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:
Mike McQuaid
2026-08-06 10:35:48 +00:00
committed by GitHub
4 changed files with 65 additions and 9 deletions
+14
View File
@@ -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))
+2 -1
View File
@@ -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))
+49
View File
@@ -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" }
-8
View File
@@ -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