aws_assume_role 1.0.6 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 66b6fbba784521cbce5a73e1b7c7483eed5936ffe5604d6e49bc847c1b720b09
4
- data.tar.gz: 622cbd5da5bc1e95f0903d5d6d7aa8d81f65af395bab935b7157612258060e31
3
+ metadata.gz: 5a75991b1e4c430bf00dedb8d69c35ea109cf0a1e073c1b64036299ec0d7f31f
4
+ data.tar.gz: 268a92df933a848bc8a278eeb3b43026265fae73d87b4ecaf4e6ecd12e91802b
5
5
  SHA512:
6
- metadata.gz: 6e3b6175c9a26a52f0def3b4f0b988941427da3c6462bc9c2a07f39ff028be3a83763ead53e79064d63877e471096eeddbc4205b5f672828cdccabe112579b70
7
- data.tar.gz: 9c799754c7634cd8c36b78d4203c18609f5d0b02e49d7386e27f54913144739f9f1417e4d73ff90ba6a66989568712a712415588fd3b77a47b15666b4ae6b861
6
+ metadata.gz: e5b7ce3973c19c81f30577eddfbbc1065eea4d793d93bffbbc5dc88862961d4be1d47eda783699daefcaf648407c8b468d8b51989bcc908057c68180375792e2
7
+ data.tar.gz: 2b3311eb773c464bea0ad25dd19e6eaa2483c3ceac8a16ef1fd9257e4a53bce97fde3602d0f7b510f33d1f71a8ab5e247d24252d4048e071ba1b910b009f2e79
data/.travis.yml CHANGED
@@ -1,17 +1,20 @@
1
1
  language: ruby
2
- rvm:
3
- - 2.2
4
- - 2.3.0
5
2
  sudo: false
6
3
  script: bundle exec rake
7
- deploy:
8
- provider: rubygems
9
- api_key:
10
- secure: H6MYP5cWFC0BtqrxW6ahc1RFxywtyKRFjGlSpyoBM+AH2y8U194toWQdGyO/QMRQVr7vAZf+MdxYTutDvnBEkwQbof6QBJ1+4GFWSqFgYAVEV5Ddva0ea5dVE8xC3rMRvd+i5KTzwuVNX/+Cux49v2wGRWZLKOmBSWbujsL8SbpdKaPi+qsClkdz3YTrHpGEEWTPNBNTwDMlg+qAX3UkqoAxD5ebrUaFPdJR83yMSGUPfTm/urlKvkx85MONuj7lPL1CyoYJCvy31bE6CWGq2L/+2Fnk8RvNMCaDffY+8YjKhWduBLrGuUYWf+ZcERxW6AxDy6BFIkekpFwpeaDmrdfSTK0aELSZogGqs9VHs9O1pTApdS/NRYDzxC9hmlvub80xC2uI1Vnhn04Z95Gh9KYh0H20UnlBJJ7ewvFPHzQ3zK8Z2O3kJOeZo0rX2d3yGOydyHlf1dX/auGnn8QVcr7w1jERQDLi5ZEAR+EGnYROvfGKjfP9rgaLoouTbEGXx7KV9QQjLUsmQ0q2yu+HoVlQaDtv7VEQTtFnvdmiVGYbWj+DhaquvTmHyiizO7hFOfvVYYFyOM2iFoRCY+dT3kapqc0DM94BUjxV3tMZX6MYNYfwnNwhNNpTXLVvVXP9cShL+ogwY/E0C2Fg2CYdY5/Ioe6hUbAiPx79dwzVfic=
11
- gem: aws_assume_role
12
- on:
13
- tags: true
14
- repo: scalefactory/aws-assume-role
4
+ jobs:
5
+ include:
6
+ - stage: test
7
+ rvm: 2.2
8
+ script: bundle exec rake
9
+ - rvm: 2.3
10
+ script: bundle exec rake
11
+ - stage: deploy
12
+ rvm: 2.3
13
+ script: bundle exec rake setup_credentials && chmod 0600 /home/travis/.gem/credentials && bundle exec rake publish
14
+ stages:
15
+ - name: test
16
+ - name: deploy
17
+ if: tag =~ ^v
15
18
  notifications:
16
19
  slack:
17
20
  secure: RmJmJSSDI8qdIpM2KKYoXX2mpcL85YZ9r9gF4rauZH9TuqnYOPP3kQ5iYJsE0VUTuZpuvQ8Axoux5IQr+IDK7kMrmrI0iaZp1dAR9tGK+aLF73sprOmQEou6HIoDs97UQhOWlsAUR8max/7WYdJYJ1o78dqavfFtOy0VcHCkUMRf+WxcKzz+8MunsocIYi0HXuz5vC3RAZCOaK2h8epXzmnWq0ke8YeTmddpDWC85wzeDNjA9T1j5WD+y6gC9F0vyaqVqDCsCXlbRKZl7a1TU9QGDVyBzowoGsWmTpFR80v4CKofAn6nnMRqblwATOS1jMT+HC+Yku29qFzXPugYa2KAUSQaYQiOe+TE5IDa2Exe/57ZQCOq4ve8gKSE9aQXh4Riq3u8qccM+UeoQdcwgXQIciTeWjqi4LQro6Dbyrv8XrUbxdG0VPsWmf49jbWgq6PPAJqdcbXr9eGb+81uJ2REa1vhDYZu4T3JHv4erd5QlyYWzeBJ/LMQav/C5mnMF43jg8DzZ2g0BZBao/reO9xcZre/ka8eOus9Ll1i+8PCxmFZMx2KDPC9i5R7bXL/CwPBjzFInmvHM0cgKjxrRSY6xMWSPyBbgdsKJl2qag74K5xG+2VPlMcVx0ikTKVjsja5iPlOYKhflGAfCKvpzPcd2QoEWg8jZYqZtO9Nj+M=
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
+ ## 1.1.1
2
+ * Allow aws-assume-role to retrieve all Yubikey stored OATH tokens (@alanthing)
3
+
4
+ ## 1.1.0
5
+ * Publish separate gems for Linux, BSD and MacOS (@randomvariable)
6
+
1
7
  ## 1.0.6
2
8
  * Determine gem dependencies for OS X & Linux at install time (@randomvariable)
9
+
3
10
  ## 1.0.5
4
11
  * Escape run commands properly (@mrprimate)
5
12
 
data/Rakefile CHANGED
@@ -1,6 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require "aws_assume_role/version"
3
4
  require "bundler/gem_tasks"
5
+ require "yaml"
6
+
4
7
  task default: :test
5
8
 
6
9
  begin
@@ -15,7 +18,48 @@ begin
15
18
  rescue LoadError # rubocop:disable Lint/HandleExceptions
16
19
  end
17
20
 
18
- task :test => %i[no_pry rubocop spec] # rubocop:disable Style/HashSyntax
21
+ task test: %i[no_pry rubocop spec]
22
+
23
+ DISTRIBUTIONS = [
24
+ "universal-linux",
25
+ "universal-freebsd",
26
+ "universal-darwin",
27
+ "universal-openbsd",
28
+ ].freeze
29
+
30
+ CREDENTIALS = {
31
+ rubygems_api_key: ENV.fetch("API_KEY", "null"),
32
+ }.freeze
33
+
34
+ task :setup_credentials do
35
+ FileUtils.mkdir_p(File.expand_path("~/.gem"))
36
+ File.write(File.expand_path("~/.gem/credentials"), CREDENTIALS.to_yaml)
37
+ end
38
+
39
+ task publish: %i[build build_generic] do
40
+ Dir.glob("#{File.dirname(__FILE__)}/pkg/*.gem") do |g|
41
+ sh "gem push #{g}"
42
+ end
43
+ end
44
+
45
+ namespace :build_arch do
46
+ DISTRIBUTIONS.each do |arch|
47
+ desc "build binary gem for #{arch}"
48
+ task arch do
49
+ sh "cd #{File.dirname(__FILE__)} && PLATFORM=#{arch} gem build aws_assume_role.gemspec"
50
+ FileUtils.mkdir_p(File.join(File.dirname(__FILE__), "pkg"))
51
+ sh "cd #{File.dirname(__FILE__)} && mv *.gem pkg/"
52
+ end
53
+ end
54
+ end
55
+
56
+ task build: DISTRIBUTIONS.map { |d| "build_arch:#{d}" }
57
+
58
+ task :build_generic do
59
+ sh "cd #{File.dirname(__FILE__)} && GENERIC_GEM=true gem build aws_assume_role.gemspec"
60
+ FileUtils.mkdir_p(File.join(File.dirname(__FILE__), "pkg"))
61
+ sh "cd #{File.dirname(__FILE__)} && mv *.gem pkg/"
62
+ end
19
63
 
20
64
  task :no_pry do
21
65
  files = Dir.glob("**/**").reject { |x| x.match(/^spec|Gemfile|coverage|\.gemspec$|Rakefile/) || File.directory?(x) }
@@ -2,6 +2,9 @@
2
2
 
3
3
  $LOAD_PATH << File.expand_path("../lib", __FILE__)
4
4
  require "aws_assume_role/version"
5
+
6
+ PLATFORM = ENV.fetch("PLATFORM", Gem::Platform.local.os)
7
+
5
8
  Gem::Specification.new do |spec|
6
9
  spec.name = "aws_assume_role"
7
10
  spec.version = AwsAssumeRole::VERSION
@@ -21,9 +24,8 @@ Gem::Specification.new do |spec|
21
24
  }
22
25
  spec.bindir = "bin"
23
26
  spec.executables = spec.files.grep(%r{^bin/aws}) { |f| File.basename(f) }
24
- spec.extensions = "ext/mkrf_conf.rb"
25
27
  spec.require_paths = ["lib"]
26
-
28
+ spec.platform = PLATFORM unless ENV.fetch("GENERIC_GEM", false)
27
29
  spec.add_runtime_dependency "activesupport", "~> 4.2"
28
30
  spec.add_runtime_dependency "aws-sdk", "~> 2.7"
29
31
  spec.add_runtime_dependency "dry-configurable", "~> 0.5"
@@ -44,4 +46,11 @@ Gem::Specification.new do |spec|
44
46
  spec.add_development_dependency "yard", "~> 0.9"
45
47
  spec.add_development_dependency "simplecov", "~> 0.13"
46
48
  spec.add_development_dependency "webmock", "~> 2.3"
49
+
50
+ case PLATFORM
51
+ when /linux|bsd/
52
+ spec.add_dependency "gir_ffi-gnome_keyring", "~> 0.0", ">= 0.0.3"
53
+ when /darwin/
54
+ spec.add_dependency "ruby-keychain", "~> 0.3", ">= 0.3.2"
55
+ end
47
56
  end
@@ -67,8 +67,7 @@ class AwsAssumeRole::Credentials::Providers::MfaSessionCredentials < Dry::Struct
67
67
  raise "Yubikey not found" unless context.readers.length == 1
68
68
  reader_name = context.readers.first
69
69
  card = Smartcard::PCSC::Card.new(context, reader_name, :shared)
70
- codes = YubiOATH.new(card).calculate_all(timestamp: Time.now)
71
- codes.fetch(BinData::String.new(@yubikey_oath_name))
70
+ YubiOATH.new(card).calculate(name: @yubikey_oath_name, timestamp: Time.now)
72
71
  end
73
72
 
74
73
  def refresh_using_mfa
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AwsAssumeRole
4
- VERSION = "1.0.6".freeze
4
+ VERSION = "1.1.1".freeze
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws_assume_role
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Topper
@@ -14,7 +14,7 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2018-01-02 00:00:00.000000000 Z
17
+ date: 2018-02-01 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
20
  name: activesupport
@@ -308,6 +308,26 @@ dependencies:
308
308
  - - "~>"
309
309
  - !ruby/object:Gem::Version
310
310
  version: '2.3'
311
+ - !ruby/object:Gem::Dependency
312
+ name: gir_ffi-gnome_keyring
313
+ requirement: !ruby/object:Gem::Requirement
314
+ requirements:
315
+ - - "~>"
316
+ - !ruby/object:Gem::Version
317
+ version: '0.0'
318
+ - - ">="
319
+ - !ruby/object:Gem::Version
320
+ version: 0.0.3
321
+ type: :runtime
322
+ prerelease: false
323
+ version_requirements: !ruby/object:Gem::Requirement
324
+ requirements:
325
+ - - "~>"
326
+ - !ruby/object:Gem::Version
327
+ version: '0.0'
328
+ - - ">="
329
+ - !ruby/object:Gem::Version
330
+ version: 0.0.3
311
331
  description: Used to fetch multiple AWS Role Credential Keys using different Session
312
332
  Keys and store them securely using Gnome Keyring or OSX keychain
313
333
  email:
@@ -317,8 +337,7 @@ email:
317
337
  - tim@scalefactory.com
318
338
  executables:
319
339
  - aws-assume-role
320
- extensions:
321
- - ext/mkrf_conf.rb
340
+ extensions: []
322
341
  extra_rdoc_files: []
323
342
  files:
324
343
  - ".gitignore"
@@ -333,7 +352,6 @@ files:
333
352
  - Rakefile
334
353
  - aws_assume_role.gemspec
335
354
  - bin/aws-assume-role
336
- - ext/mkrf_conf.rb
337
355
  - i18n/en.yml
338
356
  - lib/aws_assume_role.rb
339
357
  - lib/aws_assume_role/cli.rb
data/ext/mkrf_conf.rb DELETED
@@ -1,25 +0,0 @@
1
- require "rubygems"
2
- require "rubygems/command"
3
- require "rubygems/dependency_installer"
4
- begin
5
- Gem::Command.build_args = ARGV
6
- rescue NoMethodError # rubocop:disable Lint/HandleExceptions
7
- end
8
-
9
- installer = Gem::DependencyInstaller.new
10
-
11
- begin
12
- case Gem::Platform.local.os
13
- when "linux"
14
- installer.install "gir_ffi-gnome_keyring", Gem::Requirement.new("~> 0.0", ">= 0.0.3")
15
- when "darwin"
16
- installer.install "ruby-keychain", Gem::Requirement.new("~> 0.3", ">= 0.3.2")
17
- end
18
- rescue => e # rubocop:disable Lint/RescueWithoutErrorClass
19
- puts e.backtrace
20
- exit(1)
21
- end
22
-
23
- f = File.open(File.join(File.dirname(__FILE__), "Rakefile"), "w") # create dummy rakefile to indicate success
24
- f.write("task :default\n")
25
- f.close