appstage 0.0.11 → 1.0.13

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: c57adb1333c669207b9a035da067c3e18269a1a7d1374a21b96853d86f642a8f
4
+ data.tar.gz: 3287d80b26a3ad3af4f7c7f3cf668a1e775781733e73d00b1d2da4c09999073c
5
5
  SHA512:
6
- metadata.gz: 2aaf27f2b0f19a436a90de7e37d511fbc75d63461c0095afce69342ce8d76aecac6c365e036400d73647b56a2ece1ca768c830e5d2daa293b22cb15cbb28ed8b
7
- data.tar.gz: b9486f84b49290fdd1be3b5bd932d2e6fcd6b04af7d59ca7cf88613563e47f4c6460b4c06bf7df24fc9da40a234436b38db4d6cc4611776b1bf003715808660e
6
+ metadata.gz: 26c8c813893dcacd2fe3e01c0f798cb5cf22dcd87528574757102c9a767103483200f3c02e6f31eb7560ff169fd1c2cf2ae854fd032fea1c3b05f4fb6071f986
7
+ data.tar.gz: 6ee2bc35eea83b525f279f709b306e0b42dd4107d401fe16310dde78453a82ba5c32915ed1cbb0e06128360ee25e67797c6884600d74452dedf3e2e0809b38f6
data/lib/appstage.rb CHANGED
@@ -1,12 +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
- require 'list_files'
7
- require 'delete_files'
8
- require 'upload_file'
9
- require 'version'
4
+ require_relative 'list_files'
5
+ require_relative 'delete_files'
6
+ require_relative 'upload_file'
7
+ require_relative 'version'
10
8
 
11
9
  module AppStage
12
10
 
@@ -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
@@ -1,3 +1,5 @@
1
+ require 'json'
2
+
1
3
  module AppStage
2
4
 
3
5
  class ListFiles
@@ -10,23 +12,24 @@ module AppStage
10
12
  getFileList.each do |rf|
11
13
  puts "#{rf['name']}"
12
14
  end
15
+ 0
13
16
  rescue Exception => e
14
17
  puts "File listing failed - #{e.message}"
15
- return 1
18
+ -1
16
19
  end
17
- 0
18
20
  end
19
21
 
20
22
  def getFileList
21
23
  host = @options[:host] || "https://www.appstage.io"
24
+ raise('Invalid project token') unless @options[:jwt]
22
25
  token = @options[:jwt]
23
26
  pattern = @options[:list].nil? ? ".*" : @options[:list]
24
27
 
25
- response = HTTParty.get(host+"/api/live_builds.json",
28
+ response = HTTParty.get(host+"/api/live_builds",
26
29
  :headers => { 'Content-Type' => 'application/json',
27
30
  'Authorization' => "Bearer #{token}"}
28
31
  )
29
- raise "Server error #{response.code}" if response.code != 200
32
+ raise(JSON.parse(response.body)['error']) unless response.code == 200
30
33
  files = JSON.parse(response.body)['release_files'].select{|f| f['name'].match(/#{pattern}/)}
31
34
  end
32
35
  end
data/lib/upload_file.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'json'
2
+
1
3
  module AppStage
2
4
 
3
5
  class UploadFile
@@ -8,51 +10,29 @@ module AppStage
8
10
  def execute
9
11
  begin
10
12
  host = @options[:host] || "https://www.appstage.io"
13
+
14
+ raise('No file specified') unless @options[:upload]
11
15
  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
16
  filename = File.basename(@options[:upload])
17
+
18
+ raise('Invalid project token') unless @options[:jwt]
15
19
  token = @options[:jwt]
16
20
 
17
21
  puts "Uploading #{filename} #{File.size(file_path)} bytes..."
18
22
 
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
23
  json = {
47
24
  release_file: {
48
- cloud_stored_file: cloud_stored_file
25
+ cloud_stored_file: File.open(file_path)
49
26
  }
50
- }.to_json
27
+ }
51
28
 
52
- response = HTTParty.post(host+"/api/live_builds.json",
29
+ response = HTTParty.post(host+"/api/live_builds",
53
30
  :body => json,
54
- :headers => { 'Content-Type' => 'application/json',
55
- 'Authorization' => "Bearer #{token}"}
31
+ :multipart => true,
32
+ :headers => {
33
+ 'Authorization' => "Bearer #{token}"
34
+ },
35
+ :verify => false
56
36
  )
57
37
  raise(JSON.parse(response.body)['error']) unless response.code == 200
58
38
 
@@ -60,7 +40,7 @@ module AppStage
60
40
  0
61
41
  rescue Exception => e
62
42
  puts "Upload failed - #{e}"
63
- 1001
43
+ -1
64
44
  end
65
45
  end
66
46
  end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Appstage
2
- VERSION = "0.0.11"
2
+ VERSION = "1.0.13"
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.13
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: 2025-07-11 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
@@ -64,14 +78,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
64
78
  requirements:
65
79
  - - ">="
66
80
  - !ruby/object:Gem::Version
67
- version: '0'
81
+ version: 3.1.0
68
82
  required_rubygems_version: !ruby/object:Gem::Requirement
69
83
  requirements:
70
84
  - - ">="
71
85
  - !ruby/object:Gem::Version
72
86
  version: '0'
73
87
  requirements: []
74
- rubygems_version: 3.0.3
88
+ rubygems_version: 3.3.7
75
89
  signing_key:
76
90
  specification_version: 4
77
91
  summary: Appstage.io CLI gem