artifactory 2.2.0 → 2.2.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 +4 -4
- data/CHANGELOG.md +7 -0
- data/lib/artifactory/client.rb +3 -2
- data/lib/artifactory/resources/artifact.rb +6 -8
- data/lib/artifactory/version.rb +1 -1
- data/spec/unit/client_spec.rb +12 -0
- data/spec/unit/resources/artifact_spec.rb +20 -2
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: eb987fd18b2034340daf17e7f5d6d06b7289966f
|
|
4
|
+
data.tar.gz: 5315895f5ab0badfee1351eecfd7d80a701d509c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 56040d7854457cbd0d86712e1ad7e096e539409012ea8e904fe4eda9b8d18ee7f4ad4d31f5f45ec12636c7f8f9c734b40fcbf9e45555d50660b9689db801f993
|
|
7
|
+
data.tar.gz: 93bdb1b294a58cb73d6bfbcb118090828b25e1dd7ee0cf5e92a00850b6850f16bdf22248a900a62a6338e03b5e3425da78500b047a60157b61d1b106d4fa2402
|
data/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@ Artifactory Client CHANGELOG
|
|
|
3
3
|
This file is used to document the changes between releases of the Artifactory
|
|
4
4
|
Ruby client.
|
|
5
5
|
|
|
6
|
+
v2.2.1 (12-16-2014)
|
|
7
|
+
-------------------
|
|
8
|
+
- provide data to post in `Artifact#copy_or_move`
|
|
9
|
+
- pass correct variable to redirect request in `Client#request`
|
|
10
|
+
- use CGI escape to encode data values
|
|
11
|
+
- when checksums are available, upload using the checksum headers.
|
|
12
|
+
|
|
6
13
|
v2.2.0 (11-20-2014)
|
|
7
14
|
-------------------
|
|
8
15
|
- Add artifact usage search
|
data/lib/artifactory/client.rb
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
#
|
|
16
16
|
|
|
17
|
+
require 'cgi'
|
|
17
18
|
require 'json'
|
|
18
19
|
require 'net/http'
|
|
19
20
|
require 'uri'
|
|
@@ -247,7 +248,7 @@ module Artifactory
|
|
|
247
248
|
case response
|
|
248
249
|
when Net::HTTPRedirection
|
|
249
250
|
redirect = URI.parse(response['location'])
|
|
250
|
-
request(verb, redirect,
|
|
251
|
+
request(verb, redirect, data, headers)
|
|
251
252
|
when Net::HTTPSuccess
|
|
252
253
|
success(response)
|
|
253
254
|
else
|
|
@@ -331,7 +332,7 @@ module Artifactory
|
|
|
331
332
|
#
|
|
332
333
|
def to_query_string(hash)
|
|
333
334
|
hash.map do |key, value|
|
|
334
|
-
"#{
|
|
335
|
+
"#{CGI.escape(key.to_s)}=#{CGI.escape(value.to_s)}"
|
|
335
336
|
end.join('&')[/.+/]
|
|
336
337
|
end
|
|
337
338
|
|
|
@@ -534,20 +534,18 @@ module Artifactory
|
|
|
534
534
|
matrix = to_matrix_properties(properties)
|
|
535
535
|
endpoint = File.join("#{url_safe(repo)}#{matrix}", remote_path)
|
|
536
536
|
|
|
537
|
-
|
|
537
|
+
# Include checksums in headers if given.
|
|
538
|
+
headers['X-Checksum-Md5'] = md5 if md5
|
|
539
|
+
headers['X-Checksum-Sha1'] = sha1 if sha1
|
|
538
540
|
|
|
539
|
-
|
|
540
|
-
upload_checksum(repo, remote_path, :md5, md5) if md5
|
|
541
|
-
upload_checksum(repo, remote_path, :sha1, sha1) if sha1
|
|
541
|
+
response = client.put(endpoint, file, headers)
|
|
542
542
|
|
|
543
543
|
self.class.from_hash(response)
|
|
544
544
|
end
|
|
545
545
|
|
|
546
546
|
#
|
|
547
547
|
# Upload the checksum for this artifact. **The artifact must already be
|
|
548
|
-
# uploaded or Artifactory will throw an exception!**.
|
|
549
|
-
# and private API. It is automatically called in {upload} if the SHA
|
|
550
|
-
# values are set. You may also call it manually.
|
|
548
|
+
# uploaded or Artifactory will throw an exception!**.
|
|
551
549
|
#
|
|
552
550
|
# @example Set an artifact's md5
|
|
553
551
|
# artifact = Artifact.new(local_path: '/local/path/to/file.deb')
|
|
@@ -678,7 +676,7 @@ module Artifactory
|
|
|
678
676
|
|
|
679
677
|
endpoint = File.join('/api', action.to_s, relative_path) + '?' + params.join('&')
|
|
680
678
|
|
|
681
|
-
client.post(endpoint)
|
|
679
|
+
client.post(endpoint, {})
|
|
682
680
|
end
|
|
683
681
|
end
|
|
684
682
|
end
|
data/lib/artifactory/version.rb
CHANGED
data/spec/unit/client_spec.rb
CHANGED
|
@@ -91,5 +91,17 @@ module Artifactory
|
|
|
91
91
|
end
|
|
92
92
|
end
|
|
93
93
|
end
|
|
94
|
+
|
|
95
|
+
describe '#to_query_string' do
|
|
96
|
+
it 'converts spaces to "+" characters' do
|
|
97
|
+
params = {user: 'Seth Chisamore'}
|
|
98
|
+
expect(subject.to_query_string(params)).to eq('user=Seth+Chisamore')
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
it 'converts "+" to "%2B"' do
|
|
102
|
+
params = {version: '12.0.0-alpha.1+20140826080510.git.50.f5ff271'}
|
|
103
|
+
expect(subject.to_query_string(params)).to eq('version=12.0.0-alpha.1%2B20140826080510.git.50.f5ff271')
|
|
104
|
+
end
|
|
105
|
+
end
|
|
94
106
|
end
|
|
95
107
|
end
|
|
@@ -52,6 +52,24 @@ module Artifactory
|
|
|
52
52
|
end
|
|
53
53
|
end
|
|
54
54
|
|
|
55
|
+
context 'when the md5 is available' do
|
|
56
|
+
subject { described_class.new(client: client, local_path: local_path, checksums: { 'md5' => 'ABCDEF123456' } ) }
|
|
57
|
+
|
|
58
|
+
it 'PUTs the file with the checksum headers set' do
|
|
59
|
+
expect(client).to receive(:put).with('libs-release-local/remote/path', file, { 'X-Checksum-Md5' => 'ABCDEF123456' } )
|
|
60
|
+
subject.upload('libs-release-local', '/remote/path')
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
context 'when the sha1 is available' do
|
|
65
|
+
subject { described_class.new(client: client, local_path: local_path, checksums: { 'sha1' => 'SHA1' } ) }
|
|
66
|
+
|
|
67
|
+
it 'PUTs the file with the checksum headers set' do
|
|
68
|
+
expect(client).to receive(:put).with('libs-release-local/remote/path', file, { 'X-Checksum-Sha1' => 'SHA1' } )
|
|
69
|
+
subject.upload('libs-release-local', '/remote/path')
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
55
73
|
context 'when matrix properties are given' do
|
|
56
74
|
it 'converts the hash into matrix properties' do
|
|
57
75
|
expect(client).to receive(:put).with('libs-release-local;branch=master;user=Seth/remote/path', file, {})
|
|
@@ -498,12 +516,12 @@ module Artifactory
|
|
|
498
516
|
end
|
|
499
517
|
|
|
500
518
|
it 'sends POST to the client with parsed params' do
|
|
501
|
-
expect(client).to receive(:post).with('/api/move/foo/bar/artifact.deb?to=/to/path')
|
|
519
|
+
expect(client).to receive(:post).with('/api/move/foo/bar/artifact.deb?to=/to/path', {})
|
|
502
520
|
subject.copy_or_move(:move, '/to/path')
|
|
503
521
|
end
|
|
504
522
|
|
|
505
523
|
it 'adds the correct parameters to the request' do
|
|
506
|
-
expect(client).to receive(:post).with('/api/move/foo/bar/artifact.deb?to=/to/path&failFast=1&dry=1')
|
|
524
|
+
expect(client).to receive(:post).with('/api/move/foo/bar/artifact.deb?to=/to/path&failFast=1&dry=1', {})
|
|
507
525
|
subject.copy_or_move(:move, '/to/path', fail_fast: true, dry_run: true)
|
|
508
526
|
end
|
|
509
527
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: artifactory
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.2.
|
|
4
|
+
version: 2.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Seth Vargo
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-
|
|
11
|
+
date: 2014-12-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -133,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
133
133
|
version: '0'
|
|
134
134
|
requirements: []
|
|
135
135
|
rubyforge_project:
|
|
136
|
-
rubygems_version: 2.
|
|
136
|
+
rubygems_version: 2.4.5
|
|
137
137
|
signing_key:
|
|
138
138
|
specification_version: 4
|
|
139
139
|
summary: Artifactory is a simple, lightweight Ruby client for interacting with the
|