kumo_ki 1.0.0 → 1.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b4a26a8407db851e34bd5aa7d6ab1d33b456883b
4
- data.tar.gz: 0ab47e44b0a97826348e72e10529150d30cf7784
3
+ metadata.gz: c07fde0967bcc0d743dcd5f251ad012bb69fe05e
4
+ data.tar.gz: 935751b0a6be3f3d32b6bf91c82bd71f33bf1a27
5
5
  SHA512:
6
- metadata.gz: 016d0bd944535061fab6da6f49568f4de6d49e241a2c9f6aadcb6c814bc0947ba06c49bac3342d1264d324d686e771d55608be995e8a35fc7b0841e7c5d1e4b2
7
- data.tar.gz: 242defb99f43b08a15f23d8654ead2e1d7fd0e7b1f7c9a8519347535e3bb3c0485504934898dd4130f9df36126c622c8b6a8ffa992dbbe36a115503f47f03cef
6
+ metadata.gz: 6c6b629d2bb34041d9e86cfc772bbcbede7383bd67aa4512dd71aadc8987c41b71f3aa046861884df2fc525999e67eaf4c751f22f2db1806d07a0d8b4d3fa0ea
7
+ data.tar.gz: 1ea2d1b2fa36cf3ec96cf934a3a5b8083d91230c5777b04436cfc90f214042c8b022ce7dc1970b55ca36fbbb1aed3357c0fb41c1c255c9ecd85ba7b0e5ed37e0
@@ -0,0 +1,5 @@
1
+ steps:
2
+ - name: ':rspec: unit-test'
3
+ command: script/unit_test.sh
4
+ agents:
5
+ location: 'aws'
data/kumo_ki.gemspec CHANGED
@@ -20,6 +20,8 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency 'bundler', '~> 1.6'
22
22
  spec.add_development_dependency 'rake', '~> 10.0'
23
+ spec.add_development_dependency 'rspec', '~> 3.0'
24
+ spec.add_development_dependency 'rubocop', '~> 0.40'
23
25
 
24
26
  spec.add_runtime_dependency 'aws-sdk', '~> 2'
25
27
  end
@@ -0,0 +1,4 @@
1
+ module KumoKi
2
+ class KumoKiError < StandardError; end
3
+ class DecryptionError < KumoKiError; end
4
+ end
@@ -1,3 +1,3 @@
1
1
  module KumoKi
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
data/lib/kumo_ki.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'kumo_ki/version'
2
+ require 'kumo_ki/errors'
2
3
  require 'aws-sdk'
3
4
  require 'base64'
4
5
 
@@ -14,6 +15,8 @@ module KumoKi
14
15
  client.decrypt({
15
16
  ciphertext_blob: Base64.decode64(cipher_text)
16
17
  }).plaintext
18
+ rescue => e
19
+ raise KumoKi::DecryptionError.new("There was a problem decrypting your secrets: #{e.message}")
17
20
  end
18
21
 
19
22
  def encrypt_for(env_name, plain_text)
@@ -0,0 +1,13 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ echo "--- :clock1: :clock2: running specs :clock3: :clock4:"
6
+ bundle install && bundle exec rspec
7
+
8
+ function inline_image {
9
+ printf '\033]1338;url='"$1"';alt='"$2"'\a\n'
10
+ }
11
+
12
+ echo "+++ Done! :thumbsup: :shipit:"
13
+ inline_image "https://giftoppr.desktopprassets.com/uploads/f828c372186b5fa80a1c553adbcd4bc4d331396b/tumblr_m2cg550aq21ql201ao1_500.gif" "Yuss"
@@ -0,0 +1,2 @@
1
+ #! /bin/bash -e
2
+ buildkite-agent pipeline upload --replace
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ describe KumoKi::KMS do
4
+ describe '#decrypt' do
5
+ subject { KumoKi::KMS.new.decrypt("a thing")}
6
+ let(:kms) { instance_double(Aws::KMS::Client) }
7
+
8
+ before do
9
+ allow(Aws::KMS::Client).to receive(:new).and_return(kms)
10
+ end
11
+
12
+ it 'can decrypt' do
13
+ plaintext = 'beowulf'
14
+ decrypted_object = double('KMS decrypted result', plaintext: plaintext)
15
+ allow(kms).to receive(:decrypt).and_return decrypted_object
16
+
17
+ expect(subject).to eq plaintext
18
+ end
19
+
20
+ context 'something goes wrong' do
21
+ let(:nested_error_message) { 'Liar liar pants on fire' }
22
+
23
+ it 'blows up if it cannot decrypt' do
24
+ allow(kms).to receive(:decrypt).and_raise(RuntimeError, nested_error_message)
25
+
26
+ expect { subject }.to raise_error(KumoKi::DecryptionError, "There was a problem decrypting your secrets: #{nested_error_message}")
27
+ end
28
+ end
29
+
30
+ end
31
+ end
@@ -0,0 +1,2 @@
1
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
+ require 'kumo_ki'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kumo_ki
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Redbubble Delivery Engineering
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-05 00:00:00.000000000 Z
11
+ date: 2016-06-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -38,6 +38,34 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubocop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.40'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.40'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: aws-sdk
43
71
  requirement: !ruby/object:Gem::Requirement
@@ -59,6 +87,7 @@ executables: []
59
87
  extensions: []
60
88
  extra_rdoc_files: []
61
89
  files:
90
+ - ".buildkite/pipeline.yml"
62
91
  - ".gitignore"
63
92
  - Gemfile
64
93
  - LICENSE.txt
@@ -66,7 +95,12 @@ files:
66
95
  - Rakefile
67
96
  - kumo_ki.gemspec
68
97
  - lib/kumo_ki.rb
98
+ - lib/kumo_ki/errors.rb
69
99
  - lib/kumo_ki/version.rb
100
+ - script/unit_test.sh
101
+ - script/upload_buildkite_pipeline.sh
102
+ - spec/kumo_ki_spec.rb
103
+ - spec/spec_helper.rb
70
104
  homepage: https://github.com/redbubble
71
105
  licenses:
72
106
  - MIT
@@ -91,4 +125,6 @@ rubygems_version: 2.2.2
91
125
  signing_key:
92
126
  specification_version: 4
93
127
  summary: Gem for accessing secrets in Amazon's Key Management Service
94
- test_files: []
128
+ test_files:
129
+ - spec/kumo_ki_spec.rb
130
+ - spec/spec_helper.rb