appstage 0.0.11 → 1.0.12
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/lib/appstage.rb +1 -7
- data/lib/delete_files.rb +4 -5
- data/lib/list_files.rb +5 -4
- data/lib/upload_file.rb +13 -35
- data/lib/version.rb +1 -1
- metadata +22 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 899da4478e914b2b501efaceda1249b810530fd23e7711c441b9888d6559bae7
|
4
|
+
data.tar.gz: 86af51492b1a2453c05699db459ab0c0aa92285d49e6f384e75b29c36297f014
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e4353c2005fc439e7e7df645ea5d9a8575eee12b68668b723f2be2817941733da0208906e22c424ab9bf973fe5561e85ab3789c15054f06d2803252b9e24d5a
|
7
|
+
data.tar.gz: 619646d115c8df60ce69f22d28ee1c30ee4703480d79bf4421bb6f444fb9eaf0b2575b886cca908805e92300a0690e43ab30e436af691d643e1fe2ba42ddc853
|
data/lib/appstage.rb
CHANGED
@@ -1,8 +1,6 @@
|
|
1
|
-
#Appstage cli for uploading live builds
|
2
1
|
require 'optparse'
|
3
2
|
require 'httparty' #GEM
|
4
3
|
require 'digest'
|
5
|
-
require 'mimemagic'
|
6
4
|
require 'list_files'
|
7
5
|
require 'delete_files'
|
8
6
|
require 'upload_file'
|
@@ -37,14 +35,10 @@ module AppStage
|
|
37
35
|
|
38
36
|
parser.separator " Options:-"
|
39
37
|
|
40
|
-
parser.on("-j", "--jwttoken JWT", "Your appstage.io
|
38
|
+
parser.on("-j", "--jwttoken JWT", "Your appstage.io project token") do |v|
|
41
39
|
options[:jwt] = v
|
42
40
|
end
|
43
41
|
|
44
|
-
parser.on("-p", "--project_id ID", "Your appstage.io project id") do |v|
|
45
|
-
options[:project_id] = v
|
46
|
-
end
|
47
|
-
|
48
42
|
parser.on("-h", "--host HOSTURL", "The appstage host, optional, leave blank to use live server") do |v|
|
49
43
|
options[:host] = v
|
50
44
|
end
|
data/lib/delete_files.rb
CHANGED
@@ -17,21 +17,20 @@ module AppStage
|
|
17
17
|
puts " deleting #{rf['name']}"
|
18
18
|
delete_file(rf['id'])
|
19
19
|
end
|
20
|
-
|
20
|
+
0
|
21
21
|
rescue Exception => e
|
22
22
|
puts "Delete failed - #{e.message}"
|
23
|
-
|
23
|
+
-1
|
24
24
|
end
|
25
|
-
0
|
26
25
|
end
|
27
26
|
|
28
27
|
private
|
29
28
|
|
30
29
|
def delete_file(file_id)
|
31
|
-
host = @options[:host]
|
30
|
+
host = @options[:host] || "https://www.appstage.io"
|
32
31
|
token = @options[:jwt]
|
33
32
|
|
34
|
-
response = HTTParty.delete(host+"/api/live_builds/#{file_id}
|
33
|
+
response = HTTParty.delete(host+"/api/live_builds/#{file_id}",
|
35
34
|
:headers => { 'Content-Type' => 'application/json',
|
36
35
|
'Authorization' => "Bearer #{token}"}
|
37
36
|
)
|
data/lib/list_files.rb
CHANGED
@@ -10,23 +10,24 @@ module AppStage
|
|
10
10
|
getFileList.each do |rf|
|
11
11
|
puts "#{rf['name']}"
|
12
12
|
end
|
13
|
+
0
|
13
14
|
rescue Exception => e
|
14
15
|
puts "File listing failed - #{e.message}"
|
15
|
-
|
16
|
+
-1
|
16
17
|
end
|
17
|
-
0
|
18
18
|
end
|
19
19
|
|
20
20
|
def getFileList
|
21
21
|
host = @options[:host] || "https://www.appstage.io"
|
22
|
+
raise('Invalid project token') unless @options[:jwt]
|
22
23
|
token = @options[:jwt]
|
23
24
|
pattern = @options[:list].nil? ? ".*" : @options[:list]
|
24
25
|
|
25
|
-
response = HTTParty.get(host+"/api/live_builds
|
26
|
+
response = HTTParty.get(host+"/api/live_builds",
|
26
27
|
:headers => { 'Content-Type' => 'application/json',
|
27
28
|
'Authorization' => "Bearer #{token}"}
|
28
29
|
)
|
29
|
-
raise
|
30
|
+
raise(JSON.parse(response.body)['error']) unless response.code == 200
|
30
31
|
files = JSON.parse(response.body)['release_files'].select{|f| f['name'].match(/#{pattern}/)}
|
31
32
|
end
|
32
33
|
end
|
data/lib/upload_file.rb
CHANGED
@@ -8,51 +8,29 @@ module AppStage
|
|
8
8
|
def execute
|
9
9
|
begin
|
10
10
|
host = @options[:host] || "https://www.appstage.io"
|
11
|
+
|
12
|
+
raise('No file specified') unless @options[:upload]
|
11
13
|
file_path = File.expand_path(@options[:upload])
|
12
|
-
content_type = MimeMagic.by_path(file_path) || "application/octet-stream"
|
13
|
-
file_contents = File.open(file_path).read
|
14
14
|
filename = File.basename(@options[:upload])
|
15
|
+
|
16
|
+
raise('Invalid project token') unless @options[:jwt]
|
15
17
|
token = @options[:jwt]
|
16
18
|
|
17
19
|
puts "Uploading #{filename} #{File.size(file_path)} bytes..."
|
18
20
|
|
19
|
-
json = {blob: {
|
20
|
-
filename: filename,
|
21
|
-
byte_size: File.size(file_path),
|
22
|
-
content_type: content_type,
|
23
|
-
checksum: Digest::MD5.base64digest(file_contents)
|
24
|
-
}}.to_json
|
25
|
-
|
26
|
-
response = HTTParty.post(host+'/api/direct_uploads',
|
27
|
-
:body => json,
|
28
|
-
:headers => { 'Content-Type' => 'application/json',
|
29
|
-
'Authorization' => "Bearer #{token}"}
|
30
|
-
)
|
31
|
-
response_json = JSON.parse(response.body)
|
32
|
-
raise(response_json['error']) unless response.code == 200
|
33
|
-
|
34
|
-
direct_url = response_json['direct_upload']['url']
|
35
|
-
headers = response_json['direct_upload']['headers']
|
36
|
-
headers['Connection'] = 'keep-alive'
|
37
|
-
|
38
|
-
response = HTTParty.put(direct_url,
|
39
|
-
multipart: true,
|
40
|
-
headers: headers,
|
41
|
-
body: file_contents
|
42
|
-
)
|
43
|
-
raise(response_json['error']) unless response.code == 200
|
44
|
-
|
45
|
-
cloud_stored_file = response_json['signed_id']
|
46
21
|
json = {
|
47
22
|
release_file: {
|
48
|
-
cloud_stored_file:
|
23
|
+
cloud_stored_file: File.open(file_path)
|
49
24
|
}
|
50
|
-
}
|
25
|
+
}
|
51
26
|
|
52
|
-
response = HTTParty.post(host+"/api/live_builds
|
27
|
+
response = HTTParty.post(host+"/api/live_builds",
|
53
28
|
:body => json,
|
54
|
-
:
|
55
|
-
|
29
|
+
:multipart => true,
|
30
|
+
:headers => {
|
31
|
+
'Authorization' => "Bearer #{token}"
|
32
|
+
},
|
33
|
+
:verify => false
|
56
34
|
)
|
57
35
|
raise(JSON.parse(response.body)['error']) unless response.code == 200
|
58
36
|
|
@@ -60,7 +38,7 @@ module AppStage
|
|
60
38
|
0
|
61
39
|
rescue Exception => e
|
62
40
|
puts "Upload failed - #{e}"
|
63
|
-
|
41
|
+
-1
|
64
42
|
end
|
65
43
|
end
|
66
44
|
end
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appstage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- P4 Innovation Ltd
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -16,28 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: '0.21'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: '0.21'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
34
|
-
type: :
|
33
|
+
version: '3.6'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3.6'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: webmock
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.23'
|
48
|
+
type: :development
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
52
|
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
54
|
+
version: '3.23'
|
41
55
|
description: List, Upload and Delete live build content on appstage.io
|
42
56
|
email:
|
43
57
|
- hello@appstage.io
|