appstage 0.0.9 → 1.0.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5d77157f887095e6f3c718cce8701323f0fd7a154df37cd9401d2ff6c797776
4
- data.tar.gz: 86a8d2824bfaf18cacdb692833e64f60ae04f3741a5a67210192fe7b0383b9ec
3
+ metadata.gz: 899da4478e914b2b501efaceda1249b810530fd23e7711c441b9888d6559bae7
4
+ data.tar.gz: 86af51492b1a2453c05699db459ab0c0aa92285d49e6f384e75b29c36297f014
5
5
  SHA512:
6
- metadata.gz: 72f17186550c9acc1d887a133758045be13117f2a640cda16f48b24d6bb6fa321990e98028fd2e4f49a42d5a727eff3db6caa4c3d1bf701fd42f8d3a56ab2f07
7
- data.tar.gz: 506bae5149fdfbe490f456dc9651f5ba999ce5f99a941c410721c1fb224df18d8e2f463906d535074d143d41259d7ff54d85ecdf6935635984678f4df4ddf9d1
6
+ metadata.gz: 1e4353c2005fc439e7e7df645ea5d9a8575eee12b68668b723f2be2817941733da0208906e22c424ab9bf973fe5561e85ab3789c15054f06d2803252b9e24d5a
7
+ data.tar.gz: 619646d115c8df60ce69f22d28ee1c30ee4703480d79bf4421bb6f444fb9eaf0b2575b886cca908805e92300a0690e43ab30e436af691d643e1fe2ba42ddc853
data/lib/appstage.rb CHANGED
@@ -1,11 +1,10 @@
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'
7
+ require 'version'
9
8
 
10
9
  module AppStage
11
10
 
@@ -13,7 +12,7 @@ module AppStage
13
12
  options = {}
14
13
 
15
14
  option_parser = OptionParser.new do |parser|
16
- parser.banner = "Appstage CLI V#{Gem::Specification::load("appstage.gemspec").version}\n" <<
15
+ parser.banner = "Appstage CLI V#{Appstage::VERSION}\n" <<
17
16
  "Usage: appstage <command> [options]"
18
17
 
19
18
  parser.separator " Commands:-"
@@ -36,14 +35,10 @@ module AppStage
36
35
 
37
36
  parser.separator " Options:-"
38
37
 
39
- parser.on("-j", "--jwttoken JWT", "Your appstage.io account JWT token") do |v|
38
+ parser.on("-j", "--jwttoken JWT", "Your appstage.io project token") do |v|
40
39
  options[:jwt] = v
41
40
  end
42
41
 
43
- parser.on("-p", "--project_id ID", "Your appstage.io project id") do |v|
44
- options[:project_id] = v
45
- end
46
-
47
42
  parser.on("-h", "--host HOSTURL", "The appstage host, optional, leave blank to use live server") do |v|
48
43
  options[:host] = v
49
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
- return 1
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] or "https://www.appstage.io"
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}.json",
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
- return 1
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.json",
26
+ response = HTTParty.get(host+"/api/live_builds",
26
27
  :headers => { 'Content-Type' => 'application/json',
27
28
  'Authorization' => "Bearer #{token}"}
28
29
  )
29
- raise "Server error #{response.code}" if response.code != 200
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,59 +8,37 @@ 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
-
32
- response_json = JSON.parse(response.body)
33
-
34
- direct_url = response_json['direct_upload']['url']
35
- headers = response_json['direct_upload']['headers']
36
- headers['Connection'] = 'keep-alive'
37
-
38
- response_json = HTTParty.put(direct_url,
39
- multipart: true,
40
- headers: headers,
41
- body: file_contents
42
- )
43
- response_json = JSON.parse(response.body)
44
-
45
- cloud_stored_file = response_json['signed_id']
46
-
47
21
  json = {
48
22
  release_file: {
49
- cloud_stored_file: cloud_stored_file
23
+ cloud_stored_file: File.open(file_path)
50
24
  }
51
- }.to_json
52
-
53
- response = HTTParty.post(host+"/api/live_builds.json",
54
- :body => json,
55
- :headers => { 'Content-Type' => 'application/json',
56
- 'Authorization' => "Bearer #{token}"}
57
- )
25
+ }
26
+
27
+ response = HTTParty.post(host+"/api/live_builds",
28
+ :body => json,
29
+ :multipart => true,
30
+ :headers => {
31
+ 'Authorization' => "Bearer #{token}"
32
+ },
33
+ :verify => false
34
+ )
35
+ raise(JSON.parse(response.body)['error']) unless response.code == 200
58
36
 
59
37
  puts "Upload complete"
60
- response.code == 200 ? 0 : response.code
38
+ 0
61
39
  rescue Exception => e
62
40
  puts "Upload failed - #{e}"
63
- 0
41
+ -1
64
42
  end
65
43
  end
66
44
  end
data/lib/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ module Appstage
2
+ VERSION = "1.0.12"
3
+ end
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: 0.0.9
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-01-12 00:00:00.000000000 Z
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.18.1
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.18.1
26
+ version: '0.21'
27
27
  - !ruby/object:Gem::Dependency
28
- name: mimemagic
28
+ name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.3.5
34
- type: :runtime
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: 0.3.5
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
@@ -51,6 +65,7 @@ files:
51
65
  - lib/delete_files.rb
52
66
  - lib/list_files.rb
53
67
  - lib/upload_file.rb
68
+ - lib/version.rb
54
69
  homepage: https://github.com/p4innovation/appstage-cli
55
70
  licenses:
56
71
  - MIT