hekate 0.1.0.pre10 → 0.1.0.pre11
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/.circleci/config.yml +55 -0
- data/Gemfile.lock +36 -22
- data/README.md +9 -1
- data/codecov.yml +3 -0
- data/hekate.gemspec +4 -3
- data/lib/hekate.rb +1 -0
- data/lib/hekate/aws.rb +98 -0
- data/lib/hekate/engine.rb +27 -92
- data/lib/hekate/version.rb +1 -1
- metadata +45 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d5fc4f9a9438fcd1d5b3b00d52813b5a90c906d
|
4
|
+
data.tar.gz: 1dc957f9854963f89177b85ccda292775e64c7a7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7d6f64a8316dffec60080925e4fafdea8eb09a395219289d9e694893ea3420b73dc28d6cba4e7303a1fa8e89edd80eba2b9da55306b789059d15fc64ddebf5f
|
7
|
+
data.tar.gz: 720918abe4cade9ce47816afea156c4aae3cf90ece89842d1ec2e949df35a83048e96aa71ee29ae3e150d61bdaf9e1fc5e761e1615fbf8dd6e6486d6c0727a04
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# Ruby CircleCI 2.0 configuration file
|
2
|
+
#
|
3
|
+
# Check https://circleci.com/docs/2.0/language-ruby/ for more details
|
4
|
+
#
|
5
|
+
version: 2
|
6
|
+
jobs:
|
7
|
+
build:
|
8
|
+
docker:
|
9
|
+
# specify the version you desire here
|
10
|
+
- image: circleci/ruby:2.3.4-node-browsers
|
11
|
+
|
12
|
+
# Specify service dependencies here if necessary
|
13
|
+
# CircleCI maintains a library of pre-built images
|
14
|
+
# documented at https://circleci.com/docs/2.0/circleci-images/
|
15
|
+
# - image: circleci/postgres:9.4
|
16
|
+
|
17
|
+
working_directory: ~/repo
|
18
|
+
|
19
|
+
steps:
|
20
|
+
- checkout
|
21
|
+
|
22
|
+
# Download and cache dependencies
|
23
|
+
- restore_cache:
|
24
|
+
keys:
|
25
|
+
- v1-dependencies-{{ checksum "Gemfile.lock" }}
|
26
|
+
# fallback to using the latest cache if no exact match is found
|
27
|
+
- v1-dependencies-
|
28
|
+
|
29
|
+
- run:
|
30
|
+
name: install dependencies
|
31
|
+
command: |
|
32
|
+
bundle install --jobs=4 --retry=3 --path vendor/bundle
|
33
|
+
|
34
|
+
- save_cache:
|
35
|
+
paths:
|
36
|
+
- ./venv
|
37
|
+
key: v1-dependencies-{{ checksum "Gemfile.lock" }}
|
38
|
+
|
39
|
+
# run tests!
|
40
|
+
- run:
|
41
|
+
name: run tests
|
42
|
+
command: |
|
43
|
+
mkdir /tmp/test-results
|
44
|
+
|
45
|
+
bundle exec rspec --format progress \
|
46
|
+
--format RspecJunitFormatter \
|
47
|
+
--out /tmp/test-results/rspec.xml \
|
48
|
+
--format progress
|
49
|
+
|
50
|
+
# collect reports
|
51
|
+
- store_test_results:
|
52
|
+
path: /tmp/test-results
|
53
|
+
- store_artifacts:
|
54
|
+
path: /tmp/test-results
|
55
|
+
destination: test-results
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
hekate (0.1.0.
|
4
|
+
hekate (0.1.0.pre10)
|
5
5
|
aws-sdk (~> 2.9, >= 2.9.0)
|
6
6
|
commander (~> 4.4, >= 4.4.0)
|
7
|
-
dotenv
|
7
|
+
dotenv (>= 2.2.1, >= 2.2)
|
8
8
|
ec2-metadata (~> 0.2, >= 0.2.0)
|
9
9
|
rails (~> 4)
|
10
10
|
railties (~> 4.2, >= 4.2.0)
|
@@ -49,21 +49,26 @@ GEM
|
|
49
49
|
addressable (2.5.1)
|
50
50
|
public_suffix (~> 2.0, >= 2.0.2)
|
51
51
|
arel (6.0.4)
|
52
|
-
aws-sdk (2.10.
|
53
|
-
aws-sdk-resources (= 2.10.
|
54
|
-
aws-sdk-core (2.10.
|
52
|
+
aws-sdk (2.10.23)
|
53
|
+
aws-sdk-resources (= 2.10.23)
|
54
|
+
aws-sdk-core (2.10.23)
|
55
55
|
aws-sigv4 (~> 1.0)
|
56
56
|
jmespath (~> 1.0)
|
57
|
-
aws-sdk-resources (2.10.
|
58
|
-
aws-sdk-core (= 2.10.
|
57
|
+
aws-sdk-resources (2.10.23)
|
58
|
+
aws-sdk-core (= 2.10.23)
|
59
59
|
aws-sigv4 (1.0.1)
|
60
60
|
builder (3.2.3)
|
61
|
+
codecov (0.1.10)
|
62
|
+
json
|
63
|
+
simplecov
|
64
|
+
url
|
61
65
|
commander (4.4.3)
|
62
66
|
highline (~> 1.7.2)
|
63
67
|
concurrent-ruby (1.0.5)
|
64
68
|
crack (0.4.3)
|
65
69
|
safe_yaml (~> 1.0.0)
|
66
70
|
diff-lcs (1.3)
|
71
|
+
docile (1.1.5)
|
67
72
|
dotenv (2.2.1)
|
68
73
|
ec2-metadata (0.2.2)
|
69
74
|
erubis (2.7.0)
|
@@ -73,6 +78,7 @@ GEM
|
|
73
78
|
highline (1.7.8)
|
74
79
|
i18n (0.8.6)
|
75
80
|
jmespath (1.3.1)
|
81
|
+
json (2.1.0)
|
76
82
|
loofah (2.0.3)
|
77
83
|
nokogiri (>= 1.5.9)
|
78
84
|
mail (2.6.6)
|
@@ -112,21 +118,28 @@ GEM
|
|
112
118
|
activesupport (= 4.2.9)
|
113
119
|
rake (>= 0.8.7)
|
114
120
|
thor (>= 0.18.1, < 2.0)
|
115
|
-
rake (10.
|
116
|
-
rspec (3.
|
117
|
-
rspec-core (~> 3.
|
118
|
-
rspec-expectations (~> 3.
|
119
|
-
rspec-mocks (~> 3.
|
120
|
-
rspec-core (3.
|
121
|
-
rspec-support (~> 3.
|
122
|
-
rspec-expectations (3.
|
121
|
+
rake (10.5.0)
|
122
|
+
rspec (3.6.0)
|
123
|
+
rspec-core (~> 3.6.0)
|
124
|
+
rspec-expectations (~> 3.6.0)
|
125
|
+
rspec-mocks (~> 3.6.0)
|
126
|
+
rspec-core (3.6.0)
|
127
|
+
rspec-support (~> 3.6.0)
|
128
|
+
rspec-expectations (3.6.0)
|
123
129
|
diff-lcs (>= 1.2.0, < 2.0)
|
124
|
-
rspec-support (~> 3.
|
125
|
-
rspec-mocks (3.
|
130
|
+
rspec-support (~> 3.6.0)
|
131
|
+
rspec-mocks (3.6.0)
|
126
132
|
diff-lcs (>= 1.2.0, < 2.0)
|
127
|
-
rspec-support (~> 3.
|
128
|
-
rspec-support (3.
|
133
|
+
rspec-support (~> 3.6.0)
|
134
|
+
rspec-support (3.6.0)
|
135
|
+
rspec_junit_formatter (0.3.0)
|
136
|
+
rspec-core (>= 2, < 4, != 2.12.0)
|
129
137
|
safe_yaml (1.0.4)
|
138
|
+
simplecov (0.14.1)
|
139
|
+
docile (~> 1.1.0)
|
140
|
+
json (>= 1.8, < 3)
|
141
|
+
simplecov-html (~> 0.10.0)
|
142
|
+
simplecov-html (0.10.1)
|
130
143
|
sprockets (3.7.1)
|
131
144
|
concurrent-ruby (~> 1.0)
|
132
145
|
rack (> 1, < 3)
|
@@ -138,7 +151,7 @@ GEM
|
|
138
151
|
thread_safe (0.3.6)
|
139
152
|
tzinfo (1.2.3)
|
140
153
|
thread_safe (~> 0.1)
|
141
|
-
|
154
|
+
url (0.3.2)
|
142
155
|
webmock (3.0.1)
|
143
156
|
addressable (>= 2.3.6)
|
144
157
|
crack (>= 0.3.2)
|
@@ -149,11 +162,12 @@ PLATFORMS
|
|
149
162
|
|
150
163
|
DEPENDENCIES
|
151
164
|
bundler (~> 1.15)
|
165
|
+
codecov (~> 0.1.0, ~> 0.1)
|
152
166
|
hekate!
|
153
167
|
rake (~> 10.0)
|
154
168
|
rspec (~> 3.0)
|
155
|
-
|
156
|
-
webmock
|
169
|
+
rspec_junit_formatter (~> 0.3.0)
|
170
|
+
webmock (~> 3.0.0, ~> 3.0)
|
157
171
|
|
158
172
|
BUNDLED WITH
|
159
173
|
1.15.3
|
data/README.md
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
-
# Hekate
|
1
|
+
# [Hekate](http://www.ancient.eu/Hecate/)
|
2
|
+
|
3
|
+
[](https://badge.fury.io/rb/hekate)
|
4
|
+
[](https://circleci.com/gh/krimsonkla/hekate)
|
5
|
+
[](https://codecov.io/gh/krimsonkla/hekate)
|
6
|
+
[](https://gemnasium.com/github.com/krimsonkla/hekate)
|
2
7
|
|
3
8
|
Hekate is a gem for encrypting, storing and consuming rails application secrets as Amazon SSM parameters
|
4
9
|
|
@@ -117,6 +122,9 @@ import - imports a .env formatted secrets file
|
|
117
122
|
|
118
123
|
export - exports to a .env formatted secrets file
|
119
124
|
|
125
|
+
### Working when offline
|
126
|
+
In the event that you need to work offline hekate can fall back to using dotenv files. Offline mode is only available for development and test. Be sure to use `hekate export` to create the necessary files before going offline.
|
127
|
+
|
120
128
|
## Contributing
|
121
129
|
|
122
130
|
Bug reports and pull requests are welcome on GitHub at https://github.com/jasonrisch/hekate. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
data/codecov.yml
ADDED
data/hekate.gemspec
CHANGED
@@ -26,11 +26,12 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_runtime_dependency 'ec2-metadata', '~> 0.2', '>= 0.2.0'
|
27
27
|
spec.add_runtime_dependency 'railties', '~> 4.2', '>= 4.2.0'
|
28
28
|
spec.add_runtime_dependency 'rails', '~> 4'
|
29
|
-
spec.add_runtime_dependency 'dotenv', '
|
29
|
+
spec.add_runtime_dependency 'dotenv', '>= 2.2', '>= 2.2.1'
|
30
30
|
|
31
31
|
spec.add_development_dependency 'bundler', '~> 1.15'
|
32
|
+
spec.add_development_dependency 'codecov', '~> 0.1', '~> 0.1.0'
|
32
33
|
spec.add_development_dependency 'rake', '~> 10.0'
|
33
34
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
34
|
-
spec.add_development_dependency '
|
35
|
-
spec.add_development_dependency '
|
35
|
+
spec.add_development_dependency 'rspec_junit_formatter', '~> 0.3.0'
|
36
|
+
spec.add_development_dependency 'webmock', '~> 3.0', '~> 3.0.0'
|
36
37
|
end
|
data/lib/hekate.rb
CHANGED
data/lib/hekate/aws.rb
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
require 'aws-sdk'
|
2
|
+
|
3
|
+
module Hekate
|
4
|
+
class Aws
|
5
|
+
def initialize(region)
|
6
|
+
@region = region
|
7
|
+
end
|
8
|
+
|
9
|
+
def get_parameter(name)
|
10
|
+
parameters = ssm.get_parameters(
|
11
|
+
names: [name],
|
12
|
+
with_decryption: true
|
13
|
+
).parameters
|
14
|
+
|
15
|
+
if parameters.to_a.empty?
|
16
|
+
puts "Could not find parameter #{parameter_key}"
|
17
|
+
else
|
18
|
+
parameters.first['value']
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def list_parameters(environment)
|
23
|
+
get_app_env_parameters(environment)
|
24
|
+
end
|
25
|
+
|
26
|
+
def get_parameters(names)
|
27
|
+
ssm.get_parameters(
|
28
|
+
names: names,
|
29
|
+
with_decryption: true
|
30
|
+
).parameters
|
31
|
+
end
|
32
|
+
|
33
|
+
def put_parameter(name, value)
|
34
|
+
ssm.put_parameter(name: name,
|
35
|
+
value: value,
|
36
|
+
type: 'SecureString',
|
37
|
+
key_id: kms_key,
|
38
|
+
overwrite: true)
|
39
|
+
end
|
40
|
+
|
41
|
+
def delete_parameter(name)
|
42
|
+
ssm.delete_parameter(name: name)
|
43
|
+
end
|
44
|
+
|
45
|
+
private
|
46
|
+
|
47
|
+
def kms
|
48
|
+
@kms ||= ::Aws::KMS::Client.new(region: @region)
|
49
|
+
end
|
50
|
+
|
51
|
+
def ssm
|
52
|
+
@ssm ||= ::Aws::SSM::Client.new(region: @region)
|
53
|
+
end
|
54
|
+
|
55
|
+
def kms_key
|
56
|
+
return @kms_key if @kms_key
|
57
|
+
|
58
|
+
alias_name = "alias/#{Hekate::Engine.application}_#{@environment}"
|
59
|
+
|
60
|
+
if kms_alias_exists? alias_name
|
61
|
+
key = kms.describe_key(key_id: alias_name).key_metadata
|
62
|
+
else
|
63
|
+
key = kms.create_key.key_metadata
|
64
|
+
kms.create_alias(
|
65
|
+
alias_name: alias_name,
|
66
|
+
target_key_id: key.key_id
|
67
|
+
)
|
68
|
+
end
|
69
|
+
|
70
|
+
key.key_id
|
71
|
+
end
|
72
|
+
|
73
|
+
def kms_alias_exists?(kms_alias)
|
74
|
+
aliases = kms.list_aliases.aliases.map(&:alias_name)
|
75
|
+
aliases.include? kms_alias
|
76
|
+
end
|
77
|
+
|
78
|
+
def get_app_env_parameters(env, parameters = [], next_token = nil)
|
79
|
+
query = {
|
80
|
+
filters: [
|
81
|
+
{
|
82
|
+
key: 'Name',
|
83
|
+
values: ["#{Hekate::Engine.application}.#{env}"]
|
84
|
+
}
|
85
|
+
],
|
86
|
+
max_results: 50
|
87
|
+
}
|
88
|
+
query[:next_token] = next_token if next_token
|
89
|
+
response = ssm.describe_parameters(query)
|
90
|
+
|
91
|
+
parameters += response.parameters
|
92
|
+
|
93
|
+
parameters = get_app_env_parameters(env, parameters, response.next_token) if response.next_token
|
94
|
+
|
95
|
+
parameters
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
data/lib/hekate/engine.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'aws-sdk'
|
2
1
|
require 'commander/user_interaction'
|
3
2
|
require 'dotenv'
|
4
3
|
require 'ec2_metadata'
|
@@ -35,14 +34,20 @@ module Hekate
|
|
35
34
|
end
|
36
35
|
end
|
37
36
|
|
37
|
+
def root
|
38
|
+
@root ||= Rails::Engine.find_root_with_flag('config.ru', File.dirname($PROGRAM_NAME))
|
39
|
+
end
|
40
|
+
|
38
41
|
def dotenv_files
|
39
|
-
|
40
|
-
[
|
42
|
+
files = [
|
41
43
|
root.join(".env.#{Rails.env}.local"),
|
42
44
|
(root.join('.env.local') unless Rails.env.test?),
|
43
45
|
root.join(".env.#{Rails.env}"),
|
44
46
|
root.join('.env')
|
45
|
-
].compact
|
47
|
+
].compact.select { |file| File.exist? file }
|
48
|
+
|
49
|
+
raise 'Could not find .env files while falling back to dotenv' if files.empty?
|
50
|
+
files
|
46
51
|
end
|
47
52
|
end
|
48
53
|
|
@@ -52,19 +57,20 @@ module Hekate
|
|
52
57
|
Hekate::Engine.application = application
|
53
58
|
end
|
54
59
|
|
60
|
+
def awsclient
|
61
|
+
@awsclient ||= Hekate::Aws.new(@region)
|
62
|
+
end
|
63
|
+
|
55
64
|
def load_environment
|
56
65
|
if Hekate::Engine.online?
|
57
66
|
['root', @environment].each do |env|
|
58
67
|
parameter_key = "#{Hekate::Engine.application}.#{env}."
|
59
68
|
|
60
|
-
parameters =
|
69
|
+
parameters = awsclient.list_parameters(env)
|
61
70
|
parameters = parameters.map(&:name)
|
62
71
|
|
63
72
|
parameters.each_slice(10) do |slice|
|
64
|
-
result =
|
65
|
-
names: slice,
|
66
|
-
with_decryption: true
|
67
|
-
).parameters
|
73
|
+
result = awsclient.get_parameters(slice)
|
68
74
|
|
69
75
|
result.each do |parameter|
|
70
76
|
parameter_name = parameter.name.gsub(parameter_key, '')
|
@@ -75,7 +81,7 @@ module Hekate
|
|
75
81
|
elsif Rails.env.development? || Rails.env.test?
|
76
82
|
Dotenv.load(*Hekate::Engine.dotenv_files)
|
77
83
|
else
|
78
|
-
|
84
|
+
raise 'Could not connect to parameter store'
|
79
85
|
end
|
80
86
|
end
|
81
87
|
|
@@ -100,56 +106,38 @@ module Hekate
|
|
100
106
|
end
|
101
107
|
|
102
108
|
def put(key, value)
|
103
|
-
|
104
|
-
|
105
|
-
type: 'SecureString',
|
106
|
-
key_id: kms_key.key_id,
|
107
|
-
overwrite: true)
|
109
|
+
parameter_key = "#{Hekate::Engine.application}.#{@environment}.#{key}"
|
110
|
+
awsclient.put_parameter(parameter_key, value)
|
108
111
|
end
|
109
112
|
|
110
113
|
def get(key)
|
111
114
|
parameter_key = "#{Hekate::Engine.application}.#{@environment}.#{key}"
|
112
|
-
|
113
|
-
names: [parameter_key],
|
114
|
-
with_decryption: true
|
115
|
-
).parameters
|
116
|
-
|
117
|
-
if parameters.to_a.empty?
|
118
|
-
puts "Could not find parameter #{parameter_key}"
|
119
|
-
else
|
120
|
-
parameters.first['value']
|
121
|
-
end
|
115
|
+
awsclient.get_parameter(parameter_key)
|
122
116
|
end
|
123
117
|
|
124
118
|
def delete_all
|
125
|
-
parameters =
|
126
|
-
parameters = parameters.map(&:name)
|
119
|
+
parameters = awsclient.list_parameters(@environment).map(&:name)
|
127
120
|
progress = Commander::UI::ProgressBar.new(parameters.length)
|
128
|
-
parameters.
|
129
|
-
|
130
|
-
|
131
|
-
ssm.delete_parameter(name: parameter)
|
132
|
-
end
|
121
|
+
parameters.each do |parameter|
|
122
|
+
progress.increment
|
123
|
+
awsclient.delete_parameter(parameter)
|
133
124
|
end
|
134
125
|
end
|
135
126
|
|
136
127
|
def delete(key)
|
137
|
-
|
128
|
+
parameter_key = "#{Hekate::Engine.application}.#{@environment}.#{key}"
|
129
|
+
awsclient.delete_parameter(parameter_key)
|
138
130
|
end
|
139
131
|
|
140
132
|
def export(env_file)
|
141
133
|
parameter_key = "#{Hekate::Engine.application}.#{@environment}."
|
142
134
|
|
143
|
-
parameters =
|
144
|
-
parameters = parameters.map(&:name)
|
135
|
+
parameters = awsclient.list_parameters(@environment).map(&:name)
|
145
136
|
|
146
137
|
progress = Commander::UI::ProgressBar.new(parameters.length)
|
147
138
|
open(env_file, 'w') do |file|
|
148
139
|
parameters.each_slice(10) do |slice|
|
149
|
-
result =
|
150
|
-
names: slice,
|
151
|
-
with_decryption: true
|
152
|
-
).parameters
|
140
|
+
result = awsclient.get_parameters(slice)
|
153
141
|
|
154
142
|
result.each do |parameter|
|
155
143
|
progress.increment
|
@@ -159,58 +147,5 @@ module Hekate
|
|
159
147
|
end
|
160
148
|
end
|
161
149
|
end
|
162
|
-
|
163
|
-
private
|
164
|
-
|
165
|
-
def kms
|
166
|
-
@kms ||= Aws::KMS::Client.new(region: @region)
|
167
|
-
end
|
168
|
-
|
169
|
-
def ssm
|
170
|
-
@ssm ||= Aws::SSM::Client.new(region: @region)
|
171
|
-
end
|
172
|
-
|
173
|
-
def kms_key
|
174
|
-
return @kms_key if @kms_key
|
175
|
-
|
176
|
-
alias_name = "alias/#{Hekate::Engine.application}_#{@environment}"
|
177
|
-
|
178
|
-
if kms_alias_exists? alias_name
|
179
|
-
key = kms.describe_key(key_id: alias_name).key_metadata
|
180
|
-
else
|
181
|
-
key = kms.create_key.key_metadata
|
182
|
-
kms.create_alias(
|
183
|
-
alias_name: alias_name,
|
184
|
-
target_key_id: key.key_id
|
185
|
-
)
|
186
|
-
end
|
187
|
-
|
188
|
-
key
|
189
|
-
end
|
190
|
-
|
191
|
-
def kms_alias_exists?(kms_alias)
|
192
|
-
aliases = kms.list_aliases.aliases.map(&:alias_name)
|
193
|
-
aliases.include? kms_alias
|
194
|
-
end
|
195
|
-
|
196
|
-
def get_app_env_parameters(env, parameters = [], next_token = nil)
|
197
|
-
query = {
|
198
|
-
filters: [
|
199
|
-
{
|
200
|
-
key: 'Name',
|
201
|
-
values: ["#{Hekate::Engine.application}.#{env}"]
|
202
|
-
}
|
203
|
-
],
|
204
|
-
max_results: 50
|
205
|
-
}
|
206
|
-
query[:next_token] = next_token if next_token
|
207
|
-
response = ssm.describe_parameters(query)
|
208
|
-
|
209
|
-
parameters += response.parameters
|
210
|
-
|
211
|
-
parameters = get_app_env_parameters(env, parameters, response.next_token) if response.next_token
|
212
|
-
|
213
|
-
parameters
|
214
|
-
end
|
215
150
|
end
|
216
151
|
end
|
data/lib/hekate/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hekate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.
|
4
|
+
version: 0.1.0.pre11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jasonrisch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-08-
|
11
|
+
date: 2017-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -108,16 +108,22 @@ dependencies:
|
|
108
108
|
name: dotenv
|
109
109
|
requirement: !ruby/object:Gem::Requirement
|
110
110
|
requirements:
|
111
|
-
- - "
|
111
|
+
- - ">="
|
112
112
|
- !ruby/object:Gem::Version
|
113
|
-
version: '
|
113
|
+
version: '2.2'
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: 2.2.1
|
114
117
|
type: :runtime
|
115
118
|
prerelease: false
|
116
119
|
version_requirements: !ruby/object:Gem::Requirement
|
117
120
|
requirements:
|
118
|
-
- - "
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '2.2'
|
124
|
+
- - ">="
|
119
125
|
- !ruby/object:Gem::Version
|
120
|
-
version:
|
126
|
+
version: 2.2.1
|
121
127
|
- !ruby/object:Gem::Dependency
|
122
128
|
name: bundler
|
123
129
|
requirement: !ruby/object:Gem::Requirement
|
@@ -132,6 +138,26 @@ dependencies:
|
|
132
138
|
- - "~>"
|
133
139
|
- !ruby/object:Gem::Version
|
134
140
|
version: '1.15'
|
141
|
+
- !ruby/object:Gem::Dependency
|
142
|
+
name: codecov
|
143
|
+
requirement: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - "~>"
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '0.1'
|
148
|
+
- - "~>"
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: 0.1.0
|
151
|
+
type: :development
|
152
|
+
prerelease: false
|
153
|
+
version_requirements: !ruby/object:Gem::Requirement
|
154
|
+
requirements:
|
155
|
+
- - "~>"
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0.1'
|
158
|
+
- - "~>"
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: 0.1.0
|
135
161
|
- !ruby/object:Gem::Dependency
|
136
162
|
name: rake
|
137
163
|
requirement: !ruby/object:Gem::Requirement
|
@@ -161,23 +187,26 @@ dependencies:
|
|
161
187
|
- !ruby/object:Gem::Version
|
162
188
|
version: '3.0'
|
163
189
|
- !ruby/object:Gem::Dependency
|
164
|
-
name:
|
190
|
+
name: rspec_junit_formatter
|
165
191
|
requirement: !ruby/object:Gem::Requirement
|
166
192
|
requirements:
|
167
193
|
- - "~>"
|
168
194
|
- !ruby/object:Gem::Version
|
169
|
-
version: 3.0
|
195
|
+
version: 0.3.0
|
170
196
|
type: :development
|
171
197
|
prerelease: false
|
172
198
|
version_requirements: !ruby/object:Gem::Requirement
|
173
199
|
requirements:
|
174
200
|
- - "~>"
|
175
201
|
- !ruby/object:Gem::Version
|
176
|
-
version: 3.0
|
202
|
+
version: 0.3.0
|
177
203
|
- !ruby/object:Gem::Dependency
|
178
|
-
name:
|
204
|
+
name: webmock
|
179
205
|
requirement: !ruby/object:Gem::Requirement
|
180
206
|
requirements:
|
207
|
+
- - "~>"
|
208
|
+
- !ruby/object:Gem::Version
|
209
|
+
version: '3.0'
|
181
210
|
- - "~>"
|
182
211
|
- !ruby/object:Gem::Version
|
183
212
|
version: 3.0.0
|
@@ -185,6 +214,9 @@ dependencies:
|
|
185
214
|
prerelease: false
|
186
215
|
version_requirements: !ruby/object:Gem::Requirement
|
187
216
|
requirements:
|
217
|
+
- - "~>"
|
218
|
+
- !ruby/object:Gem::Version
|
219
|
+
version: '3.0'
|
188
220
|
- - "~>"
|
189
221
|
- !ruby/object:Gem::Version
|
190
222
|
version: 3.0.0
|
@@ -196,6 +228,7 @@ executables:
|
|
196
228
|
extensions: []
|
197
229
|
extra_rdoc_files: []
|
198
230
|
files:
|
231
|
+
- ".circleci/config.yml"
|
199
232
|
- ".gitignore"
|
200
233
|
- ".idea/vcs.xml"
|
201
234
|
- ".rspec"
|
@@ -208,6 +241,7 @@ files:
|
|
208
241
|
- bin/console
|
209
242
|
- bin/hekate
|
210
243
|
- bin/setup
|
244
|
+
- codecov.yml
|
211
245
|
- docs/delete.md
|
212
246
|
- docs/delete_all.md
|
213
247
|
- docs/export.md
|
@@ -216,6 +250,7 @@ files:
|
|
216
250
|
- docs/put.md
|
217
251
|
- hekate.gemspec
|
218
252
|
- lib/hekate.rb
|
253
|
+
- lib/hekate/aws.rb
|
219
254
|
- lib/hekate/engine.rb
|
220
255
|
- lib/hekate/railtie.rb
|
221
256
|
- lib/hekate/version.rb
|