appetize-cli 0.1.1 → 0.1.2

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: 642908ae4d7480ba11ec35402e9a73a7f59b669eea197f702309ae1a4176b73a
4
- data.tar.gz: 5f230ed7ad97f5dd2ff48ab2563c975e5818c9e38b3fa0535dddb8e88d52a653
3
+ metadata.gz: d2101282d9a12bdff13f6a1dd9201f02ad8d2a224cb3a3812062fcd071055d45
4
+ data.tar.gz: b15eb9a303bf9a1eacd987e104389d152f099e041449a58849eaeb2e6ea106c7
5
5
  SHA512:
6
- metadata.gz: eb0850157f3cffcea73c08d1eace35568c3fdc70c1b78c667ada8c3b4f742ee063a645f8fe0a7efc6247be0a35028b5760e74de2eddc62514c21ffae221ecd3d
7
- data.tar.gz: f861b188ad460b2e53fd2ba5e87e18c50f931f825ca1907ab671ec94cb23d2d1cc19e12d18e9a29cfca73cb4740e9bf7834a50aa078f9f2101567ff5517c05ad
6
+ metadata.gz: 928614f04e34a1cde2585b6d626e83a7e3b78610b9349142ab212f8c8cd3b50a78dc4566d49f6b688826e9a9d21802ce0b5a6dd485bc4bdb733f674af53da49b
7
+ data.tar.gz: 22ca9b064911e3271dc4c1aba63bc7a37761cca606ca1337465c7c66550fafc0025268e7f5c4d6a66bbb80b36ae260da73e380d5f3a3aef42389131fa0d7feba
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.4
2
+ TargetRubyVersion: 2.5
3
3
 
4
4
  Style/StringLiterals:
5
5
  Enabled: true
@@ -11,3 +11,12 @@ Style/StringLiteralsInInterpolation:
11
11
 
12
12
  Layout/LineLength:
13
13
  Max: 120
14
+
15
+ Lint/MissingSuper:
16
+ Enabled: false
17
+
18
+ Lint/UnusedMethodArgument:
19
+ Enabled: false
20
+
21
+ Style/Documentation:
22
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
- ## [0.1.0] - 2021-08-30
3
+ ## [0.1.2] - 2021-09-02
4
+
5
+ - Adding specs, cleaning up gemspec, updated README
6
+
7
+ ## [0.1.1] - 2021-08-30
4
8
 
5
9
  - Initial release
data/README.md CHANGED
@@ -1,43 +1,83 @@
1
- # Appetize
1
+ # Appetize CLI
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/appetize`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
3
+ The Appetize CLI provides a command line interface to the [Appetize API](https://docs.appetize.io/api/overview).
6
4
 
7
5
  ## Installation
8
6
 
9
- Add this line to your application's Gemfile:
7
+ Install this gem by executing:
8
+
9
+ $ gem install appetize-cli
10
+
11
+ ## Usage
12
+
13
+ Currently there are two supported actions `upload` and `delete` - `help` and `version` commands are also supplied.
10
14
 
11
- ```ruby
12
- gem 'appetize'
15
+ ```
16
+ Commands:
17
+ appetize delete PUBLIC_KEY # Delete an app deploymment from Appetize
18
+ appetize help [COMMAND] # Describe available commands or one specific command
19
+ appetize upload PATH PLATFORM # Upload an APK/ZIP to Appetize
20
+ appetize version # appetize version
13
21
  ```
14
22
 
15
- And then execute:
23
+ ### Setup
16
24
 
17
- $ bundle install
25
+ All actions in this tool require an Appetize API token, which can be generated in your Appetize account. Once a token has been generated you must set it as the environment variable `APPETIZE_API_TOKEN`.
18
26
 
19
- Or install it yourself as:
27
+ Example:
20
28
 
21
- $ gem install appetize
29
+ $ export APPETIZE_API_TOKEN=yourtoken
22
30
 
23
- ## Usage
24
31
 
25
- TODO: Write usage instructions here
32
+ ### Upload
33
+
34
+ Upload an APK/ZIP to Appetize
35
+
36
+ ```
37
+ Usage:
38
+ appetize upload PATH PLATFORM
39
+ ```
40
+
41
+ `PATH` the path to the Apk or Zip file of the app you would like to deploy
42
+
43
+ `PLATFORM` either `ios` or `android`
44
+
45
+ Example:
46
+
47
+ $ appetize upload builds/app-debug.apk android
48
+ $ appetize upload builds/app.zip ios
49
+
50
+
51
+ ### Delete
52
+
53
+ Delete an app deploymment from Appetize
54
+
55
+ ```
56
+ Usage:
57
+ appetize delete PUBLIC_KEY
58
+ ```
59
+
60
+ `PUBLIC_KEY` the public key provided by Appetize for the specific app deployment you'd like to delete
61
+
62
+ Example:
63
+
64
+ $ appetize delete somepublickey
65
+
26
66
 
27
67
  ## Development
28
68
 
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
69
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `bundle exec rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
70
 
31
71
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
72
 
33
73
  ## Contributing
34
74
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/appetize. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/[USERNAME]/appetize/blob/master/CODE_OF_CONDUCT.md).
75
+ Bug reports and merge requests are welcome on GitLab at https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize-cli/-/issues. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize-cli/-/blob/master/CODE_OF_CONDUCT.md).
36
76
 
37
77
  ## Code of Conduct
38
78
 
39
- Everyone interacting in the Appetize project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/appetize/blob/master/CODE_OF_CONDUCT.md).
79
+ Everyone interacting in the Appetize CLI project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize-cli/-/blob/master/CODE_OF_CONDUCT.md).
40
80
 
41
81
  ## Copyright
42
82
 
43
- Copyright (c) 2021 Darby Frey. See [MIT License](LICENSE.txt) for further details.
83
+ Copyright (c) 2021 GitLab, Inc. See [MIT License](LICENSE.txt) for further details.
data/appetize.gemspec CHANGED
@@ -11,12 +11,12 @@ Gem::Specification.new do |spec|
11
11
 
12
12
  spec.summary = "A Command Line Interface to the Appetize.io API"
13
13
  spec.description = "A Command Line Interface to the Appetize.io API"
14
- spec.homepage = "https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize"
15
- spec.required_ruby_version = ">= 2.4.0"
14
+ spec.homepage = "https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize-cli"
15
+ spec.required_ruby_version = ">= 2.5.0"
16
16
 
17
17
  spec.metadata["homepage_uri"] = spec.homepage
18
- spec.metadata["source_code_uri"] = "https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize"
19
- spec.metadata["changelog_uri"] = "https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize/CHANGELOG.md"
18
+ spec.metadata["source_code_uri"] = "https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize-cli"
19
+ spec.metadata["changelog_uri"] = "https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize-cli/CHANGELOG.md"
20
20
 
21
21
  # Specify which files should be added to the gem when it is released.
22
22
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
data/exe/appetize CHANGED
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- lib_path = File.expand_path('../lib', __dir__)
5
- $:.unshift(lib_path) if !$:.include?(lib_path)
6
- require 'appetize/cli'
4
+ lib_path = File.expand_path("../lib", __dir__)
5
+ $LOAD_PATH.unshift(lib_path) unless $LOAD_PATH.include?(lib_path)
6
+ require "appetize/cli"
7
7
 
8
- Signal.trap('INT') do
8
+ Signal.trap("INT") do
9
9
  warn("\n#{caller.join("\n")}: interrupted")
10
10
  exit(1)
11
11
  end
12
12
 
13
13
  begin
14
14
  Appetize::CLI.start
15
- rescue Appetize::CLI::Error => err
16
- puts "ERROR: #{err.message}"
15
+ rescue Appetize::CLI::Error => e
16
+ puts "ERROR: #{e.message}"
17
17
  exit 1
18
18
  end
data/lib/appetize/cli.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'thor'
4
- require 'httparty'
3
+ require "thor"
5
4
 
6
5
  module Appetize
7
6
  # Handle the application command line parsing
@@ -12,33 +11,33 @@ module Appetize
12
11
  # Error raised by this runner
13
12
  Error = Class.new(StandardError)
14
13
 
15
- desc 'version', 'appetize version'
14
+ desc "version", "appetize version"
16
15
  def version
17
- require_relative 'version'
16
+ require_relative "version"
18
17
  puts "v#{Appetize::VERSION}"
19
18
  end
20
- map %w(--version -v) => :version
19
+ map %w[--version -v] => :version
21
20
 
22
- desc 'upload PATH PLATFORM', 'Upload an APK/ZIP to Appetize'
23
- method_option :help, aliases: '-h', type: :boolean,
24
- desc: 'Display usage information'
21
+ desc "upload PATH PLATFORM", "Upload an APK/ZIP to Appetize"
22
+ method_option :help, aliases: "-h", type: :boolean,
23
+ desc: "Display usage information"
25
24
  def upload(path, platform, token = nil, api_host = nil)
26
25
  if options[:help]
27
- invoke :help, ['upload']
26
+ invoke :help, ["upload"]
28
27
  else
29
- require_relative 'commands/upload'
28
+ require_relative "commands/upload"
30
29
  Appetize::Commands::Upload.new(path, platform, token, api_host, options).execute
31
30
  end
32
31
  end
33
32
 
34
- desc 'delete PUBLIC_KEY', 'Delete an app deploymment from Appetize'
35
- method_option :help, aliases: '-h', type: :boolean,
36
- desc: 'Display usage information'
33
+ desc "delete PUBLIC_KEY", "Delete an app deploymment from Appetize"
34
+ method_option :help, aliases: "-h", type: :boolean,
35
+ desc: "Display usage information"
37
36
  def delete(public_key, token = nil, api_host = nil)
38
37
  if options[:help]
39
- invoke :help, ['delete']
38
+ invoke :help, ["delete"]
40
39
  else
41
- require_relative 'commands/delete'
40
+ require_relative "commands/delete"
42
41
  Appetize::Commands::Delete.new(public_key, token, api_host, options).execute
43
42
  end
44
43
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'forwardable'
3
+ require "forwardable"
4
4
 
5
5
  module Appetize
6
6
  class Command
@@ -24,7 +24,7 @@ module Appetize
24
24
  #
25
25
  # @api public
26
26
  def command(**options)
27
- require 'tty-command'
27
+ require "tty-command"
28
28
  TTY::Command.new(options)
29
29
  end
30
30
 
@@ -34,7 +34,7 @@ module Appetize
34
34
  #
35
35
  # @api public
36
36
  def cursor
37
- require 'tty-cursor'
37
+ require "tty-cursor"
38
38
  TTY::Cursor
39
39
  end
40
40
 
@@ -44,7 +44,7 @@ module Appetize
44
44
  #
45
45
  # @api public
46
46
  def editor
47
- require 'tty-editor'
47
+ require "tty-editor"
48
48
  TTY::Editor
49
49
  end
50
50
 
@@ -54,7 +54,7 @@ module Appetize
54
54
  #
55
55
  # @api public
56
56
  def generator
57
- require 'tty-file'
57
+ require "tty-file"
58
58
  TTY::File
59
59
  end
60
60
 
@@ -64,7 +64,7 @@ module Appetize
64
64
  #
65
65
  # @api public
66
66
  def pager(**options)
67
- require 'tty-pager'
67
+ require "tty-pager"
68
68
  TTY::Pager.new(options)
69
69
  end
70
70
 
@@ -74,7 +74,7 @@ module Appetize
74
74
  #
75
75
  # @api public
76
76
  def platform
77
- require 'tty-platform'
77
+ require "tty-platform"
78
78
  TTY::Platform.new
79
79
  end
80
80
 
@@ -84,7 +84,7 @@ module Appetize
84
84
  #
85
85
  # @api public
86
86
  def prompt(**options)
87
- require 'tty-prompt'
87
+ require "tty-prompt"
88
88
  TTY::Prompt.new(options)
89
89
  end
90
90
 
@@ -94,7 +94,7 @@ module Appetize
94
94
  #
95
95
  # @api public
96
96
  def screen
97
- require 'tty-screen'
97
+ require "tty-screen"
98
98
  TTY::Screen
99
99
  end
100
100
 
@@ -104,7 +104,7 @@ module Appetize
104
104
  #
105
105
  # @api public
106
106
  def which(*args)
107
- require 'tty-which'
107
+ require "tty-which"
108
108
  TTY::Which.which(*args)
109
109
  end
110
110
 
@@ -114,7 +114,7 @@ module Appetize
114
114
  #
115
115
  # @api public
116
116
  def exec_exist?(*args)
117
- require 'tty-which'
117
+ require "tty-which"
118
118
  TTY::Which.exist?(*args)
119
119
  end
120
120
  end
@@ -1,11 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../command'
3
+ require "httparty"
4
+ require_relative "../command"
4
5
 
5
6
  module Appetize
6
7
  module Commands
7
8
  class Delete < Appetize::Command
8
- def initialize(public_key, token, api_host, options)
9
+ def initialize(public_key, token = nil, api_host = nil, options = {})
9
10
  @public_key = public_key
10
11
  @token = token
11
12
  @api_host = api_host
@@ -13,23 +14,17 @@ module Appetize
13
14
  end
14
15
 
15
16
  def execute(input: $stdin, output: $stdout)
16
- token = @token || ENV['APPETIZE_API_TOKEN']
17
- api_host = @api_host || 'api.appetize.io'
17
+ token = @token || ENV["APPETIZE_API_TOKEN"]
18
+ api_host = @api_host || "api.appetize.io"
18
19
 
19
20
  url = "https://#{api_host}/v1/apps/#{@public_key}"
20
- auth = {
21
- username: token,
22
- password: ''
23
- }
21
+ auth = { username: token, password: "" }
24
22
 
25
23
  response = HTTParty.delete(url, basic_auth: auth)
26
-
27
- if response.code == 200
28
- output.puts response
29
- else
30
- message = "Delete failed: #{response.code}"
31
- raise message
32
- end
24
+
25
+ raise "Delete failed: #{response.code}" unless response.code == 200
26
+
27
+ output.puts response.message
33
28
  end
34
29
  end
35
30
  end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../command'
3
+ require "httparty"
4
+ require_relative "../command"
4
5
 
5
6
  module Appetize
6
7
  module Commands
@@ -14,27 +15,18 @@ module Appetize
14
15
  end
15
16
 
16
17
  def execute(input: $stdin, output: $stdout)
17
- token = @token || ENV['APPETIZE_API_TOKEN']
18
- api_host = @api_host || 'api.appetize.io'
18
+ token = @token || ENV["APPETIZE_API_TOKEN"]
19
+ api_host = @api_host || "api.appetize.io"
19
20
 
20
21
  url = "https://#{api_host}/v1/apps"
21
- auth = {
22
- username: token,
23
- password: ''
24
- }
25
- body = {
26
- platform: @platform,
27
- file: File.open(@path)
28
- }
22
+ auth = { username: token, password: "" }
23
+ body = { platform: @platform, file: File.open(@path) }
29
24
 
30
25
  response = HTTParty.post(url, body: body, basic_auth: auth)
31
26
 
32
- if response.code == 200
33
- output.puts response
34
- else
35
- message = "Upload failed: #{response.code}"
36
- raise message
37
- end
27
+ raise "Upload failed: #{response.code}" unless response.code == 200
28
+
29
+ output.puts response.message
38
30
  end
39
31
  end
40
32
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Appetize
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appetize-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darby Frey
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-30 00:00:00.000000000 Z
11
+ date: 2021-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -68,13 +68,13 @@ files:
68
68
  - lib/appetize/templates/delete/.gitkeep
69
69
  - lib/appetize/templates/upload/.gitkeep
70
70
  - lib/appetize/version.rb
71
- homepage: https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize
71
+ homepage: https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize-cli
72
72
  licenses:
73
73
  - MIT
74
74
  metadata:
75
- homepage_uri: https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize
76
- source_code_uri: https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize
77
- changelog_uri: https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize/CHANGELOG.md
75
+ homepage_uri: https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize-cli
76
+ source_code_uri: https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize-cli
77
+ changelog_uri: https://gitlab.com/gitlab-org/incubation-engineering/devops-for-mobile-apps/appetize-cli/CHANGELOG.md
78
78
  post_install_message:
79
79
  rdoc_options: []
80
80
  require_paths:
@@ -83,7 +83,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
83
83
  requirements:
84
84
  - - ">="
85
85
  - !ruby/object:Gem::Version
86
- version: 2.4.0
86
+ version: 2.5.0
87
87
  required_rubygems_version: !ruby/object:Gem::Requirement
88
88
  requirements:
89
89
  - - ">="