awskeyring 1.5.0 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/Gemfile +1 -0
- data/SECURITY.md +4 -0
- data/awskeyring.gemspec +2 -0
- data/i18n/en.yml +2 -0
- data/lib/awskeyring.rb +5 -5
- data/lib/awskeyring/awsapi.rb +3 -3
- data/lib/awskeyring/version.rb +1 -1
- data/lib/awskeyring_command.rb +15 -7
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c8bf8ca4f1b8acb13b25ac0c3a362afcf390e5e8e8d5f1e42b1c4c68748f0149
|
4
|
+
data.tar.gz: 3693e3e8d7a9fa30ab1430cea360cd32c85c98a22a9ae68a725f236c335afe2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c786f1bf73ccbe18f3c259824dfbc60bcbcf70e611916b70b8349fd9a40350f045b7e5b8e676e71bbf7bb0feadba76f54da28816cf18c32dd7a2d7acdc1d3e0
|
7
|
+
data.tar.gz: 5a03251d5b09208802a0790b2d52dcfa3a581394e3cd041e79cf69fa39fbd298ec8e76ae47b237342f360402d85ea5b6512f7eea89163157dcff5fd7bbd946a5
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## [v1.6.0](https://github.com/servian/awskeyring/tree/v1.6.0) (2020-08-11)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/servian/awskeyring/compare/v1.5.0...v1.6.0)
|
6
|
+
|
7
|
+
**Implemented enhancements:**
|
8
|
+
|
9
|
+
- Warn about missing accounts/roles [\#69](https://github.com/servian/awskeyring/pull/69) ([tristanmorgan](https://github.com/tristanmorgan))
|
10
|
+
- RuboCop and Spec update [\#68](https://github.com/servian/awskeyring/pull/68) ([tristanmorgan](https://github.com/tristanmorgan))
|
11
|
+
- Add SimpleCov reports. [\#67](https://github.com/servian/awskeyring/pull/67) ([tristanmorgan](https://github.com/tristanmorgan))
|
12
|
+
|
3
13
|
## [v1.5.0](https://github.com/servian/awskeyring/tree/v1.5.0) (2020-07-08)
|
4
14
|
|
5
15
|
[Full Changelog](https://github.com/servian/awskeyring/compare/v1.4.0...v1.5.0)
|
data/Gemfile
CHANGED
data/SECURITY.md
ADDED
data/awskeyring.gemspec
CHANGED
@@ -20,6 +20,8 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ['lib']
|
22
22
|
|
23
|
+
spec.required_ruby_version = '>= 2.6.0'
|
24
|
+
|
23
25
|
spec.metadata = {
|
24
26
|
'bug_tracker_uri' => "#{Awskeyring::HOMEPAGE}/issues",
|
25
27
|
'changelog_uri' => "#{Awskeyring::HOMEPAGE}/blob/master/CHANGELOG.md",
|
data/i18n/en.yml
CHANGED
@@ -75,6 +75,8 @@ en:
|
|
75
75
|
delexpired: '# Removing expired session credentials'
|
76
76
|
exec: '# COMMAND not provided'
|
77
77
|
missing: '# Config missing, run `%{bin} initialise` to recreate.'
|
78
|
+
missing_account: '# No accounts added, run `%{bin} add` to add.'
|
79
|
+
missing_role: '# No roles added, run `%{bin} add-role` to add.'
|
78
80
|
rotate: '# You have two access keys for account %{account}'
|
79
81
|
temporary: '# Using temporary session credentials.'
|
80
82
|
timeout: '# It is STRONGLY recommended to set your keychain to lock in 5 minutes or less.'
|
data/lib/awskeyring.rb
CHANGED
@@ -174,26 +174,26 @@ module Awskeyring # rubocop:disable Metrics/ModuleLength
|
|
174
174
|
|
175
175
|
# Return a list account item names
|
176
176
|
def self.list_account_names
|
177
|
-
items = list_items.map { |elem| elem.attributes[:label][(ACCOUNT_PREFIX.length)
|
177
|
+
items = list_items.map { |elem| elem.attributes[:label][(ACCOUNT_PREFIX.length)..] }
|
178
178
|
|
179
|
-
tokens = list_tokens.map { |elem| elem.attributes[:label][(SESSION_KEY_PREFIX.length)
|
179
|
+
tokens = list_tokens.map { |elem| elem.attributes[:label][(SESSION_KEY_PREFIX.length)..] }
|
180
180
|
|
181
181
|
(items + tokens).uniq.sort
|
182
182
|
end
|
183
183
|
|
184
184
|
# Return a list role item names
|
185
185
|
def self.list_role_names
|
186
|
-
list_roles.map { |elem| elem.attributes[:label][(ROLE_PREFIX.length)
|
186
|
+
list_roles.map { |elem| elem.attributes[:label][(ROLE_PREFIX.length)..] }.sort
|
187
187
|
end
|
188
188
|
|
189
189
|
# Return a list token item names
|
190
190
|
def self.list_token_names
|
191
|
-
list_tokens.map { |elem| elem.attributes[:label][(SESSION_KEY_PREFIX.length)
|
191
|
+
list_tokens.map { |elem| elem.attributes[:label][(SESSION_KEY_PREFIX.length)..] }.sort
|
192
192
|
end
|
193
193
|
|
194
194
|
# Return a list role item names and arns
|
195
195
|
def self.list_role_names_plus
|
196
|
-
list_roles.map { |elem| "#{elem.attributes[:label][(ROLE_PREFIX.length)
|
196
|
+
list_roles.map { |elem| "#{elem.attributes[:label][(ROLE_PREFIX.length)..]}\t#{elem.attributes[:account]}" }
|
197
197
|
end
|
198
198
|
|
199
199
|
# Return a list of console paths
|
data/lib/awskeyring/awsapi.rb
CHANGED
@@ -198,9 +198,9 @@ module Awskeyring
|
|
198
198
|
sessionToken: token
|
199
199
|
}.to_json
|
200
200
|
|
201
|
-
destination_param =
|
201
|
+
destination_param = "&Destination=#{CGI.escape(console_url)}"
|
202
202
|
|
203
|
-
AWS_SIGNIN_URL
|
203
|
+
"#{AWS_SIGNIN_URL}?Action=login#{token_param(session_json: session_json)}#{destination_param}"
|
204
204
|
end
|
205
205
|
|
206
206
|
# Get the signin token param
|
@@ -214,7 +214,7 @@ module Awskeyring
|
|
214
214
|
returned_content = request.get(uri).body
|
215
215
|
|
216
216
|
signin_token = JSON.parse(returned_content)['SigninToken']
|
217
|
-
|
217
|
+
"&SigninToken=#{CGI.escape(signin_token)}"
|
218
218
|
end
|
219
219
|
|
220
220
|
# Get the current region
|
data/lib/awskeyring/version.rb
CHANGED
data/lib/awskeyring_command.rb
CHANGED
@@ -72,6 +72,10 @@ class AwskeyringCommand < Thor # rubocop:disable Metrics/ClassLength
|
|
72
72
|
desc 'list', I18n.t('list.desc')
|
73
73
|
# list the accounts
|
74
74
|
def list
|
75
|
+
if Awskeyring.list_account_names.empty?
|
76
|
+
warn I18n.t('message.missing_account', bin: File.basename($PROGRAM_NAME))
|
77
|
+
exit 1
|
78
|
+
end
|
75
79
|
puts Awskeyring.list_account_names.join("\n")
|
76
80
|
end
|
77
81
|
|
@@ -80,6 +84,10 @@ class AwskeyringCommand < Thor # rubocop:disable Metrics/ClassLength
|
|
80
84
|
method_option 'detail', type: :boolean, aliases: '-d', desc: I18n.t('method_option.detail'), default: false
|
81
85
|
# List roles
|
82
86
|
def list_role
|
87
|
+
if Awskeyring.list_role_names.empty?
|
88
|
+
warn I18n.t('message.missing_role', bin: File.basename($PROGRAM_NAME))
|
89
|
+
exit 1
|
90
|
+
end
|
83
91
|
if options['detail']
|
84
92
|
puts Awskeyring.list_role_names_plus.join("\n")
|
85
93
|
else
|
@@ -539,23 +547,23 @@ class AwskeyringCommand < Thor # rubocop:disable Metrics/ClassLength
|
|
539
547
|
|
540
548
|
def ask(message:, secure: false, optional: false, limited_to: nil)
|
541
549
|
if secure
|
542
|
-
Awskeyring::Input.read_secret(message.rjust(20)
|
550
|
+
Awskeyring::Input.read_secret("#{message.rjust(20)}: ")
|
543
551
|
elsif optional
|
544
|
-
Thor::LineEditor.readline(
|
552
|
+
Thor::LineEditor.readline("#{"#{message} (optional)".rjust(20)}: ")
|
545
553
|
elsif limited_to
|
546
|
-
Thor::LineEditor.readline(message.rjust(20)
|
554
|
+
Thor::LineEditor.readline("#{message.rjust(20)}: ", limited_to: limited_to)
|
547
555
|
else
|
548
|
-
Thor::LineEditor.readline(message.rjust(20)
|
556
|
+
Thor::LineEditor.readline("#{message.rjust(20)}: ")
|
549
557
|
end
|
550
558
|
end
|
551
559
|
|
552
560
|
def unbundle
|
553
561
|
to_delete = ENV.keys.select { |elem| elem.start_with?('BUNDLER_ORIG_') }
|
554
|
-
bundled_env = to_delete.map { |elem| elem[('BUNDLER_ORIG_'.length)
|
562
|
+
bundled_env = to_delete.map { |elem| elem[('BUNDLER_ORIG_'.length)..] }
|
555
563
|
to_delete << 'BUNDLE_GEMFILE'
|
556
564
|
bundled_env.each do |env_name|
|
557
|
-
ENV[env_name] = ENV[
|
558
|
-
to_delete << env_name if ENV[
|
565
|
+
ENV[env_name] = ENV["BUNDLER_ORIG_#{env_name}"]
|
566
|
+
to_delete << env_name if ENV["BUNDLER_ORIG_#{env_name}"].start_with? 'BUNDLER_'
|
559
567
|
end
|
560
568
|
to_delete.each do |env_name|
|
561
569
|
ENV.delete(env_name)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awskeyring
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tristan Morgan
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-iam
|
@@ -80,6 +80,7 @@ files:
|
|
80
80
|
- LICENSE.txt
|
81
81
|
- README.md
|
82
82
|
- Rakefile
|
83
|
+
- SECURITY.md
|
83
84
|
- awskeyring.gemspec
|
84
85
|
- exe/awskeyring
|
85
86
|
- i18n/en.yml
|
@@ -97,8 +98,8 @@ licenses:
|
|
97
98
|
metadata:
|
98
99
|
bug_tracker_uri: https://github.com/servian/awskeyring/issues
|
99
100
|
changelog_uri: https://github.com/servian/awskeyring/blob/master/CHANGELOG.md
|
100
|
-
documentation_uri: https://rubydoc.info/gems/awskeyring/1.
|
101
|
-
source_code_uri: https://github.com/servian/awskeyring/tree/v1.
|
101
|
+
documentation_uri: https://rubydoc.info/gems/awskeyring/1.6.0
|
102
|
+
source_code_uri: https://github.com/servian/awskeyring/tree/v1.6.0
|
102
103
|
wiki_uri: https://github.com/servian/awskeyring/wiki
|
103
104
|
post_install_message:
|
104
105
|
rdoc_options: []
|
@@ -108,7 +109,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
108
109
|
requirements:
|
109
110
|
- - ">="
|
110
111
|
- !ruby/object:Gem::Version
|
111
|
-
version:
|
112
|
+
version: 2.6.0
|
112
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
114
|
requirements:
|
114
115
|
- - ">="
|