artifactory 2.8.2 → 3.0.15
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 +5 -5
- data/lib/artifactory.rb +3 -2
- data/lib/artifactory/client.rb +16 -7
- data/lib/artifactory/collections/artifact.rb +1 -1
- data/lib/artifactory/collections/base.rb +1 -1
- data/lib/artifactory/collections/build.rb +1 -1
- data/lib/artifactory/configurable.rb +15 -15
- data/lib/artifactory/defaults.rb +2 -2
- data/lib/artifactory/errors.rb +6 -6
- data/lib/artifactory/resources/artifact.rb +17 -19
- data/lib/artifactory/resources/backup.rb +3 -1
- data/lib/artifactory/resources/base.rb +17 -7
- data/lib/artifactory/resources/build.rb +6 -6
- data/lib/artifactory/resources/build_component.rb +1 -0
- data/lib/artifactory/resources/certificate.rb +90 -0
- data/lib/artifactory/resources/group.rb +2 -1
- data/lib/artifactory/resources/layout.rb +2 -1
- data/lib/artifactory/resources/ldap_setting.rb +3 -1
- data/lib/artifactory/resources/mail_server.rb +2 -1
- data/lib/artifactory/resources/permission_target.rb +18 -2
- data/lib/artifactory/resources/plugin.rb +1 -1
- data/lib/artifactory/resources/repository.rb +5 -1
- data/lib/artifactory/resources/system.rb +1 -1
- data/lib/artifactory/resources/url_base.rb +2 -1
- data/lib/artifactory/resources/user.rb +2 -1
- data/lib/artifactory/util.rb +4 -3
- data/lib/artifactory/version.rb +2 -2
- metadata +11 -131
- data/.gitignore +0 -27
- data/.travis.yml +0 -28
- data/CHANGELOG.md +0 -141
- data/Gemfile +0 -14
- data/README.md +0 -288
- data/Rakefile +0 -28
- data/appveyor.yml +0 -30
- data/artifactory.gemspec +0 -25
- data/spec/integration/resources/artifact_spec.rb +0 -99
- data/spec/integration/resources/backup.rb +0 -22
- data/spec/integration/resources/build_component_spec.rb +0 -64
- data/spec/integration/resources/build_spec.rb +0 -38
- data/spec/integration/resources/group_spec.rb +0 -45
- data/spec/integration/resources/layout_spec.rb +0 -22
- data/spec/integration/resources/ldap_setting_spec.rb +0 -22
- data/spec/integration/resources/mail_server_spec.rb +0 -22
- data/spec/integration/resources/permission_target_spec.rb +0 -75
- data/spec/integration/resources/repository_spec.rb +0 -40
- data/spec/integration/resources/system_spec.rb +0 -58
- data/spec/integration/resources/url_base_spec.rb +0 -22
- data/spec/integration/resources/user_spec.rb +0 -45
- data/spec/spec_helper.rb +0 -52
- data/spec/support/api_server.rb +0 -49
- data/spec/support/api_server/artifact_endpoints.rb +0 -186
- data/spec/support/api_server/build_component_endpoints.rb +0 -44
- data/spec/support/api_server/build_endpoints.rb +0 -240
- data/spec/support/api_server/group_endpoints.rb +0 -53
- data/spec/support/api_server/permission_target_endpoints.rb +0 -53
- data/spec/support/api_server/repository_endpoints.rb +0 -114
- data/spec/support/api_server/status_endpoints.rb +0 -11
- data/spec/support/api_server/system_endpoints.rb +0 -104
- data/spec/support/api_server/user_endpoints.rb +0 -59
- data/spec/unit/artifactory_spec.rb +0 -73
- data/spec/unit/client_spec.rb +0 -132
- data/spec/unit/resources/artifact_spec.rb +0 -608
- data/spec/unit/resources/backup_spec.rb +0 -61
- data/spec/unit/resources/base_spec.rb +0 -180
- data/spec/unit/resources/build_component_spec.rb +0 -118
- data/spec/unit/resources/build_spec.rb +0 -347
- data/spec/unit/resources/defaults_spec.rb +0 -27
- data/spec/unit/resources/group_spec.rb +0 -108
- data/spec/unit/resources/layout_spec.rb +0 -61
- data/spec/unit/resources/ldap_setting_spec.rb +0 -65
- data/spec/unit/resources/mail_server_spec.rb +0 -57
- data/spec/unit/resources/permission_target_spec.rb +0 -189
- data/spec/unit/resources/plugin_spec.rb +0 -25
- data/spec/unit/resources/repository_spec.rb +0 -217
- data/spec/unit/resources/system_spec.rb +0 -90
- data/spec/unit/resources/url_base_spec.rb +0 -53
- data/spec/unit/resources/user_spec.rb +0 -115
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: b25bc5d80ff1f446765041dfa18c8124632de6d74c99757b968ee599afb687f5
|
|
4
|
+
data.tar.gz: 872377830c2c226593aa01dd98bcd9a9ed077a1fc987ac014056e976f64db7b6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 64e08e305ffadc57955be2aa5ec362e3c79dfb425af8180d3d9560db573cef1a4f5b0f0d1fd49f8e3e173cb4ce7ef8f58eec53290e5a170a98bfec9469f5919d
|
|
7
|
+
data.tar.gz: 82474417dff7e81ae2c1c26029d5c91c780c1275201ac1d2a96bfda419c3314cf0ceb577284fc1c059a4a8f4c474337c6565d64def6f1d4e60cee478390930b0
|
data/lib/artifactory.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2014 Chef Software, Inc.
|
|
2
|
+
# Copyright 2014-2018 Chef Software, Inc.
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
#
|
|
16
16
|
|
|
17
17
|
require "pathname"
|
|
18
|
-
|
|
18
|
+
require_relative "artifactory/version"
|
|
19
19
|
|
|
20
20
|
module Artifactory
|
|
21
21
|
autoload :Client, "artifactory/client"
|
|
@@ -36,6 +36,7 @@ module Artifactory
|
|
|
36
36
|
autoload :Base, "artifactory/resources/base"
|
|
37
37
|
autoload :Build, "artifactory/resources/build"
|
|
38
38
|
autoload :BuildComponent, "artifactory/resources/build_component"
|
|
39
|
+
autoload :Certificate, "artifactory/resources/certificate"
|
|
39
40
|
autoload :Group, "artifactory/resources/group"
|
|
40
41
|
autoload :Layout, "artifactory/resources/layout"
|
|
41
42
|
autoload :LDAPSetting, "artifactory/resources/ldap_setting"
|
data/lib/artifactory/client.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2014 Chef Software, Inc.
|
|
2
|
+
# Copyright 2014-2018 Chef Software, Inc.
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -50,6 +50,7 @@ module Artifactory
|
|
|
50
50
|
|
|
51
51
|
proxy Resource::Artifact
|
|
52
52
|
proxy Resource::Backup
|
|
53
|
+
proxy Resource::Certificate
|
|
53
54
|
proxy Resource::Layout
|
|
54
55
|
proxy Resource::LDAPSetting
|
|
55
56
|
proxy Resource::MailServer
|
|
@@ -207,7 +208,7 @@ module Artifactory
|
|
|
207
208
|
end
|
|
208
209
|
|
|
209
210
|
# Setup PATCH/POST/PUT
|
|
210
|
-
if
|
|
211
|
+
if %i{patch post put}.include?(verb)
|
|
211
212
|
if data.respond_to?(:read)
|
|
212
213
|
request.content_length = data.size
|
|
213
214
|
request.body_stream = data
|
|
@@ -257,8 +258,16 @@ module Artifactory
|
|
|
257
258
|
|
|
258
259
|
if block_given?
|
|
259
260
|
http.request(request) do |response|
|
|
260
|
-
response
|
|
261
|
-
|
|
261
|
+
case response
|
|
262
|
+
when Net::HTTPRedirection
|
|
263
|
+
redirect = response["location"]
|
|
264
|
+
request(verb, redirect, data, headers, &block)
|
|
265
|
+
when Net::HTTPSuccess
|
|
266
|
+
response.read_body do |chunk|
|
|
267
|
+
yield chunk
|
|
268
|
+
end
|
|
269
|
+
else
|
|
270
|
+
error(response)
|
|
262
271
|
end
|
|
263
272
|
end
|
|
264
273
|
else
|
|
@@ -266,7 +275,7 @@ module Artifactory
|
|
|
266
275
|
|
|
267
276
|
case response
|
|
268
277
|
when Net::HTTPRedirection
|
|
269
|
-
redirect =
|
|
278
|
+
redirect = response["location"]
|
|
270
279
|
request(verb, redirect, data, headers)
|
|
271
280
|
when Net::HTTPSuccess
|
|
272
281
|
success(response)
|
|
@@ -313,7 +322,7 @@ module Artifactory
|
|
|
313
322
|
#
|
|
314
323
|
def build_uri(verb, path, params = {})
|
|
315
324
|
# Add any query string parameters
|
|
316
|
-
if
|
|
325
|
+
if %i{delete get}.include?(verb)
|
|
317
326
|
path = [path, to_query_string(params)].compact.join("?")
|
|
318
327
|
end
|
|
319
328
|
|
|
@@ -371,7 +380,7 @@ module Artifactory
|
|
|
371
380
|
if (response.content_type || "").include?("json")
|
|
372
381
|
JSON.parse(response.body || "{}")
|
|
373
382
|
else
|
|
374
|
-
response.body
|
|
383
|
+
response.body || ""
|
|
375
384
|
end
|
|
376
385
|
end
|
|
377
386
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2014 Chef Software, Inc.
|
|
2
|
+
# Copyright 2014-2018 Chef Software, Inc.
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -27,20 +27,20 @@ module Artifactory
|
|
|
27
27
|
# @return [Array<Symbol>]
|
|
28
28
|
#
|
|
29
29
|
def keys
|
|
30
|
-
@keys ||=
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
30
|
+
@keys ||= %i{
|
|
31
|
+
endpoint
|
|
32
|
+
username
|
|
33
|
+
password
|
|
34
|
+
api_key
|
|
35
|
+
proxy_address
|
|
36
|
+
proxy_password
|
|
37
|
+
proxy_port
|
|
38
|
+
proxy_username
|
|
39
|
+
ssl_pem_file
|
|
40
|
+
ssl_verify
|
|
41
|
+
user_agent
|
|
42
|
+
read_timeout
|
|
43
|
+
}
|
|
44
44
|
end
|
|
45
45
|
end
|
|
46
46
|
|
data/lib/artifactory/defaults.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2014 Chef Software, Inc.
|
|
2
|
+
# Copyright 2014-2018 Chef Software, Inc.
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
#
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
require_relative "version"
|
|
18
18
|
|
|
19
19
|
module Artifactory
|
|
20
20
|
module Defaults
|
data/lib/artifactory/errors.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2014 Chef Software, Inc.
|
|
2
|
+
# Copyright 2014-2018 Chef Software, Inc.
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -44,14 +44,14 @@ module Artifactory
|
|
|
44
44
|
# A general connection error with a more informative message
|
|
45
45
|
class InvalidBuildType < ArtifactoryError
|
|
46
46
|
def initialize(given_type)
|
|
47
|
-
super
|
|
48
|
-
'#{given_type}' is not a valid build type.
|
|
47
|
+
super <<~EOH
|
|
48
|
+
'#{given_type}' is not a valid build type.
|
|
49
49
|
|
|
50
|
-
Valid build types include:
|
|
50
|
+
Valid build types include:
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
#{Resource::Build::BUILD_TYPES.join("\n ")}"
|
|
53
53
|
|
|
54
|
-
EOH
|
|
54
|
+
EOH
|
|
55
55
|
end
|
|
56
56
|
end
|
|
57
57
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2014 Chef Software, Inc.
|
|
2
|
+
# Copyright 2014-2018 Chef Software, Inc.
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -95,11 +95,10 @@ module Artifactory
|
|
|
95
95
|
def gavc_search(options = {})
|
|
96
96
|
client = extract_client!(options)
|
|
97
97
|
options = Util.rename_keys(options,
|
|
98
|
-
:
|
|
99
|
-
:
|
|
100
|
-
:
|
|
101
|
-
:
|
|
102
|
-
)
|
|
98
|
+
group: :g,
|
|
99
|
+
name: :a,
|
|
100
|
+
version: :v,
|
|
101
|
+
classifier: :c)
|
|
103
102
|
params = Util.slice(options, :g, :a, :v, :c, :repos)
|
|
104
103
|
format_repos!(params)
|
|
105
104
|
|
|
@@ -291,16 +290,16 @@ module Artifactory
|
|
|
291
290
|
def versions(options = {})
|
|
292
291
|
client = extract_client!(options)
|
|
293
292
|
options = Util.rename_keys(options,
|
|
294
|
-
:
|
|
295
|
-
:
|
|
296
|
-
:
|
|
297
|
-
)
|
|
293
|
+
group: :g,
|
|
294
|
+
name: :a,
|
|
295
|
+
version: :v)
|
|
298
296
|
params = Util.slice(options, :g, :a, :v, :repos)
|
|
299
297
|
format_repos!(params)
|
|
300
298
|
|
|
301
299
|
client.get("/api/search/versions", params)["results"]
|
|
302
300
|
rescue Error::HTTPError => e
|
|
303
301
|
raise unless e.code == 404
|
|
302
|
+
|
|
304
303
|
[]
|
|
305
304
|
end
|
|
306
305
|
|
|
@@ -342,10 +341,9 @@ module Artifactory
|
|
|
342
341
|
def latest_version(options = {})
|
|
343
342
|
client = extract_client!(options)
|
|
344
343
|
options = Util.rename_keys(options,
|
|
345
|
-
:
|
|
346
|
-
:
|
|
347
|
-
:
|
|
348
|
-
)
|
|
344
|
+
group: :g,
|
|
345
|
+
name: :a,
|
|
346
|
+
version: :v)
|
|
349
347
|
params = Util.slice(options, :g, :a, :v, :repos, :remote)
|
|
350
348
|
format_repos!(params)
|
|
351
349
|
|
|
@@ -356,6 +354,7 @@ module Artifactory
|
|
|
356
354
|
client.get("/api/search/latestVersion", params)
|
|
357
355
|
rescue Error::HTTPError => e
|
|
358
356
|
raise unless e.code == 404
|
|
357
|
+
|
|
359
358
|
nil
|
|
360
359
|
end
|
|
361
360
|
|
|
@@ -493,7 +492,7 @@ module Artifactory
|
|
|
493
492
|
target = File.expand_path(target)
|
|
494
493
|
|
|
495
494
|
# Make the directory if it doesn't yet exist
|
|
496
|
-
FileUtils.mkdir_p(target) unless File.
|
|
495
|
+
FileUtils.mkdir_p(target) unless File.exist?(target)
|
|
497
496
|
|
|
498
497
|
# Use the server artifact's filename if one wasn't given
|
|
499
498
|
filename = options[:filename] || File.basename(download_uri)
|
|
@@ -555,6 +554,7 @@ module Artifactory
|
|
|
555
554
|
response = client.put(endpoint, file, headers)
|
|
556
555
|
|
|
557
556
|
return unless response.is_a?(Hash)
|
|
557
|
+
|
|
558
558
|
self.class.from_hash(response)
|
|
559
559
|
end
|
|
560
560
|
|
|
@@ -608,8 +608,7 @@ module Artifactory
|
|
|
608
608
|
def upload_with_checksum(repo, remote_path, checksum, properties = {})
|
|
609
609
|
upload(repo, remote_path, properties,
|
|
610
610
|
"X-Checksum-Deploy" => true,
|
|
611
|
-
"X-Checksum-Sha1" => checksum
|
|
612
|
-
)
|
|
611
|
+
"X-Checksum-Sha1" => checksum)
|
|
613
612
|
end
|
|
614
613
|
|
|
615
614
|
#
|
|
@@ -626,8 +625,7 @@ module Artifactory
|
|
|
626
625
|
#
|
|
627
626
|
def upload_from_archive(repo, remote_path, properties = {})
|
|
628
627
|
upload(repo, remote_path, properties,
|
|
629
|
-
"X-Explode-Archive" => true
|
|
630
|
-
)
|
|
628
|
+
"X-Explode-Archive" => true)
|
|
631
629
|
end
|
|
632
630
|
|
|
633
631
|
private
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2014 Chef Software, Inc.
|
|
2
|
+
# Copyright 2014-2018 Chef Software, Inc.
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -59,6 +59,7 @@ module Artifactory
|
|
|
59
59
|
find_from_config("config/backups/backup/key[text()='#{key}']", config, options)
|
|
60
60
|
rescue Error::HTTPError => e
|
|
61
61
|
raise unless e.code == 404
|
|
62
|
+
|
|
62
63
|
nil
|
|
63
64
|
end
|
|
64
65
|
|
|
@@ -102,6 +103,7 @@ module Artifactory
|
|
|
102
103
|
def find_from_config(xpath, config, options = {})
|
|
103
104
|
name_node = REXML::XPath.match(config, xpath)
|
|
104
105
|
return nil if name_node.empty?
|
|
106
|
+
|
|
105
107
|
properties = Util.xml_to_hash(name_node[0].parent, "excludedRepositories", false)
|
|
106
108
|
from_hash(properties, options)
|
|
107
109
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2014 Chef Software, Inc.
|
|
2
|
+
# Copyright 2014-2018 Chef Software, Inc.
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -88,7 +88,7 @@ module Artifactory
|
|
|
88
88
|
# @return [true, false]
|
|
89
89
|
#
|
|
90
90
|
def has_attribute?(key)
|
|
91
|
-
attributes.
|
|
91
|
+
attributes.key?(key.to_sym)
|
|
92
92
|
end
|
|
93
93
|
|
|
94
94
|
#
|
|
@@ -156,6 +156,7 @@ module Artifactory
|
|
|
156
156
|
def find_from_config(xpath, config, options = {})
|
|
157
157
|
name_node = REXML::XPath.match(config, xpath)
|
|
158
158
|
return nil if name_node.empty?
|
|
159
|
+
|
|
159
160
|
properties = {}
|
|
160
161
|
name_node[0].parent.each_element_with_text do |e|
|
|
161
162
|
properties[e.name] = Util.to_type(e.text)
|
|
@@ -227,6 +228,7 @@ module Artifactory
|
|
|
227
228
|
#
|
|
228
229
|
def format_repos!(options)
|
|
229
230
|
return options if options[:repos].nil? || options[:repos].empty?
|
|
231
|
+
|
|
230
232
|
options[:repos] = Array(options[:repos]).compact.join(",")
|
|
231
233
|
options
|
|
232
234
|
end
|
|
@@ -241,7 +243,15 @@ module Artifactory
|
|
|
241
243
|
# the URL-safe version of the string
|
|
242
244
|
#
|
|
243
245
|
def url_safe(value)
|
|
244
|
-
|
|
246
|
+
uri_parser.escape(uri_parser.unescape(value.to_s))
|
|
247
|
+
end
|
|
248
|
+
|
|
249
|
+
#
|
|
250
|
+
# Generate a URI parser
|
|
251
|
+
#
|
|
252
|
+
# @return [URI::Parser]
|
|
253
|
+
def uri_parser
|
|
254
|
+
@uri_parser ||= URI::Parser.new
|
|
245
255
|
end
|
|
246
256
|
end
|
|
247
257
|
|
|
@@ -340,7 +350,7 @@ module Artifactory
|
|
|
340
350
|
if properties.empty?
|
|
341
351
|
nil
|
|
342
352
|
else
|
|
343
|
-
";#{properties.join(
|
|
353
|
+
";#{properties.join(";")}"
|
|
344
354
|
end
|
|
345
355
|
end
|
|
346
356
|
|
|
@@ -351,8 +361,8 @@ module Artifactory
|
|
|
351
361
|
#
|
|
352
362
|
def to_query_string_parameters(hash = {})
|
|
353
363
|
properties = hash.map do |k, v|
|
|
354
|
-
key =
|
|
355
|
-
value =
|
|
364
|
+
key = self.class.uri_parser.escape(k.to_s)
|
|
365
|
+
value = self.class.uri_parser.escape(v.to_s)
|
|
356
366
|
|
|
357
367
|
"#{key}=#{value}"
|
|
358
368
|
end
|
|
@@ -377,7 +387,7 @@ module Artifactory
|
|
|
377
387
|
end
|
|
378
388
|
end.compact
|
|
379
389
|
|
|
380
|
-
"#<#{short_classname} #{list.join(
|
|
390
|
+
"#<#{short_classname} #{list.join(", ")}>"
|
|
381
391
|
end
|
|
382
392
|
|
|
383
393
|
private
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015 Chef Software, Inc.
|
|
2
|
+
# Copyright 2015-2018 Chef Software, Inc.
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -20,7 +20,7 @@ module Artifactory
|
|
|
20
20
|
class Resource::Build < Resource::Base
|
|
21
21
|
BUILD_SCHEMA_VERSION = "1.0.1".freeze
|
|
22
22
|
# valid build types as dictated by the Artifactory API
|
|
23
|
-
BUILD_TYPES = %w{ ANT IVY MAVEN GENERIC GRADLE }
|
|
23
|
+
BUILD_TYPES = %w{ ANT IVY MAVEN GENERIC GRADLE }.freeze
|
|
24
24
|
|
|
25
25
|
class << self
|
|
26
26
|
#
|
|
@@ -49,6 +49,7 @@ module Artifactory
|
|
|
49
49
|
# builds. Whoever decided that was a good idea clearly doesn't
|
|
50
50
|
# understand the point of REST interfaces...
|
|
51
51
|
raise unless e.code == 404
|
|
52
|
+
|
|
52
53
|
[]
|
|
53
54
|
end
|
|
54
55
|
|
|
@@ -78,6 +79,7 @@ module Artifactory
|
|
|
78
79
|
from_hash(response["buildInfo"], client: client)
|
|
79
80
|
rescue Error::HTTPError => e
|
|
80
81
|
raise unless e.code == 404
|
|
82
|
+
|
|
81
83
|
nil
|
|
82
84
|
end
|
|
83
85
|
|
|
@@ -189,8 +191,7 @@ module Artifactory
|
|
|
189
191
|
|
|
190
192
|
endpoint = "/api/build/promote/#{url_safe(name)}/#{url_safe(number)}"
|
|
191
193
|
client.post(endpoint, JSON.fast_generate(request_body),
|
|
192
|
-
"Content-Type" => "application/json"
|
|
193
|
-
)
|
|
194
|
+
"Content-Type" => "application/json")
|
|
194
195
|
end
|
|
195
196
|
|
|
196
197
|
#
|
|
@@ -206,8 +207,7 @@ module Artifactory
|
|
|
206
207
|
file.rewind
|
|
207
208
|
|
|
208
209
|
client.put("/api/build", file,
|
|
209
|
-
"Content-Type" => "application/json"
|
|
210
|
-
)
|
|
210
|
+
"Content-Type" => "application/json")
|
|
211
211
|
true
|
|
212
212
|
ensure
|
|
213
213
|
if file
|