Merge pull request #9493 from reitermarkus/url-unversioned
Add audit for unversioned URLs with checksum.
This commit is contained in:
commit
0ae8f0edc8
@ -248,6 +248,7 @@ module Cask
|
|||||||
return unless cask.sha256
|
return unless cask.sha256
|
||||||
|
|
||||||
check_sha256_no_check_if_latest
|
check_sha256_no_check_if_latest
|
||||||
|
check_sha256_no_check_if_unversioned
|
||||||
check_sha256_actually_256
|
check_sha256_actually_256
|
||||||
check_sha256_invalid
|
check_sha256_invalid
|
||||||
end
|
end
|
||||||
@ -260,6 +261,12 @@ module Cask
|
|||||||
add_error "you should use sha256 :no_check when version is :latest"
|
add_error "you should use sha256 :no_check when version is :latest"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def check_sha256_no_check_if_unversioned
|
||||||
|
return if cask.sha256 == :no_check
|
||||||
|
|
||||||
|
add_error "Use `sha256 :no_check` when URL is unversioned." if cask.url&.unversioned?
|
||||||
|
end
|
||||||
|
|
||||||
def check_sha256_actually_256
|
def check_sha256_actually_256
|
||||||
odebug "Verifying sha256 string is a legal SHA-256 digest"
|
odebug "Verifying sha256 string is a legal SHA-256 digest"
|
||||||
return unless cask.sha256.is_a?(Checksum)
|
return unless cask.sha256.is_a?(Checksum)
|
||||||
|
|||||||
@ -232,14 +232,14 @@ describe Cask::Audit, :cask do
|
|||||||
let(:online) { false }
|
let(:online) { false }
|
||||||
let(:cask) do
|
let(:cask) do
|
||||||
tmp_cask cask_token.to_s, <<~RUBY
|
tmp_cask cask_token.to_s, <<~RUBY
|
||||||
cask '#{cask_token}' do
|
cask "#{cask_token}" do
|
||||||
version '1.0'
|
version "1.0"
|
||||||
sha256 '8dd95daa037ac02455435446ec7bc737b34567afe9156af7d20b2a83805c1d8a'
|
sha256 "8dd95daa037ac02455435446ec7bc737b34567afe9156af7d20b2a83805c1d8a"
|
||||||
url "https://brew.sh/"
|
url "https://brew.sh/v\#{version}.zip"
|
||||||
name 'Audit'
|
name "Audit"
|
||||||
desc 'Cask for testing tokens'
|
desc "Cask for testing tokens"
|
||||||
homepage 'https://brew.sh/'
|
homepage "https://brew.sh/"
|
||||||
app 'Audit.app'
|
app "Audit.app"
|
||||||
end
|
end
|
||||||
RUBY
|
RUBY
|
||||||
end
|
end
|
||||||
@ -877,14 +877,14 @@ describe Cask::Audit, :cask do
|
|||||||
let(:cask_token) { "with-description" }
|
let(:cask_token) { "with-description" }
|
||||||
let(:cask) do
|
let(:cask) do
|
||||||
tmp_cask cask_token.to_s, <<~RUBY
|
tmp_cask cask_token.to_s, <<~RUBY
|
||||||
cask '#{cask_token}' do
|
cask "#{cask_token}" do
|
||||||
version '1.0'
|
version "1.0"
|
||||||
sha256 '8dd95daa037ac02455435446ec7bc737b34567afe9156af7d20b2a83805c1d8a'
|
sha256 "8dd95daa037ac02455435446ec7bc737b34567afe9156af7d20b2a83805c1d8a"
|
||||||
url "https://brew.sh/"
|
url "https://brew.sh/\#{version}.zip"
|
||||||
name 'Audit'
|
name "Audit"
|
||||||
desc 'Cask Auditor'
|
desc "Cask Auditor"
|
||||||
homepage 'https://brew.sh/'
|
homepage "https://brew.sh/"
|
||||||
app 'Audit.app'
|
app "Audit.app"
|
||||||
end
|
end
|
||||||
RUBY
|
RUBY
|
||||||
end
|
end
|
||||||
|
|||||||
@ -10,12 +10,12 @@ describe Cask::Cmd::Cat, :cask do
|
|||||||
|
|
||||||
describe "given a basic Cask" do
|
describe "given a basic Cask" do
|
||||||
let(:basic_cask_content) {
|
let(:basic_cask_content) {
|
||||||
<<~RUBY
|
<<~'RUBY'
|
||||||
cask "basic-cask" do
|
cask "basic-cask" do
|
||||||
version "1.2.3"
|
version "1.2.3"
|
||||||
sha256 "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
sha256 "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
|
||||||
url "https://brew.sh/TestCask.dmg"
|
url "https://brew.sh/TestCask-#{version}.dmg"
|
||||||
name "Basic Cask"
|
name "Basic Cask"
|
||||||
desc "Cask for testing basic functionality"
|
desc "Cask for testing basic functionality"
|
||||||
homepage "https://brew.sh/"
|
homepage "https://brew.sh/"
|
||||||
|
|||||||
@ -7,7 +7,7 @@ describe Cask::DSL, :cask do
|
|||||||
|
|
||||||
context "stanzas" do
|
context "stanzas" do
|
||||||
it "lets you set url, homepage, and version" do
|
it "lets you set url, homepage, and version" do
|
||||||
expect(cask.url.to_s).to eq("https://brew.sh/TestCask.dmg")
|
expect(cask.url.to_s).to eq("https://brew.sh/TestCask-1.2.3.dmg")
|
||||||
expect(cask.homepage).to eq("https://brew.sh/")
|
expect(cask.homepage).to eq("https://brew.sh/")
|
||||||
expect(cask.version.to_s).to eq("1.2.3")
|
expect(cask.version.to_s).to eq("1.2.3")
|
||||||
end
|
end
|
||||||
@ -66,7 +66,7 @@ describe Cask::DSL, :cask do
|
|||||||
|
|
||||||
it "does not require a DSL version in the header" do
|
it "does not require a DSL version in the header" do
|
||||||
expect(cask.token).to eq("no-dsl-version")
|
expect(cask.token).to eq("no-dsl-version")
|
||||||
expect(cask.url.to_s).to eq("https://brew.sh/TestCask.dmg")
|
expect(cask.url.to_s).to eq("https://brew.sh/TestCask-1.2.3.dmg")
|
||||||
expect(cask.homepage).to eq("https://brew.sh/")
|
expect(cask.homepage).to eq("https://brew.sh/")
|
||||||
expect(cask.version.to_s).to eq("1.2.3")
|
expect(cask.version.to_s).to eq("1.2.3")
|
||||||
end
|
end
|
||||||
|
|||||||
@ -2,7 +2,7 @@ cask "adobe-air" do
|
|||||||
version "1.2.3"
|
version "1.2.3"
|
||||||
sha256 "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
sha256 "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
|
||||||
url "https://brew.sh/TestCask.dmg"
|
url "https://brew.sh/TestCask-#{version}.dmg"
|
||||||
name "Adobe AIR"
|
name "Adobe AIR"
|
||||||
desc "Cross-platform application runtime"
|
desc "Cross-platform application runtime"
|
||||||
homepage "https://brew.sh/"
|
homepage "https://brew.sh/"
|
||||||
|
|||||||
@ -2,7 +2,7 @@ cask "adobe-illustrator" do
|
|||||||
version "1.2.3"
|
version "1.2.3"
|
||||||
sha256 "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
sha256 "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
|
||||||
url "https://brew.sh/TestCask.dmg"
|
url "https://brew.sh/TestCask-#{version}.dmg"
|
||||||
name "Adobe Illustrator"
|
name "Adobe Illustrator"
|
||||||
homepage "https://brew.sh/"
|
homepage "https://brew.sh/"
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@ cask "basic-cask" do
|
|||||||
version "1.2.3"
|
version "1.2.3"
|
||||||
sha256 "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
sha256 "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
|
||||||
url "https://brew.sh/TestCask.dmg"
|
url "https://brew.sh/TestCask-#{version}.dmg"
|
||||||
name "Basic Cask"
|
name "Basic Cask"
|
||||||
desc "Cask for testing basic functionality"
|
desc "Cask for testing basic functionality"
|
||||||
homepage "https://brew.sh/"
|
homepage "https://brew.sh/"
|
||||||
|
|||||||
@ -2,7 +2,7 @@ cask "no-dsl-version" do
|
|||||||
version "1.2.3"
|
version "1.2.3"
|
||||||
sha256 "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
sha256 "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
|
||||||
url "https://brew.sh/TestCask.dmg"
|
url "https://brew.sh/TestCask-#{version}.dmg"
|
||||||
homepage "https://brew.sh/"
|
homepage "https://brew.sh/"
|
||||||
|
|
||||||
app "TestCask.app"
|
app "TestCask.app"
|
||||||
|
|||||||
@ -2,7 +2,7 @@ cask "pharo" do
|
|||||||
version "1.2.3"
|
version "1.2.3"
|
||||||
sha256 "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
sha256 "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b"
|
||||||
|
|
||||||
url "https://brew.sh/ThirdParty.dmg"
|
url "https://brew.sh/ThirdParty-#{version}.dmg"
|
||||||
name "Pharo"
|
name "Pharo"
|
||||||
desc "Cask from a third-party tap"
|
desc "Cask from a third-party tap"
|
||||||
homepage "https://brew.sh/"
|
homepage "https://brew.sh/"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user