a2 0.2.0 → 0.3.1
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/.github/workflows/gem-push.yml +3 -3
- data/.github/workflows/run-rake.yml +2 -2
- data/CHANGELOG.md +35 -0
- data/Gemfile +0 -1
- data/Gemfile.lock +77 -8
- data/README.md +8 -4
- data/a2.gemspec +8 -3
- data/lib/a2/client/reporting.rb +5 -1
- data/lib/a2/client.rb +1 -1
- data/lib/a2/commands/compliance.rb +1 -0
- data/lib/a2/mixins/approved.rb +7 -7
- data/lib/a2/mixins/filtered.rb +2 -1
- data/lib/a2/subcommands/node_mgmt.rb +6 -3
- data/lib/a2/subcommands/reporting.rb +31 -0
- data/lib/a2/subcommands/team.rb +2 -1
- data/lib/a2/subcommands/user.rb +2 -1
- data/lib/a2/version.rb +1 -1
- metadata +28 -15
- data/bin/console +0 -14
- data/bin/setup +0 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e724f7c4be83a1deeacacd760435708a7c8fa594fa62ba6397cac29ad07820c7
|
|
4
|
+
data.tar.gz: c218ab82d310845e7284edeb583b178800d21bca80603889baefc7c8f8897531
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1417567e7b7ac76433c1d84d0e506555424721a85f558c08c2fe416da49960e0bb8af7cd9b048170633e0e333b1d83cfa6f97b18e874edbc471ece00f5691808
|
|
7
|
+
data.tar.gz: 32f613016abdd104ccfda2bbb1c8ff4a10ebc398e3fae4c875bdcb54318003f7789d7637b6c9f8869caa6f95016cee788d58bafd03b4ae3c470909eb4900aa83
|
|
@@ -9,10 +9,10 @@ jobs:
|
|
|
9
9
|
|
|
10
10
|
steps:
|
|
11
11
|
- uses: actions/checkout@v2
|
|
12
|
-
- name: Set up Ruby
|
|
13
|
-
uses:
|
|
12
|
+
- name: Set up Ruby 3.1
|
|
13
|
+
uses: ruby/setup-ruby@v1
|
|
14
14
|
with:
|
|
15
|
-
ruby-version:
|
|
15
|
+
ruby-version: 3.1.2
|
|
16
16
|
- name: Publish to RubyGems
|
|
17
17
|
run: |
|
|
18
18
|
mkdir -p $HOME/.gem
|
|
@@ -12,7 +12,7 @@ jobs:
|
|
|
12
12
|
runs-on: ubuntu-latest
|
|
13
13
|
strategy:
|
|
14
14
|
matrix:
|
|
15
|
-
ruby-version: ['2.6']
|
|
15
|
+
ruby-version: ['2.6', '3.1']
|
|
16
16
|
|
|
17
17
|
steps:
|
|
18
18
|
- uses: actions/checkout@v2
|
|
@@ -21,6 +21,6 @@ jobs:
|
|
|
21
21
|
with:
|
|
22
22
|
ruby-version: ${{ matrix.ruby-version }}
|
|
23
23
|
bundler-cache: true
|
|
24
|
-
bundler: '2.
|
|
24
|
+
bundler: '2.3.26'
|
|
25
25
|
- name: Run tests
|
|
26
26
|
run: bundle exec rake
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [v0.3.1](https://github.com/gscho/a2-cli/tree/HEAD)
|
|
4
|
+
|
|
5
|
+
[Full Changelog](https://github.com/gscho/a2-cli/compare/v0.3.0...HEAD)
|
|
6
|
+
|
|
7
|
+
**Merged pull requests:**
|
|
8
|
+
|
|
9
|
+
- Ruby 3.1 support [\#6](https://github.com/gscho/a2-cli/pull/6) ([gscho](https://github.com/gscho))
|
|
10
|
+
- Bump addressable from 2.7.0 to 2.8.0 [\#5](https://github.com/gscho/a2-cli/pull/5) ([gscho](https://github.com/gscho))
|
|
11
|
+
|
|
12
|
+
## [v0.3.0](https://github.com/gscho/a2-cli/tree/HEAD)
|
|
13
|
+
|
|
14
|
+
[Full Changelog](https://github.com/gscho/a2-cli/compare/v0.2.0...HEAD)
|
|
15
|
+
|
|
16
|
+
**Merged pull requests:**
|
|
17
|
+
|
|
18
|
+
- Add some basic unit tests for approved and filtered mixins [\#2](https://github.com/gscho/a2-cli/pull/2) ([gscho](https://github.com/gscho))
|
|
19
|
+
- Release v0.2.0 [\#1](https://github.com/gscho/a2-cli/pull/1) ([gscho](https://github.com/gscho))
|
|
20
|
+
|
|
21
|
+
## [v0.2.0](https://github.com/gscho/a2-cli/tree/v0.2.0) (2021-04-07)
|
|
22
|
+
|
|
23
|
+
[Full Changelog](https://github.com/gscho/a2-cli/compare/v0.1.1...v0.2.0)
|
|
24
|
+
|
|
25
|
+
## [v0.1.1](https://github.com/gscho/a2-cli/tree/v0.1.1) (2021-03-24)
|
|
26
|
+
|
|
27
|
+
[Full Changelog](https://github.com/gscho/a2-cli/compare/v0.1.0...v0.1.1)
|
|
28
|
+
|
|
29
|
+
## [v0.1.0](https://github.com/gscho/a2-cli/tree/v0.1.0) (2021-03-23)
|
|
30
|
+
|
|
31
|
+
[Full Changelog](https://github.com/gscho/a2-cli/compare/783f8a6384a480f7b165ef5645aa1e8e4c4dfb45...v0.1.0)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
\* *This Changelog was automatically generated by [github_changelog_generator] (https://github.com/github-changelog-generator/github-changelog-generator)*
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,23 +1,91 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
a2 (0.
|
|
4
|
+
a2 (0.3.1)
|
|
5
5
|
cmdparse
|
|
6
6
|
httparty
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: https://rubygems.org/
|
|
10
10
|
specs:
|
|
11
|
+
activesupport (6.0.3.4)
|
|
12
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
13
|
+
i18n (>= 0.7, < 2)
|
|
14
|
+
minitest (~> 5.1)
|
|
15
|
+
tzinfo (~> 1.1)
|
|
16
|
+
zeitwerk (~> 2.2, >= 2.2.2)
|
|
17
|
+
addressable (2.8.0)
|
|
18
|
+
public_suffix (>= 2.0.2, < 5.0)
|
|
19
|
+
async (1.28.9)
|
|
20
|
+
console (~> 1.10)
|
|
21
|
+
nio4r (~> 2.3)
|
|
22
|
+
timers (~> 4.1)
|
|
23
|
+
async-http (0.54.1)
|
|
24
|
+
async (~> 1.25)
|
|
25
|
+
async-io (~> 1.28)
|
|
26
|
+
async-pool (~> 0.2)
|
|
27
|
+
protocol-http (~> 0.21.0)
|
|
28
|
+
protocol-http1 (~> 0.13.0)
|
|
29
|
+
protocol-http2 (~> 0.14.0)
|
|
30
|
+
async-http-faraday (0.9.0)
|
|
31
|
+
async-http (~> 0.42)
|
|
32
|
+
faraday
|
|
33
|
+
async-io (1.30.2)
|
|
34
|
+
async (~> 1.14)
|
|
35
|
+
async-pool (0.3.5)
|
|
36
|
+
async (~> 1.25)
|
|
11
37
|
cmdparse (3.0.7)
|
|
12
|
-
|
|
13
|
-
|
|
38
|
+
concurrent-ruby (1.1.7)
|
|
39
|
+
console (1.10.2)
|
|
40
|
+
fiber-local
|
|
41
|
+
faraday (0.17.3)
|
|
42
|
+
multipart-post (>= 1.2, < 3)
|
|
43
|
+
faraday-http-cache (1.2.2)
|
|
44
|
+
faraday (~> 0.8)
|
|
45
|
+
fiber-local (1.0.0)
|
|
46
|
+
github_changelog_generator (1.16.1)
|
|
47
|
+
activesupport
|
|
48
|
+
async (>= 1.25.0)
|
|
49
|
+
async-http-faraday
|
|
50
|
+
faraday-http-cache
|
|
51
|
+
multi_json
|
|
52
|
+
octokit (~> 4.6)
|
|
53
|
+
rainbow (>= 2.2.1)
|
|
54
|
+
rake (>= 10.0)
|
|
55
|
+
retriable (~> 3.0)
|
|
56
|
+
httparty (0.21.0)
|
|
57
|
+
mini_mime (>= 1.0.0)
|
|
14
58
|
multi_xml (>= 0.5.2)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
59
|
+
i18n (1.8.5)
|
|
60
|
+
concurrent-ruby (~> 1.0)
|
|
61
|
+
mini_mime (1.1.2)
|
|
18
62
|
minitest (5.14.4)
|
|
63
|
+
multi_json (1.15.0)
|
|
19
64
|
multi_xml (0.6.0)
|
|
65
|
+
multipart-post (2.1.1)
|
|
66
|
+
nio4r (2.5.4)
|
|
67
|
+
octokit (4.18.0)
|
|
68
|
+
faraday (>= 0.9)
|
|
69
|
+
sawyer (~> 0.8.0, >= 0.5.3)
|
|
70
|
+
protocol-hpack (1.4.2)
|
|
71
|
+
protocol-http (0.21.0)
|
|
72
|
+
protocol-http1 (0.13.2)
|
|
73
|
+
protocol-http (~> 0.19)
|
|
74
|
+
protocol-http2 (0.14.2)
|
|
75
|
+
protocol-hpack (~> 1.4)
|
|
76
|
+
protocol-http (~> 0.18)
|
|
77
|
+
public_suffix (4.0.6)
|
|
78
|
+
rainbow (3.0.0)
|
|
20
79
|
rake (13.0.3)
|
|
80
|
+
retriable (3.1.2)
|
|
81
|
+
sawyer (0.8.2)
|
|
82
|
+
addressable (>= 2.3.5)
|
|
83
|
+
faraday (> 0.8, < 2.0)
|
|
84
|
+
thread_safe (0.3.6)
|
|
85
|
+
timers (4.3.3)
|
|
86
|
+
tzinfo (1.2.8)
|
|
87
|
+
thread_safe (~> 0.1)
|
|
88
|
+
zeitwerk (2.4.2)
|
|
21
89
|
|
|
22
90
|
PLATFORMS
|
|
23
91
|
ruby
|
|
@@ -26,9 +94,10 @@ PLATFORMS
|
|
|
26
94
|
|
|
27
95
|
DEPENDENCIES
|
|
28
96
|
a2!
|
|
29
|
-
bundler (~> 2.
|
|
97
|
+
bundler (~> 2.3)
|
|
98
|
+
github_changelog_generator
|
|
30
99
|
minitest (~> 5.0)
|
|
31
100
|
rake (>= 12.3.3)
|
|
32
101
|
|
|
33
102
|
BUNDLED WITH
|
|
34
|
-
2.
|
|
103
|
+
2.3.26
|
data/README.md
CHANGED
|
@@ -3,11 +3,14 @@
|
|
|
3
3
|

|
|
4
4
|
[](https://badge.fury.io/rb/a2)
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
A CLI and ruby client for interacting with Chef Automate 2+ APIs.
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
## Usage
|
|
10
10
|
|
|
11
|
+
* [CLI Usage](#using-from-the-command-line)
|
|
12
|
+
* [Client Usage](#using-as-an-api-client)
|
|
13
|
+
|
|
11
14
|
### Using from the command line
|
|
12
15
|
|
|
13
16
|
Install the CLI via rubygems:
|
|
@@ -21,7 +24,7 @@ Environment variables:
|
|
|
21
24
|
```
|
|
22
25
|
AUTOMATE_URL="https://automate.example.com"
|
|
23
26
|
AUTOMATE_TOKEN="my-token"
|
|
24
|
-
|
|
27
|
+
AUTOMATE_SSL_NO_VERIFY=true
|
|
25
28
|
```
|
|
26
29
|
|
|
27
30
|
List the available commands:
|
|
@@ -32,6 +35,7 @@ List the available commands:
|
|
|
32
35
|
Available commands:
|
|
33
36
|
compliance Compliance management commands
|
|
34
37
|
export-node-reports
|
|
38
|
+
list-reports
|
|
35
39
|
help Provide help for individual commands
|
|
36
40
|
iam Identity access management commands
|
|
37
41
|
add-membership
|
|
@@ -74,9 +78,9 @@ List the available commands:
|
|
|
74
78
|
-h, --help Show help
|
|
75
79
|
|
|
76
80
|
|
|
77
|
-
### Using as
|
|
81
|
+
### Using as an API Client
|
|
78
82
|
|
|
79
|
-
You can also use
|
|
83
|
+
You can also use the ruby API client directly by adding this line to your application's Gemfile:
|
|
80
84
|
|
|
81
85
|
```ruby
|
|
82
86
|
gem 'a2'
|
data/a2.gemspec
CHANGED
|
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
|
|
|
8
8
|
spec.version = A2::VERSION
|
|
9
9
|
spec.authors = ['gscho']
|
|
10
10
|
spec.email = ['greg.c.schofield@gmail.com']
|
|
11
|
-
spec.summary = %q{
|
|
12
|
-
spec.description = %q{
|
|
11
|
+
spec.summary = %q{A gem for interacting with the Chef Automate 2+ API}
|
|
12
|
+
spec.description = %q{A gem for interacting with the Chef Automate 2+ API}
|
|
13
13
|
spec.homepage = 'https://github.com/gscho/a2'
|
|
14
14
|
spec.license = 'MIT'
|
|
15
15
|
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
|
@@ -18,9 +18,14 @@ Gem::Specification.new do |spec|
|
|
|
18
18
|
spec.bindir = 'bin'
|
|
19
19
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
20
20
|
spec.require_paths = ['lib']
|
|
21
|
-
spec.
|
|
21
|
+
spec.metadata = {
|
|
22
|
+
"source_code_uri" => spec.homepage,
|
|
23
|
+
"changelog_uri" => "#{spec.homepage}/CHANGELOG.md"
|
|
24
|
+
}
|
|
25
|
+
spec.add_development_dependency 'bundler', '~> 2.3'
|
|
22
26
|
spec.add_development_dependency 'rake', '>= 12.3.3'
|
|
23
27
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
|
28
|
+
spec.add_development_dependency 'github_changelog_generator'
|
|
24
29
|
spec.add_dependency 'cmdparse'
|
|
25
30
|
spec.add_dependency 'httparty'
|
|
26
31
|
end
|
data/lib/a2/client/reporting.rb
CHANGED
|
@@ -2,7 +2,11 @@ module A2
|
|
|
2
2
|
class Client
|
|
3
3
|
module Reporting
|
|
4
4
|
def export_node_reports(json, output_file)
|
|
5
|
-
|
|
5
|
+
download_file '/api/v0/compliance/reporting/node/export', json, output_file
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def list_reports(json)
|
|
9
|
+
post '/api/v0/compliance/reporting/reports', json
|
|
6
10
|
end
|
|
7
11
|
end
|
|
8
12
|
end
|
data/lib/a2/client.rb
CHANGED
|
@@ -47,7 +47,7 @@ module A2
|
|
|
47
47
|
JSON.parse(response.body)
|
|
48
48
|
end
|
|
49
49
|
|
|
50
|
-
def
|
|
50
|
+
def download_file(path, json, output_file)
|
|
51
51
|
File.open(output_file, "w") do |file|
|
|
52
52
|
HTTParty.post(File.join(@automate_url, path).to_s, {
|
|
53
53
|
verify: !@ssl_no_verify,
|
data/lib/a2/mixins/approved.rb
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
module A2
|
|
2
2
|
module Approved
|
|
3
|
-
def
|
|
4
|
-
super(name, takes_commands: false)
|
|
5
|
-
@opt = {}
|
|
3
|
+
def add_approval_option!(options, opt = {})
|
|
6
4
|
options.on('-y', '--yes', 'Auto approve the deletion prompt.') do
|
|
7
|
-
|
|
5
|
+
opt[:auto_approved] = true
|
|
8
6
|
end
|
|
7
|
+
opt
|
|
9
8
|
end
|
|
10
9
|
|
|
11
|
-
def ask_for_approval(message)
|
|
10
|
+
def ask_for_approval(message = '')
|
|
12
11
|
puts "Are you sure you want to #{message}?"
|
|
13
12
|
puts "Only 'yes' will be accepted to proceed:"
|
|
14
13
|
answer = $stdin.gets.chomp
|
|
@@ -16,9 +15,10 @@ module A2
|
|
|
16
15
|
answer
|
|
17
16
|
end
|
|
18
17
|
|
|
19
|
-
def with_approval(
|
|
18
|
+
def with_approval(opts, &block)
|
|
19
|
+
opts[:auto_approved] = opts[:auto_approved] || false
|
|
20
20
|
answer = 'yes'
|
|
21
|
-
answer = ask_for_approval(message) unless
|
|
21
|
+
answer = ask_for_approval(opts[:message]) unless opts[:auto_approved]
|
|
22
22
|
block.call if answer.eql?('yes')
|
|
23
23
|
end
|
|
24
24
|
end
|
data/lib/a2/mixins/filtered.rb
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
module A2
|
|
2
2
|
class Filtered < CmdParse::Command
|
|
3
|
+
attr_reader :query_filter, :filter_key
|
|
3
4
|
def initialize(name, opts = {})
|
|
4
5
|
set_custom_opts!(opts)
|
|
5
|
-
super(name, opts)
|
|
6
|
+
super(name, takes_commands: opts[:takes_commands])
|
|
6
7
|
set_filter_optparse_options!(options, @query_filter)
|
|
7
8
|
end
|
|
8
9
|
|
|
@@ -26,10 +26,11 @@ module A2
|
|
|
26
26
|
include A2::Approved
|
|
27
27
|
def initialize
|
|
28
28
|
super('delete', takes_commands: false)
|
|
29
|
+
@opt = add_approval_option!(options)
|
|
29
30
|
end
|
|
30
31
|
|
|
31
32
|
def execute(id)
|
|
32
|
-
with_approval("delete node #{id}") do
|
|
33
|
+
with_approval(message: "delete node #{id}", auto_approved: @opt[:auto_approved]) do
|
|
33
34
|
puts JSON.pretty_generate(A2::Client.new(command_parser.data).delete_managed_node(id))
|
|
34
35
|
end
|
|
35
36
|
end
|
|
@@ -38,10 +39,11 @@ module A2
|
|
|
38
39
|
include A2::Approved
|
|
39
40
|
def initialize
|
|
40
41
|
super('bulk-delete-by-ids', takes_commands: false)
|
|
42
|
+
@opt = add_approval_option!(options)
|
|
41
43
|
end
|
|
42
44
|
|
|
43
45
|
def execute(ids)
|
|
44
|
-
with_approval("delete nodes") do
|
|
46
|
+
with_approval(message: "delete nodes", auto_approved: @opt[:auto_approved]) do
|
|
45
47
|
puts JSON.pretty_generate(A2::Client.new(command_parser.data).bulk_delete_managed_nodes_by_id(id))
|
|
46
48
|
end
|
|
47
49
|
end
|
|
@@ -50,11 +52,12 @@ module A2
|
|
|
50
52
|
include A2::Approved
|
|
51
53
|
def initialize
|
|
52
54
|
super('bulk-delete-by-filter', takes_commands: false)
|
|
55
|
+
@opt = add_approval_option!(options)
|
|
53
56
|
end
|
|
54
57
|
|
|
55
58
|
def execute
|
|
56
59
|
with_paginated_filter_json do |json|
|
|
57
|
-
with_approval("delete nodes using filter") do
|
|
60
|
+
with_approval(message: "delete nodes using filter", auto_approved: @opt[:auto_approved]) do
|
|
58
61
|
puts JSON.pretty_generate(A2::Client.new(command_parser.data).bulk_delete_managed_nodes_by_filter(json))
|
|
59
62
|
end
|
|
60
63
|
end
|
|
@@ -25,6 +25,37 @@ module A2
|
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
end
|
|
28
|
+
class ListReports < Paginated
|
|
29
|
+
def initialize
|
|
30
|
+
super('list-reports', takes_commands: false, filter_key: 'type')
|
|
31
|
+
options.on('-i', '--skip-impact IMPACT', 'Only show reports with an impact score greater than the provided value.') do |impact|
|
|
32
|
+
@opt[:impact] = impact
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def execute
|
|
37
|
+
impact = @opt.delete(:impact)
|
|
38
|
+
with_paginated_filter_json do |json|
|
|
39
|
+
reports_json = A2::Client.new(command_parser.data).list_reports(json)
|
|
40
|
+
reports_json = filter_by_min_impact(reports_json, impact) unless impact.nil?
|
|
41
|
+
|
|
42
|
+
puts JSON.pretty_generate(reports_json)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def filter_by_min_impact(report_json, impact)
|
|
47
|
+
report_json['reports'].delete_if do |report|
|
|
48
|
+
if impact == 'minor'
|
|
49
|
+
if report['controls']['failed']['major'].eql?(0) && report['controls']['failed']['critical'].eql?(0)
|
|
50
|
+
true
|
|
51
|
+
end
|
|
52
|
+
elsif impact == 'major'
|
|
53
|
+
true if report['controls']['failed']['critical'].eql?(0)
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
report_json
|
|
57
|
+
end
|
|
58
|
+
end
|
|
28
59
|
end
|
|
29
60
|
end
|
|
30
61
|
end
|
data/lib/a2/subcommands/team.rb
CHANGED
|
@@ -50,10 +50,11 @@ module A2
|
|
|
50
50
|
include A2::Approved
|
|
51
51
|
def initialize
|
|
52
52
|
super('delete-team', takes_commands: false)
|
|
53
|
+
@opt = add_approval_option!(options)
|
|
53
54
|
end
|
|
54
55
|
|
|
55
56
|
def execute(id)
|
|
56
|
-
with_approval("delete team #{id}") do
|
|
57
|
+
with_approval(message: "delete team #{id}", auto_approved: @opt[:auto_approved]) do
|
|
57
58
|
puts JSON.pretty_generate(A2::Client.new(command_parser.data).delete_team(id))
|
|
58
59
|
end
|
|
59
60
|
end
|
data/lib/a2/subcommands/user.rb
CHANGED
|
@@ -50,10 +50,11 @@ module A2
|
|
|
50
50
|
include A2::Approved
|
|
51
51
|
def initialize
|
|
52
52
|
super('delete-user', takes_commands: false)
|
|
53
|
+
@opt = add_approval_option!(options)
|
|
53
54
|
end
|
|
54
55
|
|
|
55
56
|
def execute(id)
|
|
56
|
-
with_approval("delete user #{id}") do
|
|
57
|
+
with_approval(message: "delete user #{id}", auto_approved: @opt[:auto_approved]) do
|
|
57
58
|
puts JSON.pretty_generate(A2::Client.new(command_parser.data).delete_user(id))
|
|
58
59
|
end
|
|
59
60
|
end
|
data/lib/a2/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: a2
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- gscho
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-02-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 2.
|
|
19
|
+
version: '2.3'
|
|
20
20
|
type: :development
|
|
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: 2.
|
|
26
|
+
version: '2.3'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rake
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -52,6 +52,20 @@ dependencies:
|
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '5.0'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: github_changelog_generator
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
55
69
|
- !ruby/object:Gem::Dependency
|
|
56
70
|
name: cmdparse
|
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -80,19 +94,18 @@ dependencies:
|
|
|
80
94
|
- - ">="
|
|
81
95
|
- !ruby/object:Gem::Version
|
|
82
96
|
version: '0'
|
|
83
|
-
description:
|
|
97
|
+
description: A gem for interacting with the Chef Automate 2+ API
|
|
84
98
|
email:
|
|
85
99
|
- greg.c.schofield@gmail.com
|
|
86
100
|
executables:
|
|
87
101
|
- a2
|
|
88
|
-
- console
|
|
89
|
-
- setup
|
|
90
102
|
extensions: []
|
|
91
103
|
extra_rdoc_files: []
|
|
92
104
|
files:
|
|
93
105
|
- ".github/workflows/gem-push.yml"
|
|
94
106
|
- ".github/workflows/run-rake.yml"
|
|
95
107
|
- ".gitignore"
|
|
108
|
+
- CHANGELOG.md
|
|
96
109
|
- Gemfile
|
|
97
110
|
- Gemfile.lock
|
|
98
111
|
- LICENSE.txt
|
|
@@ -100,8 +113,6 @@ files:
|
|
|
100
113
|
- Rakefile
|
|
101
114
|
- a2.gemspec
|
|
102
115
|
- bin/a2
|
|
103
|
-
- bin/console
|
|
104
|
-
- bin/setup
|
|
105
116
|
- lib/a2.rb
|
|
106
117
|
- lib/a2/client.rb
|
|
107
118
|
- lib/a2/client/config_mgmt.rb
|
|
@@ -127,8 +138,10 @@ files:
|
|
|
127
138
|
homepage: https://github.com/gscho/a2
|
|
128
139
|
licenses:
|
|
129
140
|
- MIT
|
|
130
|
-
metadata:
|
|
131
|
-
|
|
141
|
+
metadata:
|
|
142
|
+
source_code_uri: https://github.com/gscho/a2
|
|
143
|
+
changelog_uri: https://github.com/gscho/a2/CHANGELOG.md
|
|
144
|
+
post_install_message:
|
|
132
145
|
rdoc_options: []
|
|
133
146
|
require_paths:
|
|
134
147
|
- lib
|
|
@@ -143,8 +156,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
143
156
|
- !ruby/object:Gem::Version
|
|
144
157
|
version: '0'
|
|
145
158
|
requirements: []
|
|
146
|
-
rubygems_version: 3.
|
|
147
|
-
signing_key:
|
|
159
|
+
rubygems_version: 3.3.7
|
|
160
|
+
signing_key:
|
|
148
161
|
specification_version: 4
|
|
149
|
-
summary:
|
|
162
|
+
summary: A gem for interacting with the Chef Automate 2+ API
|
|
150
163
|
test_files: []
|
data/bin/console
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env ruby
|
|
2
|
-
|
|
3
|
-
require "bundler/setup"
|
|
4
|
-
require "a2"
|
|
5
|
-
|
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
|
8
|
-
|
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
10
|
-
# require "pry"
|
|
11
|
-
# Pry.start
|
|
12
|
-
|
|
13
|
-
require "irb"
|
|
14
|
-
IRB.start(__FILE__)
|