awskeyring 1.9.1 → 1.9.4
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/LICENSE.txt +1 -1
- data/README.md +1 -1
- data/awskeyring.gemspec +2 -1
- data/lib/awskeyring/credential_provider.rb +29 -0
- data/lib/awskeyring/validate.rb +7 -1
- data/lib/awskeyring/version.rb +1 -1
- data/lib/awskeyring.rb +1 -0
- data/lib/awskeyring_command.rb +6 -6
- data/man/awskeyring.5 +1 -1
- metadata +7 -7
- data/Gemfile +0 -20
- data/Rakefile +0 -63
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 31da4ef422d59adf9c5963938ad2ffeaf6ca6457b5b5f8ca2fa3857290316ed3
|
|
4
|
+
data.tar.gz: 8fd51c42d7211c456ab6300561bce071a29acdbe90dea71a2b896f631cd29f07
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7036e99a3e9ef4d171e0c71fbfd883cb9dbe3158a0f07c3457f380016503ac4e8876121ae4b82a0fd5a8f9b4c3266581041d66fd47f7a72ac3fc201a8d0d27e8
|
|
7
|
+
data.tar.gz: e5cb973a8903077a01bd83eda8ef3f0a00fc6ea7e42257cd3e71c8953258975b428020e0078a58c02672a1d92d1595dae5af5563647ca462f30c7f7c87554325
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
|
|
5
|
-
* [](https://travis-ci.com/servian/awskeyring)
|
|
5
|
+
* [](https://app.travis-ci.com/github/servian/awskeyring)
|
|
6
6
|
* [](https://badge.fury.io/rb/awskeyring)
|
|
7
7
|
* [](https://opensource.org/licenses/MIT)
|
|
8
8
|
* [](https://rubygems.org/gems/awskeyring)
|
data/awskeyring.gemspec
CHANGED
|
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
|
|
|
15
15
|
spec.homepage = Awskeyring::HOMEPAGE
|
|
16
16
|
spec.licenses = ['MIT']
|
|
17
17
|
|
|
18
|
-
spec.files =
|
|
18
|
+
spec.files = %w[awskeyring.gemspec README.md LICENSE.txt] + Dir['exe/*', 'lib/**/*.rb', 'man/*.5', 'i18n/*']
|
|
19
19
|
spec.bindir = 'exe'
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
|
21
21
|
spec.require_paths = ['lib']
|
|
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
|
|
|
26
26
|
'bug_tracker_uri' => "#{Awskeyring::HOMEPAGE}/issues",
|
|
27
27
|
'changelog_uri' => "#{Awskeyring::HOMEPAGE}/blob/main/CHANGELOG.md",
|
|
28
28
|
'documentation_uri' => "https://rubydoc.info/gems/#{spec.name}/#{Awskeyring::VERSION}",
|
|
29
|
+
'rubygems_mfa_required' => 'true',
|
|
29
30
|
'source_code_uri' => "#{Awskeyring::HOMEPAGE}/tree/v#{Awskeyring::VERSION}",
|
|
30
31
|
'wiki_uri' => "#{Awskeyring::HOMEPAGE}/wiki"
|
|
31
32
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'aws-sdk-core'
|
|
4
|
+
require 'awskeyring'
|
|
5
|
+
|
|
6
|
+
module Awskeyring
|
|
7
|
+
# Provide a credential provider for use as a library, eg.
|
|
8
|
+
# require 'awskeyring/credential_provider'
|
|
9
|
+
# client = Aws::STS::Client.new(
|
|
10
|
+
# credentials: Awskeyring::CredentialProvider.new("company-acc")
|
|
11
|
+
# )
|
|
12
|
+
class CredentialProvider
|
|
13
|
+
include Aws::CredentialProvider
|
|
14
|
+
|
|
15
|
+
attr_accessor :account
|
|
16
|
+
|
|
17
|
+
def initialize(account)
|
|
18
|
+
@account = account
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# returns a new Aws::Credentials object
|
|
22
|
+
def credentials
|
|
23
|
+
cred = Awskeyring.get_valid_creds(account: account)
|
|
24
|
+
Aws::Credentials.new(cred[:key],
|
|
25
|
+
cred[:secret],
|
|
26
|
+
cred[:token])
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
data/lib/awskeyring/validate.rb
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'base64'
|
|
4
|
+
|
|
3
5
|
# Awskeyring Module,
|
|
4
6
|
# gives you an interface to access keychains and items.
|
|
5
7
|
module Awskeyring
|
|
@@ -27,7 +29,11 @@ module Awskeyring
|
|
|
27
29
|
#
|
|
28
30
|
# @param [String] aws_secret_access_key The aws_secret_access_key
|
|
29
31
|
def self.secret_access_key(aws_secret_access_key)
|
|
30
|
-
|
|
32
|
+
begin
|
|
33
|
+
raise 'Invalid Secret Access Key' unless Base64.strict_decode64(aws_secret_access_key).length == 30
|
|
34
|
+
rescue ArgumentError
|
|
35
|
+
raise 'Invalid Secret Access Key'
|
|
36
|
+
end
|
|
31
37
|
|
|
32
38
|
aws_secret_access_key
|
|
33
39
|
end
|
data/lib/awskeyring/version.rb
CHANGED
data/lib/awskeyring.rb
CHANGED
data/lib/awskeyring_command.rb
CHANGED
|
@@ -133,7 +133,7 @@ class AwskeyringCommand < Thor # rubocop:disable Metrics/ClassLength
|
|
|
133
133
|
key: cred[:key],
|
|
134
134
|
secret: cred[:secret],
|
|
135
135
|
token: cred[:token],
|
|
136
|
-
expiry: (expiry || Time.new + Awskeyring::Awsapi::ONE_HOUR).iso8601
|
|
136
|
+
expiry: (expiry || (Time.new + Awskeyring::Awsapi::ONE_HOUR)).iso8601
|
|
137
137
|
)
|
|
138
138
|
end
|
|
139
139
|
|
|
@@ -372,7 +372,7 @@ class AwskeyringCommand < Thor # rubocop:disable Metrics/ClassLength
|
|
|
372
372
|
mfa: item_hash[:mfa],
|
|
373
373
|
key: item_hash[:key],
|
|
374
374
|
secret: item_hash[:secret],
|
|
375
|
-
user: ENV
|
|
375
|
+
user: ENV.fetch('USER', 'awskeyring')
|
|
376
376
|
)
|
|
377
377
|
Awskeyring.delete_token(account: account, message: '# Removing STS credentials')
|
|
378
378
|
rescue Aws::Errors::ServiceError => e
|
|
@@ -415,7 +415,7 @@ class AwskeyringCommand < Thor # rubocop:disable Metrics/ClassLength
|
|
|
415
415
|
secret: cred[:secret],
|
|
416
416
|
token: cred[:token],
|
|
417
417
|
path: path,
|
|
418
|
-
user: ENV
|
|
418
|
+
user: ENV.fetch('USER', 'awskeyring')
|
|
419
419
|
)
|
|
420
420
|
rescue Aws::Errors::ServiceError => e
|
|
421
421
|
warn e.to_s
|
|
@@ -436,8 +436,8 @@ class AwskeyringCommand < Thor # rubocop:disable Metrics/ClassLength
|
|
|
436
436
|
# autocomplete
|
|
437
437
|
def autocomplete(curr, prev = nil)
|
|
438
438
|
curr, prev = fix_args(curr, prev)
|
|
439
|
-
comp_line = ENV
|
|
440
|
-
comp_point_str = ENV
|
|
439
|
+
comp_line = ENV.fetch('COMP_LINE', nil)
|
|
440
|
+
comp_point_str = ENV.fetch('COMP_POINT', nil)
|
|
441
441
|
unless comp_line && comp_point_str
|
|
442
442
|
exec_name = File.basename($PROGRAM_NAME)
|
|
443
443
|
warn I18n.t('message.awskeyring', path: $PROGRAM_NAME, bin: exec_name)
|
|
@@ -609,7 +609,7 @@ class AwskeyringCommand < Thor # rubocop:disable Metrics/ClassLength
|
|
|
609
609
|
bundled_env = to_delete.map { |elem| elem[('BUNDLER_ORIG_'.length)..] }
|
|
610
610
|
to_delete << 'BUNDLE_GEMFILE'
|
|
611
611
|
bundled_env.each do |env_name|
|
|
612
|
-
ENV[env_name] = ENV
|
|
612
|
+
ENV[env_name] = ENV.fetch("BUNDLER_ORIG_#{env_name}", nil)
|
|
613
613
|
to_delete << env_name if ENV["BUNDLER_ORIG_#{env_name}"].start_with? 'BUNDLER_'
|
|
614
614
|
end
|
|
615
615
|
to_delete.each do |env_name|
|
data/man/awskeyring.5
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
|
3
3
|
.
|
|
4
|
-
.TH "AWSKEYRING" "5" "
|
|
4
|
+
.TH "AWSKEYRING" "5" "April 2022" "" ""
|
|
5
5
|
.
|
|
6
6
|
.SH "NAME"
|
|
7
7
|
\fBAwskeyring\fR \- is a small tool to manage AWS account keys in the macOS Keychain
|
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.9.
|
|
4
|
+
version: 1.9.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tristan Morgan
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-04-22 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: aws-sdk-iam
|
|
@@ -73,15 +73,14 @@ executables:
|
|
|
73
73
|
extensions: []
|
|
74
74
|
extra_rdoc_files: []
|
|
75
75
|
files:
|
|
76
|
-
- Gemfile
|
|
77
76
|
- LICENSE.txt
|
|
78
77
|
- README.md
|
|
79
|
-
- Rakefile
|
|
80
78
|
- awskeyring.gemspec
|
|
81
79
|
- exe/awskeyring
|
|
82
80
|
- i18n/en.yml
|
|
83
81
|
- lib/awskeyring.rb
|
|
84
82
|
- lib/awskeyring/awsapi.rb
|
|
83
|
+
- lib/awskeyring/credential_provider.rb
|
|
85
84
|
- lib/awskeyring/input.rb
|
|
86
85
|
- lib/awskeyring/validate.rb
|
|
87
86
|
- lib/awskeyring/version.rb
|
|
@@ -93,8 +92,9 @@ licenses:
|
|
|
93
92
|
metadata:
|
|
94
93
|
bug_tracker_uri: https://github.com/servian/awskeyring/issues
|
|
95
94
|
changelog_uri: https://github.com/servian/awskeyring/blob/main/CHANGELOG.md
|
|
96
|
-
documentation_uri: https://rubydoc.info/gems/awskeyring/1.9.
|
|
97
|
-
|
|
95
|
+
documentation_uri: https://rubydoc.info/gems/awskeyring/1.9.4
|
|
96
|
+
rubygems_mfa_required: 'true'
|
|
97
|
+
source_code_uri: https://github.com/servian/awskeyring/tree/v1.9.4
|
|
98
98
|
wiki_uri: https://github.com/servian/awskeyring/wiki
|
|
99
99
|
post_install_message:
|
|
100
100
|
rdoc_options: []
|
|
@@ -111,7 +111,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
111
111
|
- !ruby/object:Gem::Version
|
|
112
112
|
version: '0'
|
|
113
113
|
requirements: []
|
|
114
|
-
rubygems_version: 3.0.3
|
|
114
|
+
rubygems_version: 3.0.3.1
|
|
115
115
|
signing_key:
|
|
116
116
|
specification_version: 4
|
|
117
117
|
summary: Manages AWS credentials in the macOS keychain
|
data/Gemfile
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
source 'https://rubygems.org'
|
|
4
|
-
|
|
5
|
-
# Specify your gem's dependencies in awskeyring.gemspec
|
|
6
|
-
gemspec
|
|
7
|
-
|
|
8
|
-
group :development do
|
|
9
|
-
gem 'github_changelog_generator'
|
|
10
|
-
gem 'rake'
|
|
11
|
-
gem 'ronn'
|
|
12
|
-
gem 'rspec'
|
|
13
|
-
gem 'rubocop'
|
|
14
|
-
gem 'rubocop-performance'
|
|
15
|
-
gem 'rubocop-rake'
|
|
16
|
-
gem 'rubocop-rspec'
|
|
17
|
-
gem 'rubocop-rubycw'
|
|
18
|
-
gem 'simplecov'
|
|
19
|
-
gem 'yard'
|
|
20
|
-
end
|
data/Rakefile
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'bundler/gem_tasks'
|
|
4
|
-
require 'rubocop/rake_task'
|
|
5
|
-
require 'ronn'
|
|
6
|
-
require 'github_changelog_generator/task'
|
|
7
|
-
require 'yard'
|
|
8
|
-
|
|
9
|
-
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
|
|
10
|
-
config.user = 'servian'
|
|
11
|
-
config.project = 'awskeyring'
|
|
12
|
-
config.future_release = "v#{Awskeyring::VERSION}"
|
|
13
|
-
config.since_tag = 'v0.10.0'
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
RuboCop::RakeTask.new do |rubocop|
|
|
17
|
-
rubocop.options = %w[-D --enable-pending-cops]
|
|
18
|
-
rubocop.requires << 'rubocop-performance'
|
|
19
|
-
rubocop.requires << 'rubocop-rake'
|
|
20
|
-
rubocop.requires << 'rubocop-rspec'
|
|
21
|
-
rubocop.requires << 'rubocop-rubycw'
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
desc 'Run RSpec code examples'
|
|
25
|
-
task :spec do
|
|
26
|
-
puts 'Running RSpec...'
|
|
27
|
-
require 'rspec/core'
|
|
28
|
-
runner = RSpec::Core::Runner
|
|
29
|
-
xcode = runner.run(%w[--pattern spec/**{,/*/**}/*_spec.rb --order rand --format documentation --color])
|
|
30
|
-
abort 'RSpec failed' if xcode.positive?
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
desc 'Check filemode bits'
|
|
34
|
-
task :filemode do
|
|
35
|
-
puts 'Running FileMode...'
|
|
36
|
-
files = Set.new(`git ls-files -z`.split("\x0"))
|
|
37
|
-
dirs = Set.new(files.map { |file| File.dirname(file) })
|
|
38
|
-
failure = []
|
|
39
|
-
files.merge(dirs).each do |file|
|
|
40
|
-
mode = File.stat(file).mode
|
|
41
|
-
print '.'
|
|
42
|
-
failure << file if (mode & 0x7) != (mode >> 3 & 0x7)
|
|
43
|
-
end
|
|
44
|
-
abort "\nError: Incorrect file mode found\n#{failure.join("\n")}" unless failure.empty?
|
|
45
|
-
print "\n"
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
desc 'generate manpage'
|
|
49
|
-
task :ronn do
|
|
50
|
-
puts 'Running Ronn...'
|
|
51
|
-
doc = Ronn::Document.new('man/awskeyring.5.ronn')
|
|
52
|
-
doc.date = Time.parse(`git show -s --format=%ad --date=short`)
|
|
53
|
-
File.write('man/awskeyring.5', doc.to_roff)
|
|
54
|
-
puts "done\n\n"
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
YARD::Rake::YardocTask.new do |t|
|
|
58
|
-
t.options = ['--fail-on-warning', '--no-progress', '--files', '*.md']
|
|
59
|
-
t.stats_options = ['--list-undoc']
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
desc 'Run Linting, Tests and Documetation tasks'
|
|
63
|
-
task default: %i[filemode rubocop spec ronn yard]
|