superbot-cloud 0.1.19 → 0.1.20
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 +4 -4
- data/Gemfile.lock +18 -8
- data/lib/superbot/cloud/api.rb +11 -8
- data/lib/superbot/cloud/cli/member/add_command.rb +22 -0
- data/lib/superbot/cloud/cli/member/base_command.rb +13 -0
- data/lib/superbot/cloud/cli/member/list_command.rb +23 -0
- data/lib/superbot/cloud/cli/member/remove_command.rb +22 -0
- data/lib/superbot/cloud/cli/member_command.rb +29 -0
- data/lib/superbot/cloud/cli/root_command.rb +2 -0
- data/lib/superbot/cloud/version.rb +1 -1
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f149174047438d78cdf91f26516e2795ba53b9ab701b7dd4563d036384702fd2
|
4
|
+
data.tar.gz: 1a7607932dfc2aa85903c0090c90dfef8879cc046e78335a6144254e0843d8e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 88024f39aaf13db2702d47b7b0b0ec8e27b736e966ba6b06e8176386caa4169e6a3d18084713d3c2775fb1b1d5ee61918e509fabd778574b1318499823efc9ff
|
7
|
+
data.tar.gz: ed809591a0110e3f56d3e56a88f403baccde19a1b0f9c2fe0d4f1614048af9608874ed02781117f6da88b3ab514d9024565ebfb18fa364af410071b42a3a41d2
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
superbot-cloud (0.1.
|
4
|
+
superbot-cloud (0.1.20)
|
5
5
|
marcel (= 0.3.3)
|
6
6
|
multipart-post (= 2.0.0)
|
7
7
|
|
@@ -10,13 +10,19 @@ GEM
|
|
10
10
|
specs:
|
11
11
|
addressable (2.5.2)
|
12
12
|
public_suffix (>= 2.0.2, < 4.0)
|
13
|
+
archive-zip (0.11.0)
|
14
|
+
io-like (~> 0.3.0)
|
13
15
|
ast (2.4.0)
|
14
16
|
childprocess (0.9.0)
|
15
17
|
ffi (~> 1.0, >= 1.0.11)
|
18
|
+
chromedriver-helper (2.1.0)
|
19
|
+
archive-zip (~> 0.10)
|
20
|
+
nokogiri (~> 1.8)
|
16
21
|
clamp (1.2.1)
|
17
22
|
diff-lcs (1.3)
|
18
23
|
excon (0.62.0)
|
19
24
|
ffi (1.9.25)
|
25
|
+
io-like (0.3.0)
|
20
26
|
jaro_winkler (1.5.1)
|
21
27
|
kommando (0.1.2)
|
22
28
|
launchy (2.4.3)
|
@@ -24,8 +30,11 @@ GEM
|
|
24
30
|
marcel (0.3.3)
|
25
31
|
mimemagic (~> 0.3.2)
|
26
32
|
mimemagic (0.3.2)
|
33
|
+
mini_portile2 (2.3.0)
|
27
34
|
multipart-post (2.0.0)
|
28
35
|
mustermann (1.0.3)
|
36
|
+
nokogiri (1.8.5)
|
37
|
+
mini_portile2 (~> 2.3.0)
|
29
38
|
parallel (1.12.1)
|
30
39
|
parser (2.5.1.2)
|
31
40
|
ast (~> 2.4.0)
|
@@ -68,20 +77,21 @@ GEM
|
|
68
77
|
rack-protection (= 2.0.4)
|
69
78
|
tilt (~> 2.0)
|
70
79
|
sinatra-silent (0.0.1)
|
71
|
-
superbot (0.1.
|
80
|
+
superbot (0.1.29)
|
72
81
|
clamp (= 1.2.1)
|
73
82
|
kommando (~> 0.1)
|
74
83
|
launchy (= 2.4.3)
|
75
|
-
selenium-webdriver (~> 3.14, >= 3.14.0)
|
76
84
|
sinatra (= 2.0.4)
|
77
85
|
sinatra-silent (= 0.0.1)
|
78
|
-
superbot-cloud (~> 0.1.
|
79
|
-
superbot-
|
86
|
+
superbot-cloud (~> 0.1.19)
|
87
|
+
superbot-selenium-webdriver (~> 1.0.1)
|
88
|
+
superbot-teleport (~> 0.2.2)
|
80
89
|
zaru (= 0.2.0)
|
81
|
-
superbot-
|
82
|
-
|
90
|
+
superbot-selenium-webdriver (1.0.1)
|
91
|
+
chromedriver-helper (= 2.1.0)
|
92
|
+
selenium-webdriver (= 3.141.0)
|
93
|
+
superbot-teleport (0.2.2)
|
83
94
|
excon
|
84
|
-
kommando (~> 0.1)
|
85
95
|
tilt (2.0.9)
|
86
96
|
unicode-display_width (1.4.0)
|
87
97
|
zaru (0.2.0)
|
data/lib/superbot/cloud/api.rb
CHANGED
@@ -7,14 +7,17 @@ module Superbot
|
|
7
7
|
module Api
|
8
8
|
BASE_URI = "#{Superbot::Cloud::BASE_URI}/api/v1"
|
9
9
|
ENDPOINT_MAP = {
|
10
|
-
login:
|
11
|
-
token:
|
12
|
-
organization_list:
|
13
|
-
test_list:
|
14
|
-
test_upload:
|
15
|
-
delete_test:
|
16
|
-
webdriver_session_list:
|
17
|
-
delete_webdriver_session:
|
10
|
+
login: { method: :post, endpoint: 'sessions' },
|
11
|
+
token: { method: :post, endpoint: 'token' },
|
12
|
+
organization_list: { method: :get, endpoint: 'organizations' },
|
13
|
+
test_list: { method: :get, endpoint: 'tests' },
|
14
|
+
test_upload: { method: :post_multipart, endpoint: 'tests' },
|
15
|
+
delete_test: { method: :delete, endpoint: 'tests', required_param: :name },
|
16
|
+
webdriver_session_list: { method: :get, endpoint: 'webdriver_sessions' },
|
17
|
+
delete_webdriver_session: { method: :delete, endpoint: 'webdriver_sessions', required_param: :session_id },
|
18
|
+
organization_members_list: { method: :get, endpoint: 'members' },
|
19
|
+
organization_add_member: { method: :post, endpoint: 'members' },
|
20
|
+
organization_remove_member: { method: :delete, endpoint: 'members', required_param: :username }
|
18
21
|
}.freeze
|
19
22
|
|
20
23
|
def self.request(type, params: {})
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Superbot
|
4
|
+
module Cloud
|
5
|
+
module CLI
|
6
|
+
module Member
|
7
|
+
class AddCommand < BaseCommand
|
8
|
+
parameter "USERNAME", "Username of a user to add", required: true
|
9
|
+
|
10
|
+
def execute
|
11
|
+
add_member
|
12
|
+
end
|
13
|
+
|
14
|
+
def add_member
|
15
|
+
api_response = Superbot::Cloud::Api.request(:organization_add_member, params: { organization_name: organization, username: username })
|
16
|
+
puts "Succesfully added %<username>s to %<organization>s organization" % api_response.slice(:username, :organization)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Superbot
|
4
|
+
module Cloud
|
5
|
+
module CLI
|
6
|
+
module Member
|
7
|
+
class BaseCommand < Clamp::Command
|
8
|
+
option ["--org"], "ORGANIZATION", "Organization to to take actions on", attribute_name: :organization
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Superbot
|
4
|
+
module Cloud
|
5
|
+
module CLI
|
6
|
+
module Member
|
7
|
+
class ListCommand < BaseCommand
|
8
|
+
def execute
|
9
|
+
list_members
|
10
|
+
end
|
11
|
+
|
12
|
+
def list_members
|
13
|
+
api_response = Superbot::Cloud::Api.request(:organization_members_list, params: { organization_name: @organization })
|
14
|
+
abort api_response[:error] if api_response[:error]
|
15
|
+
puts "Organization: #{api_response[:organization]}"
|
16
|
+
puts "Members:"
|
17
|
+
puts(api_response[:members].map { |m| m[:username] })
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Superbot
|
4
|
+
module Cloud
|
5
|
+
module CLI
|
6
|
+
module Member
|
7
|
+
class RemoveCommand < BaseCommand
|
8
|
+
parameter "USERNAME", "Username of a user to remove"
|
9
|
+
|
10
|
+
def execute
|
11
|
+
remove_member
|
12
|
+
end
|
13
|
+
|
14
|
+
def remove_member
|
15
|
+
api_response = Superbot::Cloud::Api.request(:organization_remove_member, params: { organization_name: organization, username: username })
|
16
|
+
puts "Member successfully removed from organization"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'member/base_command'
|
4
|
+
require_relative 'member/add_command'
|
5
|
+
require_relative 'member/remove_command'
|
6
|
+
require_relative 'member/list_command'
|
7
|
+
|
8
|
+
module Superbot
|
9
|
+
module Cloud
|
10
|
+
module CLI
|
11
|
+
class MemberCommand < Clamp::Command
|
12
|
+
include Superbot::Cloud::Validations
|
13
|
+
|
14
|
+
subcommand ['add'], "Add member to organization", Member::AddCommand
|
15
|
+
subcommand ['remove'], "Remove member from organization", Member::RemoveCommand
|
16
|
+
subcommand ['list'], "List your organization members", Member::ListCommand
|
17
|
+
|
18
|
+
|
19
|
+
def self.run
|
20
|
+
require_login
|
21
|
+
super
|
22
|
+
rescue StandardError => exc
|
23
|
+
warn exc.message
|
24
|
+
warn exc.backtrace.join("\n")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -6,6 +6,7 @@ require_relative 'version_command'
|
|
6
6
|
require_relative 'organization_command'
|
7
7
|
require_relative 'test_command'
|
8
8
|
require_relative 'webdriver_command'
|
9
|
+
require_relative 'member_command'
|
9
10
|
|
10
11
|
module Superbot
|
11
12
|
module Cloud
|
@@ -16,6 +17,7 @@ module Superbot
|
|
16
17
|
subcommand(['org'], 'Manage your organizations', OrganizationCommand)
|
17
18
|
subcommand ['test'], "Manage your tests", TestCommand
|
18
19
|
subcommand ['webdriver'], "Manage your webdriver sessions", WebdriverCommand
|
20
|
+
subcommand ['member'], "Manage your organization members", MemberCommand
|
19
21
|
|
20
22
|
option ['-v', '--version'], :flag, "Show version information" do
|
21
23
|
puts Superbot::Cloud::VERSION
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: superbot-cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Superbots
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-12-
|
11
|
+
date: 2018-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multipart-post
|
@@ -135,6 +135,11 @@ files:
|
|
135
135
|
- lib/superbot/cloud/api.rb
|
136
136
|
- lib/superbot/cloud/cli.rb
|
137
137
|
- lib/superbot/cloud/cli/login_command.rb
|
138
|
+
- lib/superbot/cloud/cli/member/add_command.rb
|
139
|
+
- lib/superbot/cloud/cli/member/base_command.rb
|
140
|
+
- lib/superbot/cloud/cli/member/list_command.rb
|
141
|
+
- lib/superbot/cloud/cli/member/remove_command.rb
|
142
|
+
- lib/superbot/cloud/cli/member_command.rb
|
138
143
|
- lib/superbot/cloud/cli/organization/list_command.rb
|
139
144
|
- lib/superbot/cloud/cli/organization_command.rb
|
140
145
|
- lib/superbot/cloud/cli/root_command.rb
|