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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e33db3360ea6bd476fe569032907fdca12f58c1d62731817c85c907f90bd191d
4
- data.tar.gz: fad0bcfe3cf1102b3e864d22072ed43ef71c8a06483a3e64279240317b9bea50
3
+ metadata.gz: 899da4478e914b2b501efaceda1249b810530fd23e7711c441b9888d6559bae7
4
+ data.tar.gz: 86af51492b1a2453c05699db459ab0c0aa92285d49e6f384e75b29c36297f014
5
5
  SHA512:
6
- metadata.gz: 2aaf27f2b0f19a436a90de7e37d511fbc75d63461c0095afce69342ce8d76aecac6c365e036400d73647b56a2ece1ca768c830e5d2daa293b22cb15cbb28ed8b
7
- data.tar.gz: b9486f84b49290fdd1be3b5bd932d2e6fcd6b04af7d59ca7cf88613563e47f4c6460b4c06bf7df24fc9da40a234436b38db4d6cc4611776b1bf003715808660e
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 account JWT token") do |v|
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
- 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,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: cloud_stored_file
23
+ cloud_stored_file: File.open(file_path)
49
24
  }
50
- }.to_json
25
+ }
51
26
 
52
- response = HTTParty.post(host+"/api/live_builds.json",
27
+ response = HTTParty.post(host+"/api/live_builds",
53
28
  :body => json,
54
- :headers => { 'Content-Type' => 'application/json',
55
- 'Authorization' => "Bearer #{token}"}
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
- 1001
41
+ -1
64
42
  end
65
43
  end
66
44
  end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Appstage
2
- VERSION = "0.0.11"
2
+ VERSION = "1.0.12"
3
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.11
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-02-08 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