cocoapods-whitelist 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +49 -42
- data/cocoapods-whitelist.gemspec +1 -1
- data/lib/cocoapods-whitelist/client/whitelist_resolver.rb +10 -2
- data/lib/cocoapods-whitelist/command/whitelist.rb +18 -2
- data/lib/cocoapods-whitelist/gem_version.rb +1 -1
- data/lib/cocoapods-whitelist/model/allowed_dependency.rb +3 -1
- data/spec/mocks/allowed_with_granular.podspec +13 -0
- data/spec/mocks/not_allowed_with_granular.podspec +13 -0
- data/spec/mocks/whitelist.json +8 -0
- data/spec/source_helper_spec.rb +4 -4
- data/spec/source_validator_spec.rb +5 -5
- data/spec/whitelist_resolver_spec.rb +1 -1
- data/spec/whitelist_spec.rb +15 -0
- metadata +9 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ffc625c9e77a33e388bb3ab6aefa68a411c867566c5ce36b5940968379158392
|
4
|
+
data.tar.gz: cc94531be7b38d3083602ed904b1db8b5ff2a10fd754a2a231ee2a2cecbbbc3a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e0584e160d8a3d3882df0e6160ad4e6bd2618dda858b6bbe0bf29895dd65cfc664beff4984bf02dc8e5af66c5da53a37611bc23425575e57d4ef371154a6383b
|
7
|
+
data.tar.gz: f138505fea9899de8b1e5a91391071dc5b114f2520ffb4fa1f5a59ae2b01eed614db6320228ac72a967febfff5fae6beea0c0cb620b0188ac7306bcbbabba2cf
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.1.4
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,112 +1,119 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cocoapods-whitelist (0.
|
4
|
+
cocoapods-whitelist (0.4.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
CFPropertyList (3.0.
|
10
|
-
|
9
|
+
CFPropertyList (3.0.6)
|
10
|
+
rexml
|
11
|
+
activesupport (6.1.7.6)
|
11
12
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
12
|
-
i18n (>=
|
13
|
-
minitest (
|
14
|
-
tzinfo (~>
|
15
|
-
|
16
|
-
|
13
|
+
i18n (>= 1.6, < 2)
|
14
|
+
minitest (>= 5.1)
|
15
|
+
tzinfo (~> 2.0)
|
16
|
+
zeitwerk (~> 2.3)
|
17
|
+
addressable (2.8.5)
|
18
|
+
public_suffix (>= 2.0.2, < 6.0)
|
17
19
|
algoliasearch (1.27.5)
|
18
20
|
httpclient (~> 2.8, >= 2.8.3)
|
19
21
|
json (>= 1.5.1)
|
20
22
|
atomos (0.1.3)
|
21
23
|
bacon (1.2.0)
|
22
|
-
claide (1.0
|
23
|
-
cocoapods (1.
|
24
|
-
addressable (~> 2.
|
24
|
+
claide (1.1.0)
|
25
|
+
cocoapods (1.13.0)
|
26
|
+
addressable (~> 2.8)
|
25
27
|
claide (>= 1.0.2, < 2.0)
|
26
|
-
cocoapods-core (= 1.
|
28
|
+
cocoapods-core (= 1.13.0)
|
27
29
|
cocoapods-deintegrate (>= 1.0.3, < 2.0)
|
28
|
-
cocoapods-downloader (>= 1.
|
30
|
+
cocoapods-downloader (>= 1.6.0, < 2.0)
|
29
31
|
cocoapods-plugins (>= 1.0.0, < 2.0)
|
30
32
|
cocoapods-search (>= 1.0.0, < 2.0)
|
31
|
-
cocoapods-trunk (>= 1.
|
33
|
+
cocoapods-trunk (>= 1.6.0, < 2.0)
|
32
34
|
cocoapods-try (>= 1.1.0, < 2.0)
|
33
35
|
colored2 (~> 3.1)
|
34
36
|
escape (~> 0.0.4)
|
35
37
|
fourflusher (>= 2.3.0, < 3.0)
|
36
38
|
gh_inspector (~> 1.0)
|
37
|
-
molinillo (~> 0.
|
39
|
+
molinillo (~> 0.8.0)
|
38
40
|
nap (~> 1.0)
|
39
|
-
ruby-macho (
|
40
|
-
xcodeproj (>= 1.
|
41
|
-
cocoapods-core (1.
|
42
|
-
activesupport (
|
43
|
-
addressable (~> 2.
|
41
|
+
ruby-macho (>= 2.3.0, < 3.0)
|
42
|
+
xcodeproj (>= 1.23.0, < 2.0)
|
43
|
+
cocoapods-core (1.13.0)
|
44
|
+
activesupport (>= 5.0, < 8)
|
45
|
+
addressable (~> 2.8)
|
44
46
|
algoliasearch (~> 1.0)
|
45
47
|
concurrent-ruby (~> 1.1)
|
46
48
|
fuzzy_match (~> 2.0.4)
|
47
49
|
nap (~> 1.0)
|
48
50
|
netrc (~> 0.11)
|
49
|
-
public_suffix
|
51
|
+
public_suffix (~> 4.0)
|
50
52
|
typhoeus (~> 1.0)
|
51
|
-
cocoapods-deintegrate (1.0.
|
52
|
-
cocoapods-downloader (1.
|
53
|
+
cocoapods-deintegrate (1.0.5)
|
54
|
+
cocoapods-downloader (1.6.3)
|
53
55
|
cocoapods-plugins (1.0.0)
|
54
56
|
nap
|
55
|
-
cocoapods-search (1.0.
|
56
|
-
cocoapods-trunk (1.
|
57
|
+
cocoapods-search (1.0.1)
|
58
|
+
cocoapods-trunk (1.6.0)
|
57
59
|
nap (>= 0.8, < 2.0)
|
58
60
|
netrc (~> 0.11)
|
59
61
|
cocoapods-try (1.2.0)
|
60
62
|
colored2 (3.1.2)
|
61
|
-
concurrent-ruby (1.
|
63
|
+
concurrent-ruby (1.2.2)
|
62
64
|
escape (0.0.4)
|
63
|
-
ethon (0.
|
64
|
-
ffi (>= 1.
|
65
|
-
ffi (1.
|
65
|
+
ethon (0.16.0)
|
66
|
+
ffi (>= 1.15.0)
|
67
|
+
ffi (1.16.3)
|
66
68
|
fourflusher (2.3.1)
|
67
69
|
fuzzy_match (2.0.4)
|
68
70
|
gh_inspector (1.1.3)
|
69
71
|
httpclient (2.8.3)
|
70
|
-
i18n (1.
|
72
|
+
i18n (1.14.1)
|
71
73
|
concurrent-ruby (~> 1.0)
|
72
|
-
json (2.
|
73
|
-
minitest (5.
|
74
|
-
mocha (1.
|
74
|
+
json (2.6.3)
|
75
|
+
minitest (5.20.0)
|
76
|
+
mocha (2.1.0)
|
77
|
+
ruby2_keywords (>= 0.0.5)
|
75
78
|
mocha-on-bacon (0.2.3)
|
76
79
|
mocha (>= 0.13.0)
|
77
|
-
molinillo (0.
|
80
|
+
molinillo (0.8.0)
|
78
81
|
nanaimo (0.3.0)
|
79
82
|
nap (1.1.0)
|
80
83
|
netrc (0.11.0)
|
81
84
|
prettybacon (0.0.2)
|
82
85
|
bacon (~> 1.2)
|
83
|
-
public_suffix (4.0.
|
86
|
+
public_suffix (4.0.7)
|
84
87
|
rake (12.3.3)
|
85
|
-
|
86
|
-
|
88
|
+
rexml (3.2.6)
|
89
|
+
ruby-macho (2.5.1)
|
90
|
+
ruby2_keywords (0.0.5)
|
87
91
|
typhoeus (1.4.0)
|
88
92
|
ethon (>= 0.9.0)
|
89
|
-
tzinfo (
|
90
|
-
|
91
|
-
xcodeproj (1.
|
93
|
+
tzinfo (2.0.6)
|
94
|
+
concurrent-ruby (~> 1.0)
|
95
|
+
xcodeproj (1.23.0)
|
92
96
|
CFPropertyList (>= 2.3.3, < 4.0)
|
93
97
|
atomos (~> 0.1.3)
|
94
98
|
claide (>= 1.0.2, < 2.0)
|
95
99
|
colored2 (~> 3.1)
|
96
100
|
nanaimo (~> 0.3.0)
|
101
|
+
rexml (~> 3.2.4)
|
102
|
+
zeitwerk (2.6.12)
|
97
103
|
|
98
104
|
PLATFORMS
|
99
|
-
|
105
|
+
universal-darwin-22
|
100
106
|
|
101
107
|
DEPENDENCIES
|
102
108
|
bacon
|
103
109
|
bundler (~> 2.0)
|
104
110
|
cocoapods
|
105
111
|
cocoapods-whitelist!
|
112
|
+
json
|
106
113
|
mocha
|
107
114
|
mocha-on-bacon
|
108
115
|
prettybacon
|
109
116
|
rake (~> 12.0)
|
110
117
|
|
111
118
|
BUNDLED WITH
|
112
|
-
2.
|
119
|
+
2.4.22
|
data/cocoapods-whitelist.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ['mobile@mercadolibre.com']
|
11
11
|
spec.description = %q{A short description of cocoapods-whitelist.}
|
12
12
|
spec.summary = %q{A longer description of cocoapods-whitelist.}
|
13
|
-
spec.homepage = 'https://github.com/
|
13
|
+
spec.homepage = 'https://github.com/melisource/mobile-cocoapods_whitelist'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'singleton'
|
2
|
+
require 'open-uri'
|
2
3
|
require 'cocoapods-whitelist/model/allowed_dependency'
|
3
4
|
|
4
5
|
class WhitelistResolver
|
@@ -26,7 +27,7 @@ class WhitelistResolver
|
|
26
27
|
|
27
28
|
def load_whitelist
|
28
29
|
begin
|
29
|
-
open(@whitelist_url) { |io|
|
30
|
+
URI.open(@whitelist_url) { |io|
|
30
31
|
buffer = io.read
|
31
32
|
@whitelist = parse_whitelist(buffer)
|
32
33
|
@whitelist_loaded = true
|
@@ -40,7 +41,14 @@ class WhitelistResolver
|
|
40
41
|
def parse_whitelist(raw_whitelist)
|
41
42
|
json = JSON.parse(raw_whitelist)
|
42
43
|
return json["whitelist"].map { |dependencyJson|
|
43
|
-
AllowedDependency.new(
|
44
|
+
AllowedDependency.new(
|
45
|
+
dependencyJson["name"],
|
46
|
+
dependencyJson["version"],
|
47
|
+
dependencyJson["expire"],
|
48
|
+
dependencyJson["source"],
|
49
|
+
dependencyJson["target"],
|
50
|
+
dependencyJson["allows_granular_projects"]
|
51
|
+
)
|
44
52
|
}
|
45
53
|
end
|
46
54
|
end
|
@@ -93,13 +93,27 @@ module Pod
|
|
93
93
|
name.start_with?(item.name.match(POD_NAME_REGEX).captures[POD_BASE_REGEX_POSITION]) && (!item.version || versions.grep(/#{item.version}/).any?) && (item.target == 'production')
|
94
94
|
}
|
95
95
|
|
96
|
-
# Checks if any of the allowed dependencies are expired, if so, fail with error
|
97
96
|
allowedDependency.each { |dependency|
|
97
|
+
|
98
|
+
# Checks the granularity
|
99
|
+
if dependency.allows_granular_projects != nil
|
100
|
+
granular_projects = dependency.allows_granular_projects.select { |granular_project|
|
101
|
+
granular_project == pod_name
|
102
|
+
}
|
103
|
+
|
104
|
+
if granular_projects.empty?
|
105
|
+
not_allowed.push("#{name} Reason: Granular dependency not allowed for this project.")
|
106
|
+
next
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
# Checks if any of the allowed dependencies are expired, if so, fail with error
|
98
111
|
if dependency.expire?
|
99
112
|
not_allowed.push("#{name} Reason: Expired version. Please check the whitelist.")
|
100
113
|
end
|
101
|
-
}
|
102
114
|
|
115
|
+
}
|
116
|
+
|
103
117
|
if allowedDependency.empty?
|
104
118
|
not_allowed.push("#{name} (#{versions.join(", ")}) Reason: Specified version hasn't match any whitelisted version or Pod name is not valid")
|
105
119
|
next
|
@@ -163,6 +177,7 @@ module Pod
|
|
163
177
|
FileUtils.mkdir_p(File.dirname(@outfile))
|
164
178
|
end
|
165
179
|
end
|
180
|
+
|
166
181
|
## Load a list of pods excluded from the validations, wrapped in ValidationExcluded.
|
167
182
|
def load_excluded
|
168
183
|
path = File.expand_path("../../exclude/excluded.json", __FILE__)
|
@@ -171,6 +186,7 @@ module Pod
|
|
171
186
|
@excluded_list = parse_excluded(file)
|
172
187
|
@excluded_list_loaded = true
|
173
188
|
end
|
189
|
+
|
174
190
|
## Aux function to populate the ValidationExcluded models from the JSON data.
|
175
191
|
def parse_excluded(list)
|
176
192
|
json = JSON.parse(list)
|
@@ -4,13 +4,15 @@ class AllowedDependency
|
|
4
4
|
attr_accessor :expire
|
5
5
|
attr_accessor :source
|
6
6
|
attr_accessor :target
|
7
|
+
attr_accessor :allows_granular_projects
|
7
8
|
|
8
|
-
def initialize(name, version, expire, source, target)
|
9
|
+
def initialize(name, version, expire, source, target, allows_granular_projects)
|
9
10
|
@name = name
|
10
11
|
@version = version
|
11
12
|
@expire = expire
|
12
13
|
@source = source
|
13
14
|
@target = target
|
15
|
+
@allows_granular_projects = allows_granular_projects
|
14
16
|
end
|
15
17
|
|
16
18
|
def expire?
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Pod::Spec.new do |s|
|
2
|
+
s.name = "MLSearch"
|
3
|
+
s.version = "3.17.0"
|
4
|
+
s.summary = "Componente de search"
|
5
|
+
s.homepage = "http://www.mercadolibre.com.ar"
|
6
|
+
s.license = "none"
|
7
|
+
s.author = { "Mobile team" => "mobile@mercadolibre.com" }
|
8
|
+
s.platform = :ios, "7.0"
|
9
|
+
s.source = { :git => "git@github.com:mercadolibre/search-ios.git", :tag => s.version.to_s }
|
10
|
+
s.requires_arc = true
|
11
|
+
s.dependency 'Analytics', '~>5.1'
|
12
|
+
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
Pod::Spec.new do |s|
|
2
|
+
s.name = "MeliSDK"
|
3
|
+
s.version = "3.17.0"
|
4
|
+
s.summary = "Componente de search"
|
5
|
+
s.homepage = "http://www.mercadolibre.com.ar"
|
6
|
+
s.license = "none"
|
7
|
+
s.author = { "Mobile team" => "mobile@mercadolibre.com" }
|
8
|
+
s.platform = :ios, "7.0"
|
9
|
+
s.source = { :git => "git@github.com:mercadolibre/search-ios.git", :tag => s.version.to_s }
|
10
|
+
s.requires_arc = true
|
11
|
+
s.dependency 'Analytics', '~>5.1'
|
12
|
+
|
13
|
+
end
|
data/spec/mocks/whitelist.json
CHANGED
data/spec/source_helper_spec.rb
CHANGED
@@ -6,11 +6,11 @@ describe SourceHelper do
|
|
6
6
|
|
7
7
|
SourceHelper.instance.specs = [] # Avoid a non-empty SourceHelper
|
8
8
|
|
9
|
-
private_sources = [ "git@github.com:
|
9
|
+
private_sources = [ "git@github.com:melisource/mobile-ios_specs.git", "git@github.com:testable/testable_specs.git" ]
|
10
10
|
|
11
11
|
private_meli_specs = ["MyMELIPod1", "MyMELIPod2", "MyMELIPod3"]
|
12
12
|
meli_mock = mock()
|
13
|
-
meli_mock.stubs(:url).returns("git@github.com:
|
13
|
+
meli_mock.stubs(:url).returns("git@github.com:melisource/mobile-ios_specs.git")
|
14
14
|
meli_mock.stubs(:pods).returns(private_meli_specs)
|
15
15
|
|
16
16
|
private_cocoapods_cdn_specs = ["MyPublicPod1", "MyPublicPod2", "MyPublicPod2"]
|
@@ -38,11 +38,11 @@ describe SourceHelper do
|
|
38
38
|
|
39
39
|
SourceHelper.instance.specs = [] # Avoid a non-empty SourceHelper
|
40
40
|
|
41
|
-
private_sources = [ "git@github.com:
|
41
|
+
private_sources = [ "git@github.com:melisource/mobile-ios_specs.git", "git@github.com:testable/testable_specs.git" ]
|
42
42
|
|
43
43
|
private_meli_specs = []
|
44
44
|
meli_mock = mock()
|
45
|
-
meli_mock.stubs(:url).returns("git@github.com:
|
45
|
+
meli_mock.stubs(:url).returns("git@github.com:melisource/mobile-ios_specs.git")
|
46
46
|
meli_mock.stubs(:pods).returns(private_meli_specs)
|
47
47
|
|
48
48
|
private_cocoapods_cdn_specs = []
|
@@ -4,7 +4,7 @@ describe SourceValidator do
|
|
4
4
|
describe 'functionality' do
|
5
5
|
it 'external dependency that comes from a public source should be valid' do
|
6
6
|
|
7
|
-
private_sources = [ "git@github.com:
|
7
|
+
private_sources = [ "git@github.com:melisource/mobile-ios_specs.git" ]
|
8
8
|
private_specs = ["MyPod1", "MyPod1", "MyPod3"]
|
9
9
|
|
10
10
|
stub_url = stub(:url => 'https://cdn.cocoapods.org/')
|
@@ -20,7 +20,7 @@ describe SourceValidator do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'internal dependency that comes from a public source should not be valid' do
|
23
|
-
private_sources = [ "git@github.com:
|
23
|
+
private_sources = [ "git@github.com:melisource/mobile-ios_specs.git" ]
|
24
24
|
private_specs = ["MyPod1", "MyPod1", "MyPod3", "MyInternalPod"]
|
25
25
|
|
26
26
|
stub_url = stub(:url => 'https://cdn.cocoapods.org/')
|
@@ -37,10 +37,10 @@ describe SourceValidator do
|
|
37
37
|
|
38
38
|
it 'internal dependency that comes from private source should be valid' do
|
39
39
|
|
40
|
-
private_sources = [ "git@github.com:
|
40
|
+
private_sources = [ "git@github.com:melisource/mobile-ios_specs.git" ]
|
41
41
|
private_specs = ["MyPod1", "MyPod1", "MyPod3", "MyInternalPod"]
|
42
42
|
|
43
|
-
stub_url = stub(:url => 'git@github.com:
|
43
|
+
stub_url = stub(:url => 'git@github.com:melisource/mobile-ios_specs.git')
|
44
44
|
spec_mock = mock()
|
45
45
|
spec_mock.stubs(:spec_source).returns(stub_url)
|
46
46
|
spec_mock.stubs(:defined_in_file).returns(nil?)
|
@@ -54,7 +54,7 @@ describe SourceValidator do
|
|
54
54
|
|
55
55
|
it 'development pods should be valid' do
|
56
56
|
|
57
|
-
private_sources = [ "git@github.com:
|
57
|
+
private_sources = [ "git@github.com:melisource/mobile-ios_specs.git" ]
|
58
58
|
private_specs = ["MyPod1", "MyPod1", "MyPod3", "MyInternalPod"]
|
59
59
|
|
60
60
|
stub_url = stub(:url => '')
|
@@ -6,7 +6,7 @@ describe WhitelistResolver do
|
|
6
6
|
describe 'functionality' do
|
7
7
|
it 'whitelist should be loaded from an specific url' do
|
8
8
|
whitelist = WhitelistResolver.instance.get_whitelist(WHITELIST_PATH)
|
9
|
-
whitelist.size.should.equal
|
9
|
+
whitelist.size.should.equal 7
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'if not URL is specified, whitelist comes from default URL' do
|
data/spec/whitelist_spec.rb
CHANGED
@@ -171,6 +171,21 @@ module Pod
|
|
171
171
|
command = Command.parse(['whitelist', "--config=#{WHITELIST_FILE}"])
|
172
172
|
lambda { command.run }.should.not.raise
|
173
173
|
end
|
174
|
+
|
175
|
+
it 'allowed granular dependency should be valid' do
|
176
|
+
command = Command.parse(['whitelist', "--config=#{WHITELIST_FILE}", "--fail-on-error"])
|
177
|
+
specification = Pod::Specification.from_file('./spec/mocks/allowed_with_granular.podspec')
|
178
|
+
command.expects(:get_podspec_specifications).returns([specification])
|
179
|
+
lambda { command.run }.should.not.raise Informative
|
180
|
+
end
|
181
|
+
|
182
|
+
it 'not allowed granular dependency should not be valid' do
|
183
|
+
command = Command.parse(['whitelist', "--config=#{WHITELIST_FILE}", "--fail-on-error"])
|
184
|
+
specification = Pod::Specification.from_file('./spec/mocks/not_allowed_with_granular.podspec')
|
185
|
+
command.expects(:get_podspec_specifications).returns([specification])
|
186
|
+
lambda { command.run }.should.raise Informative
|
187
|
+
end
|
188
|
+
|
174
189
|
end
|
175
190
|
end
|
176
191
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocoapods-whitelist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mobile Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -47,6 +47,7 @@ extra_rdoc_files: []
|
|
47
47
|
files:
|
48
48
|
- ".circleci/config.yml"
|
49
49
|
- ".gitignore"
|
50
|
+
- ".ruby-version"
|
50
51
|
- CHANGELOG.md
|
51
52
|
- Gemfile
|
52
53
|
- Gemfile.lock
|
@@ -68,10 +69,12 @@ files:
|
|
68
69
|
- lib/cocoapods-whitelist/model/validation_excluded.rb
|
69
70
|
- lib/cocoapods-whitelist/validator/source_validator.rb
|
70
71
|
- lib/cocoapods_plugin.rb
|
72
|
+
- spec/mocks/allowed_with_granular.podspec
|
71
73
|
- spec/mocks/bad_name.podspec
|
72
74
|
- spec/mocks/free_version.podspec
|
73
75
|
- spec/mocks/major_version_fixed.podspec
|
74
76
|
- spec/mocks/not_allowed.podspec
|
77
|
+
- spec/mocks/not_allowed_with_granular.podspec
|
75
78
|
- spec/mocks/whitelist.json
|
76
79
|
- spec/mocks/whitelist_with_expired_dependencies.json
|
77
80
|
- spec/mocks/whitelisted_podname.podspec
|
@@ -95,7 +98,7 @@ files:
|
|
95
98
|
- spec/spec_helper.rb
|
96
99
|
- spec/whitelist_resolver_spec.rb
|
97
100
|
- spec/whitelist_spec.rb
|
98
|
-
homepage: https://github.com/
|
101
|
+
homepage: https://github.com/melisource/mobile-cocoapods_whitelist
|
99
102
|
licenses:
|
100
103
|
- MIT
|
101
104
|
metadata: {}
|
@@ -114,15 +117,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
117
|
- !ruby/object:Gem::Version
|
115
118
|
version: '0'
|
116
119
|
requirements: []
|
117
|
-
rubygems_version: 3.
|
120
|
+
rubygems_version: 3.3.26
|
118
121
|
signing_key:
|
119
122
|
specification_version: 4
|
120
123
|
summary: A longer description of cocoapods-whitelist.
|
121
124
|
test_files:
|
125
|
+
- spec/mocks/allowed_with_granular.podspec
|
122
126
|
- spec/mocks/bad_name.podspec
|
123
127
|
- spec/mocks/free_version.podspec
|
124
128
|
- spec/mocks/major_version_fixed.podspec
|
125
129
|
- spec/mocks/not_allowed.podspec
|
130
|
+
- spec/mocks/not_allowed_with_granular.podspec
|
126
131
|
- spec/mocks/whitelist.json
|
127
132
|
- spec/mocks/whitelist_with_expired_dependencies.json
|
128
133
|
- spec/mocks/whitelisted_podname.podspec
|