appstage 0.0.11 → 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: 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