dpl 1.5.9.travis.394.1 → 1.5.9.travis.397.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/lib/dpl/provider/releases.rb +17 -1
- data/spec/provider/releases_spec.rb +49 -5
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
!binary "U0hBMQ==":
|
|
3
3
|
metadata.gz: !binary |-
|
|
4
|
-
|
|
4
|
+
MDc5NTZmYjA5ODkxOGM5YzlhNjQzYjZmZmRmYzBjNWJmY2FlZTYxMg==
|
|
5
5
|
data.tar.gz: !binary |-
|
|
6
|
-
|
|
6
|
+
MDQzYjA1ZmU2NzZmYWVmY2RiYzFhOTFjMmIxNDlhMzZkNjI4MzhiMA==
|
|
7
7
|
SHA512:
|
|
8
8
|
metadata.gz: !binary |-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
ODNkYTJmYTVjNWQ0OWVkMDg1MTBjOGU2MmMxZTg3MGFlNDQ1NTRlYTBlNmFi
|
|
10
|
+
NzZiOThlOWNkNzJhYjQxN2U3MDUyYTJiYjE3OTU1MDllZjI3MDUzZTdjNTAw
|
|
11
|
+
MThiY2Q3OGM0N2U2NmZmZjY5Y2U0NDhmM2VmYjgwNzhmZmUwNzQ=
|
|
12
12
|
data.tar.gz: !binary |-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
ZDhjODhjYThlZDY0MTQzMzZhYTU3ZWNmMTZkM2FjZjc5MDk3Y2QzYTYwZTUw
|
|
14
|
+
YTAzYTYxNDllMWE3NzE1YTY2NGRlNDViNzUyOWU3ZjRjNWZjZTZmYTZjZmYx
|
|
15
|
+
ZDA0N2JjZDIzNDliNmY3ZjUyZTZlMDRhNzgxZDdhYWYwODhlNTY=
|
|
@@ -45,6 +45,11 @@ module DPL
|
|
|
45
45
|
|
|
46
46
|
def check_auth
|
|
47
47
|
setup_auth
|
|
48
|
+
|
|
49
|
+
unless api.scopes.include? 'public_repo' or api.scopes.include? 'repo'
|
|
50
|
+
raise Error, "Dpl does not have permission to upload assets. Make sure your token contains the repo or public_repo scope."
|
|
51
|
+
end
|
|
52
|
+
|
|
48
53
|
log "Logged in as #{user.name}"
|
|
49
54
|
end
|
|
50
55
|
|
|
@@ -65,7 +70,18 @@ module DPL
|
|
|
65
70
|
end
|
|
66
71
|
|
|
67
72
|
Array(options[:file]).each do |file|
|
|
68
|
-
|
|
73
|
+
already_exists = false
|
|
74
|
+
filename = Pathname.new(file).basename.to_s
|
|
75
|
+
api.release(release_url).rels[:assets].get.data.each do |existing_file|
|
|
76
|
+
if existing_file.name == filename
|
|
77
|
+
already_exists = true
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
if already_exists
|
|
81
|
+
log "#{filename} already exists, skipping."
|
|
82
|
+
else
|
|
83
|
+
api.upload_asset(release_url, filename, {:content_type => MIME::Types.type_for(file).first.to_s})
|
|
84
|
+
end
|
|
69
85
|
end
|
|
70
86
|
end
|
|
71
87
|
end
|
|
@@ -47,18 +47,27 @@ describe DPL::Provider::Releases do
|
|
|
47
47
|
end
|
|
48
48
|
|
|
49
49
|
describe :check_auth do
|
|
50
|
-
example do
|
|
50
|
+
example "With proper permissions" do
|
|
51
51
|
allow_message_expectations_on_nil
|
|
52
52
|
provider.stub(:user)
|
|
53
53
|
provider.stub(:setup_auth)
|
|
54
|
+
provider.api.should_receive(:scopes).and_return(["public_repo"])
|
|
54
55
|
provider.user.should_receive(:name).and_return("foo")
|
|
55
56
|
provider.should_receive(:log).with("Logged in as foo")
|
|
56
57
|
provider.check_auth
|
|
57
58
|
end
|
|
59
|
+
|
|
60
|
+
example "With improper permissions" do
|
|
61
|
+
allow_message_expectations_on_nil
|
|
62
|
+
provider.stub(:user)
|
|
63
|
+
provider.stub(:setup_auth)
|
|
64
|
+
provider.api.should_receive(:scopes).exactly(2).times.and_return([])
|
|
65
|
+
expect { provider.check_auth }.to raise_error(DPL::Error)
|
|
66
|
+
end
|
|
58
67
|
end
|
|
59
68
|
|
|
60
69
|
describe :push_app do
|
|
61
|
-
example "When Release Exists" do
|
|
70
|
+
example "When Release Exists but has no Files" do
|
|
62
71
|
allow_message_expectations_on_nil
|
|
63
72
|
|
|
64
73
|
provider.options.update(:file => ["test/foo.bar", "bar.foo"])
|
|
@@ -67,17 +76,47 @@ describe DPL::Provider::Releases do
|
|
|
67
76
|
provider.stub(:get_tag).and_return("v0.0.0")
|
|
68
77
|
|
|
69
78
|
provider.releases.map do |release|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
79
|
+
release.stub(:tag_name).and_return("v0.0.0")
|
|
80
|
+
release.stub(:rels).and_return({:self => nil})
|
|
81
|
+
release.rels[:self].stub(:href)
|
|
73
82
|
end
|
|
74
83
|
|
|
84
|
+
provider.api.stub(:release)
|
|
85
|
+
provider.api.release.stub(:rels).and_return({:assets => nil})
|
|
86
|
+
provider.api.release.rels[:assets].stub(:get).and_return({:data => [""]})
|
|
87
|
+
provider.api.release.rels[:assets].get.stub(:data).and_return([])
|
|
88
|
+
|
|
75
89
|
provider.api.should_receive(:upload_asset).with(anything, "foo.bar", anything)
|
|
76
90
|
provider.api.should_receive(:upload_asset).with(anything, "bar.foo", anything)
|
|
77
91
|
|
|
78
92
|
provider.push_app
|
|
79
93
|
end
|
|
80
94
|
|
|
95
|
+
example "When Release Exists and has Files" do
|
|
96
|
+
allow_message_expectations_on_nil
|
|
97
|
+
|
|
98
|
+
provider.options.update(:file => ["test/foo.bar", "bar.foo"])
|
|
99
|
+
|
|
100
|
+
provider.stub(:releases).and_return([""])
|
|
101
|
+
provider.stub(:get_tag).and_return("v0.0.0")
|
|
102
|
+
|
|
103
|
+
provider.releases.map do |release|
|
|
104
|
+
release.stub(:tag_name).and_return("v0.0.0")
|
|
105
|
+
release.stub(:rels).and_return({:self => nil})
|
|
106
|
+
release.rels[:self].stub(:href)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
provider.api.stub(:release)
|
|
110
|
+
provider.api.release.stub(:rels).and_return({:assets => nil})
|
|
111
|
+
provider.api.release.rels[:assets].stub(:get).and_return({:data => [""]})
|
|
112
|
+
provider.api.release.rels[:assets].get.stub(:data).and_return([double(:name => "foo.bar"), double(:name => "foo.foo")])
|
|
113
|
+
|
|
114
|
+
provider.api.should_receive(:upload_asset).with(anything, "bar.foo", anything)
|
|
115
|
+
provider.should_receive(:log).with("foo.bar already exists, skipping.")
|
|
116
|
+
|
|
117
|
+
provider.push_app
|
|
118
|
+
end
|
|
119
|
+
|
|
81
120
|
example "When Release Doesn't Exist" do
|
|
82
121
|
allow_message_expectations_on_nil
|
|
83
122
|
|
|
@@ -95,6 +134,11 @@ describe DPL::Provider::Releases do
|
|
|
95
134
|
provider.api.create_release.stub(:rels).and_return({:self => nil})
|
|
96
135
|
provider.api.create_release.rels[:slef].stub(:href)
|
|
97
136
|
|
|
137
|
+
provider.api.stub(:release)
|
|
138
|
+
provider.api.release.stub(:rels).and_return({:assets => nil})
|
|
139
|
+
provider.api.release.rels[:assets].stub(:get).and_return({:data => nil})
|
|
140
|
+
provider.api.release.rels[:assets].get.stub(:data).and_return([])
|
|
141
|
+
|
|
98
142
|
provider.api.should_receive(:upload_asset).with(anything, "foo.bar", anything)
|
|
99
143
|
provider.api.should_receive(:upload_asset).with(anything, "bar.foo", anything)
|
|
100
144
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dpl
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.5.9.travis.
|
|
4
|
+
version: 1.5.9.travis.397.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Konstantin Haase
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-05-
|
|
11
|
+
date: 2014-05-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rspec
|