conjur-cli 4.13.1 → 4.14.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 +13 -5
- data/Gemfile +2 -0
- data/lib/conjur/authn.rb +1 -2
- data/lib/conjur/command/dsl_command.rb +12 -1
- data/lib/conjur/command/env.rb +2 -1
- data/lib/conjur/command/init.rb +23 -15
- data/lib/conjur/config.rb +11 -11
- data/lib/conjur/dsl/runner.rb +7 -3
- data/lib/conjur/version.rb +2 -2
- data/spec/command/init_spec.rb +56 -11
- data/spec/command/policy_spec.rb +15 -4
- metadata +26 -26
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YzdkNTU4NDk0N2QyMmNiOWJkMDA3MzZkZmNhMTg2NjZiNTQzZTMwYw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ODE1ODg4ZGMyZGYzYTBiYTNmNzMzMWZlNjUwYjdjZjc4NDZjYWJkOA==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NzE2OGU2MWI2NTI4ZjQyZjBmMDQyOTQ2ZDM5OTY1YTBjNWY2MmJjMDQ0ZTNj
|
10
|
+
MmM2ZjkzMjRmMTZkN2UxZjc3MmM5NTAxNjg4ZjE4YjE5Y2NiMTA4ZDI2OGQy
|
11
|
+
YTgxZWJiZjZjZjBlMDVhZjM2OWZiOTMyYTYzMzY4MTA2YjhmYWM=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NjlhMjllYzZjNDMwOTdmYjg0Nzc4MGU1ZWY0ZTg3Y2JiN2EyMmJkNWMzYmIx
|
14
|
+
YWY5Y2U0NmE3NmJmNGYyYTRhMzdlODk1ODZkN2YzYjJiZTBmMWU5Zjg2MWFh
|
15
|
+
NGI3NGQ2NjU3NDBmY2NiYWY0NTAzMWU0ZDM3MjZiZDY5NGI3YTk=
|
data/Gemfile
CHANGED
data/lib/conjur/authn.rb
CHANGED
@@ -81,8 +81,7 @@ module Conjur::Authn
|
|
81
81
|
end
|
82
82
|
|
83
83
|
def ask_for_credentials(options = {})
|
84
|
-
raise "No credentials provided or found" if options[:noask]
|
85
|
-
|
84
|
+
raise "No Conjur credentials provided or found" if options[:noask]
|
86
85
|
|
87
86
|
# also use stderr here, because we might be prompting for a password as part
|
88
87
|
# of a command like user:create that we'd want to send to a file.
|
@@ -28,7 +28,18 @@ class Conjur::DSLCommand < Conjur::Command
|
|
28
28
|
filename = nil
|
29
29
|
script = if script = args.pop
|
30
30
|
filename = script
|
31
|
-
script = File.
|
31
|
+
script = if File.exists?(script)
|
32
|
+
File.read(script)
|
33
|
+
else
|
34
|
+
require 'open-uri'
|
35
|
+
uri = URI.parse(script)
|
36
|
+
raise "Unable to read this kind of URL : #{script}" unless uri.respond_to?(:read)
|
37
|
+
begin
|
38
|
+
uri.read
|
39
|
+
rescue OpenURI::HTTPError
|
40
|
+
raise "Unable to read URI #{script} : #{$!.message}"
|
41
|
+
end
|
42
|
+
end
|
32
43
|
else
|
33
44
|
STDIN.read
|
34
45
|
end
|
data/lib/conjur/command/env.rb
CHANGED
@@ -79,7 +79,8 @@ RUNLONGDESC
|
|
79
79
|
env = get_env_object(options)
|
80
80
|
runtime_environment = Hash[ env.obtain(api).map {|k,v| [k.upcase, v] } ]
|
81
81
|
if Conjur.log
|
82
|
-
Conjur.log << "
|
82
|
+
Conjur.log << "[conjur env] Loaded environment #{runtime_environment.keys}\n"
|
83
|
+
Conjur.log << "[conjur env] Running command #{args}\n"
|
83
84
|
end
|
84
85
|
Kernel.system(runtime_environment, *args) or exit($?.to_i) # keep original exit code in case of failure
|
85
86
|
end
|
data/lib/conjur/command/init.rb
CHANGED
@@ -45,17 +45,16 @@ class Conjur::Command::Init < Conjur::Command
|
|
45
45
|
|
46
46
|
c.desc "Conjur organization account name (not required for appliance)"
|
47
47
|
c.flag ["a", "account"]
|
48
|
-
|
48
|
+
|
49
49
|
c.desc "Conjur SSL certificate (will be obtained from host unless provided by this option)"
|
50
50
|
c.flag ["c", "certificate"]
|
51
51
|
|
52
52
|
c.desc "File to write the configuration to"
|
53
|
-
c.
|
54
|
-
|
55
|
-
|
53
|
+
c.flag ["f", "file"]
|
54
|
+
|
56
55
|
c.desc "Force overwrite of existing files"
|
57
56
|
c.flag "force"
|
58
|
-
|
57
|
+
|
59
58
|
c.action do |global_options,options,args|
|
60
59
|
hl = HighLine.new $stdin, $stderr
|
61
60
|
|
@@ -65,7 +64,7 @@ class Conjur::Command::Init < Conjur::Command
|
|
65
64
|
if hostname
|
66
65
|
Conjur.configuration.core_url = "https://#{hostname}/api"
|
67
66
|
end
|
68
|
-
|
67
|
+
|
69
68
|
account = options[:account]
|
70
69
|
account ||= if hostname
|
71
70
|
account = Conjur::Core::API.info['account'] or raise "Expecting 'account' in Core info"
|
@@ -73,7 +72,7 @@ class Conjur::Command::Init < Conjur::Command
|
|
73
72
|
# using .to_s to overcome https://github.com/JEG2/highline/issues/69
|
74
73
|
hl.ask("Enter your organization account name: ").to_s
|
75
74
|
end
|
76
|
-
|
75
|
+
|
77
76
|
if (certificate = options[:certificate]).blank?
|
78
77
|
unless hostname.blank?
|
79
78
|
connect_hostname = if hostname.include?(':')
|
@@ -91,28 +90,37 @@ class Conjur::Command::Init < Conjur::Command
|
|
91
90
|
exit_now! "You decided not to trust the certificate" unless hl.ask("Trust this certificate (yes/no): ").strip == "yes"
|
92
91
|
end
|
93
92
|
end
|
94
|
-
|
93
|
+
|
95
94
|
exit_now! "account is required" if account.blank?
|
96
|
-
|
97
|
-
config = {
|
95
|
+
|
96
|
+
config = {
|
98
97
|
account: account,
|
99
98
|
plugins: []
|
100
99
|
}
|
101
|
-
|
100
|
+
|
102
101
|
config[:appliance_url] = "https://#{hostname}/api" unless hostname.blank?
|
103
|
-
|
102
|
+
|
103
|
+
config_file = File.expand_path('~/.conjurrc')
|
104
|
+
|
105
|
+
if !options[:file].nil?
|
106
|
+
config_file = File.expand_path(options[:file])
|
107
|
+
elsif ENV['CONJURRC']
|
108
|
+
config_file = File.expand_path(ENV['CONJURRC'])
|
109
|
+
end
|
110
|
+
|
104
111
|
unless certificate.blank?
|
105
|
-
cert_file = File.join(File.dirname(
|
112
|
+
cert_file = File.join(File.dirname(config_file), "conjur-#{account}.pem")
|
106
113
|
config[:cert_file] = cert_file
|
107
114
|
write_file(cert_file, options[:force]) do |f|
|
108
115
|
f.puts certificate
|
109
116
|
end
|
110
117
|
puts "Wrote certificate to #{cert_file}"
|
111
118
|
end
|
112
|
-
|
113
|
-
write_file(
|
119
|
+
|
120
|
+
write_file(config_file, options[:force]) do |f|
|
114
121
|
f.puts YAML.dump(config.stringify_keys)
|
115
122
|
end
|
123
|
+
|
116
124
|
puts "Wrote configuration to #{options[:file]}"
|
117
125
|
end
|
118
126
|
end
|
data/lib/conjur/config.rb
CHANGED
@@ -24,7 +24,7 @@ require 'active_support/core_ext/hash/indifferent_access'
|
|
24
24
|
module Conjur
|
25
25
|
class Config
|
26
26
|
@@attributes = {}
|
27
|
-
|
27
|
+
|
28
28
|
class << self
|
29
29
|
def clear
|
30
30
|
@@attributes = {}
|
@@ -46,9 +46,9 @@ module Conjur
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def default_config_files
|
49
|
-
['/etc/conjur.conf', user_config_files].flatten
|
49
|
+
['/etc/conjur.conf', user_config_files].flatten.uniq
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
def load(config_files = default_config_files)
|
53
53
|
require 'yaml'
|
54
54
|
require 'conjur/log'
|
@@ -65,12 +65,12 @@ module Conjur
|
|
65
65
|
end
|
66
66
|
end
|
67
67
|
end
|
68
|
-
|
68
|
+
|
69
69
|
def apply
|
70
70
|
require 'conjur/configuration'
|
71
71
|
keys = Config.keys.dup
|
72
72
|
keys.delete(:plugins)
|
73
|
-
|
73
|
+
|
74
74
|
cfg = Conjur.configuration
|
75
75
|
keys.each do |k|
|
76
76
|
if Conjur.configuration.respond_to?("#{k}_env_var") && (env_var = Conjur.configuration.send("#{k}_env_var")) && (v = ENV[env_var])
|
@@ -82,7 +82,7 @@ module Conjur
|
|
82
82
|
value = Config[k]
|
83
83
|
cfg.set k, value if value
|
84
84
|
end
|
85
|
-
|
85
|
+
|
86
86
|
if Conjur.log
|
87
87
|
begin
|
88
88
|
require 'conjur/api'
|
@@ -95,11 +95,11 @@ module Conjur
|
|
95
95
|
OpenSSL::SSL::SSLContext::DEFAULT_CERT_STORE.add_file Config[:cert_file]
|
96
96
|
end
|
97
97
|
end
|
98
|
-
|
98
|
+
|
99
99
|
def inspect
|
100
100
|
@@attributes.inspect
|
101
101
|
end
|
102
|
-
|
102
|
+
|
103
103
|
def plugins
|
104
104
|
plugins = @@attributes['plugins']
|
105
105
|
if plugins
|
@@ -108,16 +108,16 @@ module Conjur
|
|
108
108
|
[]
|
109
109
|
end
|
110
110
|
end
|
111
|
-
|
111
|
+
|
112
112
|
def merge(a)
|
113
113
|
a = {} unless a
|
114
114
|
@@attributes.deep_merge!(a.stringify_keys)
|
115
115
|
end
|
116
|
-
|
116
|
+
|
117
117
|
def keys
|
118
118
|
@@attributes.keys.map(&:to_sym)
|
119
119
|
end
|
120
|
-
|
120
|
+
|
121
121
|
def [](key)
|
122
122
|
@@attributes[key.to_s]
|
123
123
|
end
|
data/lib/conjur/dsl/runner.rb
CHANGED
@@ -9,6 +9,7 @@ module Conjur
|
|
9
9
|
include Conjur::IdentifierManipulation
|
10
10
|
|
11
11
|
attr_reader :script, :filename, :context
|
12
|
+
attr_reader :policy_role, :policy_resource
|
12
13
|
|
13
14
|
def initialize(script, filename = nil)
|
14
15
|
@context = {
|
@@ -16,9 +17,10 @@ module Conjur
|
|
16
17
|
"api_keys" => {}
|
17
18
|
}
|
18
19
|
|
19
|
-
@context['env']
|
20
|
+
@context['env'] = Conjur.env unless Conjur.env == 'production'
|
20
21
|
@context['stack'] = Conjur.stack unless Conjur.stack == 'v4'
|
21
|
-
@context['appliance_url']
|
22
|
+
@context['appliance_url'] = Conjur.configuration.appliance_url unless Conjur.configuration.appliance_url.nil?
|
23
|
+
@context['ssl_certificate'] = File.read(Conjur::Config[:cert_file]) unless Conjur::Config[:cert_file].nil?
|
22
24
|
|
23
25
|
@script = script
|
24
26
|
@filename = filename
|
@@ -89,9 +91,11 @@ module Conjur
|
|
89
91
|
|
90
92
|
def policy id, &block
|
91
93
|
self.role "policy", id do |role|
|
94
|
+
@policy_role = role
|
92
95
|
context["policy"] = role.identifier
|
93
96
|
self.owns do
|
94
|
-
self.resource "policy", id do
|
97
|
+
self.resource "policy", id do |resource|
|
98
|
+
@policy_resource = resource
|
95
99
|
scope id do
|
96
100
|
block.call if block_given?
|
97
101
|
end
|
data/lib/conjur/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright (C)
|
2
|
+
# Copyright (C) 2014 Conjur Inc
|
3
3
|
#
|
4
4
|
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
5
5
|
# this software and associated documentation files (the "Software"), to deal in
|
@@ -19,6 +19,6 @@
|
|
19
19
|
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
20
20
|
#
|
21
21
|
module Conjur
|
22
|
-
VERSION = "4.
|
22
|
+
VERSION = "4.14.0"
|
23
23
|
::Version=VERSION
|
24
24
|
end
|
data/spec/command/init_spec.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
tmpdir = Dir.mktmpdir
|
4
|
-
|
5
3
|
GITHUB_FP = "SHA1 Fingerprint=A0:C4:A7:46:00:ED:A7:2D:C0:BE:CB:9A:8C:B6:07:CA:58:EE:74:5E"
|
6
4
|
GITHUB_CERT = <<EOF
|
7
5
|
-----BEGIN CERTIFICATE-----
|
@@ -41,10 +39,6 @@ XX4C2NesiZcLYbc2n7B9O+63M2k=
|
|
41
39
|
EOF
|
42
40
|
|
43
41
|
describe Conjur::Command::Init do
|
44
|
-
it "properly defaults to a file path" do
|
45
|
-
expect(Conjur::CLI.commands[:init].flags[:f].default_value).to eq("#{ENV['HOME']}/.conjurrc")
|
46
|
-
end
|
47
|
-
|
48
42
|
describe ".get_certificate" do
|
49
43
|
it "returns the right certificate from github" do
|
50
44
|
fingerprint, certificate = Conjur::Command::Init.get_certificate('github.com:443')
|
@@ -57,12 +51,14 @@ describe Conjur::Command::Init do
|
|
57
51
|
before {
|
58
52
|
File.stub(:exists?).and_return false
|
59
53
|
}
|
54
|
+
|
60
55
|
context "auto-fetching fingerprint" do
|
61
56
|
before {
|
62
57
|
HighLine.any_instance.stub(:ask).with("Enter the hostname (and optional port) of your Conjur endpoint: ").and_return "the-host"
|
63
58
|
Conjur::Command::Init.stub get_certificate: ["the-fingerprint", nil]
|
64
59
|
HighLine.any_instance.stub(:ask).with(/^Trust this certificate/).and_return "yes"
|
65
60
|
}
|
61
|
+
|
66
62
|
describe_command 'init' do
|
67
63
|
it "fetches account and writes config file" do
|
68
64
|
# Stub hostname
|
@@ -71,6 +67,7 @@ describe Conjur::Command::Init do
|
|
71
67
|
invoke
|
72
68
|
end
|
73
69
|
end
|
70
|
+
|
74
71
|
describe_command 'init -a the-account' do
|
75
72
|
it "writes config file" do
|
76
73
|
File.should_receive(:open)
|
@@ -78,11 +75,13 @@ describe Conjur::Command::Init do
|
|
78
75
|
end
|
79
76
|
end
|
80
77
|
end
|
78
|
+
|
81
79
|
describe_command 'init -a the-account -h foobar' do
|
82
80
|
it "can't get the cert" do
|
83
81
|
expect { invoke }.to raise_error(GLI::CustomExit, /unable to retrieve certificate/i)
|
84
82
|
end
|
85
83
|
end
|
84
|
+
|
86
85
|
# KEG: These tests have a nasty habit of hanging
|
87
86
|
# describe_command 'init -a the-account -h google.com' do
|
88
87
|
# it "writes the config and cert" do
|
@@ -98,25 +97,71 @@ describe Conjur::Command::Init do
|
|
98
97
|
# invoke
|
99
98
|
# end
|
100
99
|
# end
|
100
|
+
|
101
101
|
describe_command 'init -a the-account -h localhost -c the-cert' do
|
102
102
|
it "writes config and cert files" do
|
103
103
|
File.should_receive(:open).twice
|
104
104
|
invoke
|
105
105
|
end
|
106
106
|
end
|
107
|
+
|
107
108
|
context "in a temp dir" do
|
108
|
-
|
109
|
+
tmpdir = Dir.mktmpdir
|
110
|
+
|
111
|
+
shared_examples "check config and cert files" do |file, env|
|
112
|
+
around do |example|
|
113
|
+
Dir.foreach(tmpdir) {|f|
|
114
|
+
fn = File.join(tmpdir, f)
|
115
|
+
File.delete(fn) if f != '.' && f != '..'
|
116
|
+
}
|
117
|
+
f = ENV.delete 'CONJURRC'
|
118
|
+
if not env.nil?
|
119
|
+
ENV['CONJURRC'] = env
|
120
|
+
end
|
121
|
+
example.run
|
122
|
+
ENV['CONJURRC'] = f
|
123
|
+
end
|
124
|
+
|
109
125
|
it "writes config and cert files" do
|
110
126
|
invoke
|
111
|
-
|
112
|
-
expect(YAML.load(File.read(
|
127
|
+
|
128
|
+
expect(YAML.load(File.read(file))).to eq({
|
113
129
|
account: 'the-account',
|
114
130
|
appliance_url: "https://localhost/api",
|
115
|
-
cert_file: "
|
131
|
+
cert_file: File.join(File.dirname(file), "conjur-the-account.pem"),
|
116
132
|
plugins: [],
|
117
133
|
}.stringify_keys)
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
context "default behavior" do
|
138
|
+
describe_command "init -a the-account -h localhost -c the-cert" do
|
139
|
+
before(:each) {
|
140
|
+
File.stub(:expand_path).and_call_original
|
141
|
+
File.stub(:expand_path).with('~/.conjurrc').and_return("#{tmpdir}/.conjurrc")
|
142
|
+
}
|
143
|
+
|
144
|
+
include_examples "check config and cert files", "#{tmpdir}/.conjurrc"
|
145
|
+
end
|
146
|
+
end
|
118
147
|
|
119
|
-
|
148
|
+
context "explicit output file" do
|
149
|
+
describe_command "init -f #{tmpdir}/.conjurrc2 -a the-account -h localhost -c the-cert" do
|
150
|
+
include_examples "check config and cert files", File.join(tmpdir, ".conjurrc2")
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
context "to CONJURRC" do
|
155
|
+
describe_command "init -a the-account -h localhost -c the-cert" do
|
156
|
+
file = File.join(tmpdir, ".conjurrc_env")
|
157
|
+
include_examples "check config and cert files", file, file
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
context "explicit output file overrides CONJURRC" do
|
162
|
+
describe_command "init -f #{tmpdir}/.conjurrc_2 -a the-account -h localhost -c the-cert" do
|
163
|
+
ENV['CONJURRC'] = "#{tmpdir}/.conjurrc_env_2"
|
164
|
+
include_examples "check config and cert files", File.join(tmpdir, ".conjurrc_2")
|
120
165
|
end
|
121
166
|
end
|
122
167
|
end
|
data/spec/command/policy_spec.rb
CHANGED
@@ -22,7 +22,8 @@ describe Conjur::Command::Policy do
|
|
22
22
|
double("resource", exists?: true).as_null_object
|
23
23
|
end
|
24
24
|
before {
|
25
|
-
File.stub(:
|
25
|
+
File.stub(:exists?).with("policy.rb").and_return true
|
26
|
+
File.stub(:read).with("policy.rb").and_return "{}"
|
26
27
|
Conjur::DSL::Runner.any_instance.stub(:api).and_return api
|
27
28
|
}
|
28
29
|
before {
|
@@ -32,7 +33,17 @@ describe Conjur::Command::Policy do
|
|
32
33
|
api.stub(:resource).with("the-account:policy:#{collection}/the-policy-1.0.0").and_return resource
|
33
34
|
}
|
34
35
|
|
35
|
-
describe_command 'policy:load --collection the-collection policy
|
36
|
+
describe_command 'policy:load --collection the-collection http://example.com/policy.rb' do
|
37
|
+
let(:collection) { "the-collection" }
|
38
|
+
before {
|
39
|
+
File.stub(:exists?).with("http://example.com/policy.rb").and_return false
|
40
|
+
URI.stub(:parse).with("http://example.com/policy.rb").and_return double(:uri, read: "{}")
|
41
|
+
}
|
42
|
+
it "creates the policy" do
|
43
|
+
invoke.should == 0
|
44
|
+
end
|
45
|
+
end
|
46
|
+
describe_command 'policy:load --collection the-collection policy.rb' do
|
36
47
|
let(:collection) { "the-collection" }
|
37
48
|
it "creates the policy" do
|
38
49
|
invoke.should == 0
|
@@ -43,7 +54,7 @@ describe Conjur::Command::Policy do
|
|
43
54
|
before {
|
44
55
|
stub_const("ENV", "USER" => "alice", "HOSTNAME" => "localhost")
|
45
56
|
}
|
46
|
-
describe_command 'policy:load --as-group the-group policy
|
57
|
+
describe_command 'policy:load --as-group the-group policy.rb' do
|
47
58
|
let(:group) { double(:group, exists?: true) }
|
48
59
|
it "creates the policy" do
|
49
60
|
Conjur::Command.api.stub(:role).with("the-account:group:the-group").and_return group
|
@@ -52,7 +63,7 @@ describe Conjur::Command::Policy do
|
|
52
63
|
invoke.should == 0
|
53
64
|
end
|
54
65
|
end
|
55
|
-
describe_command 'policy:load policy
|
66
|
+
describe_command 'policy:load policy.rb' do
|
56
67
|
it "creates the policy with default collection" do
|
57
68
|
invoke.should == 0
|
58
69
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: conjur-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rafał Rzepecki
|
@@ -9,125 +9,125 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-09-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - '>='
|
18
|
+
- - ! '>='
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '0'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - '>='
|
25
|
+
- - ! '>='
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: conjur-api
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - '>='
|
32
|
+
- - ! '>='
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: 4.10.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - '>='
|
39
|
+
- - ! '>='
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: 4.10.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: gli
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - '>='
|
46
|
+
- - ! '>='
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: 2.8.0
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - '>='
|
53
|
+
- - ! '>='
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: 2.8.0
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: highline
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- - '>='
|
60
|
+
- - ! '>='
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- - '>='
|
67
|
+
- - ! '>='
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: netrc
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- - '>='
|
74
|
+
- - ! '>='
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- - '>='
|
81
|
+
- - ! '>='
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: methadone
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- - '>='
|
88
|
+
- - ! '>='
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '0'
|
91
91
|
type: :runtime
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- - '>='
|
95
|
+
- - ! '>='
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: deep_merge
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- - '>='
|
102
|
+
- - ! '>='
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: '0'
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- - '>='
|
109
|
+
- - ! '>='
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: '0'
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: cas_rest_client
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
|
-
- - '>='
|
116
|
+
- - ! '>='
|
117
117
|
- !ruby/object:Gem::Version
|
118
118
|
version: '0'
|
119
119
|
type: :runtime
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
|
-
- - '>='
|
123
|
+
- - ! '>='
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: rspec
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
|
-
- - '>='
|
130
|
+
- - ! '>='
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
version: '2.14'
|
133
133
|
- - <
|
@@ -137,7 +137,7 @@ dependencies:
|
|
137
137
|
prerelease: false
|
138
138
|
version_requirements: !ruby/object:Gem::Requirement
|
139
139
|
requirements:
|
140
|
-
- - '>='
|
140
|
+
- - ! '>='
|
141
141
|
- !ruby/object:Gem::Version
|
142
142
|
version: '2.14'
|
143
143
|
- - <
|
@@ -147,28 +147,28 @@ dependencies:
|
|
147
147
|
name: simplecov
|
148
148
|
requirement: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - '>='
|
150
|
+
- - ! '>='
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
type: :development
|
154
154
|
prerelease: false
|
155
155
|
version_requirements: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- - '>='
|
157
|
+
- - ! '>='
|
158
158
|
- !ruby/object:Gem::Version
|
159
159
|
version: '0'
|
160
160
|
- !ruby/object:Gem::Dependency
|
161
161
|
name: aruba
|
162
162
|
requirement: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- - '>='
|
164
|
+
- - ! '>='
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
167
|
type: :development
|
168
168
|
prerelease: false
|
169
169
|
version_requirements: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
|
-
- - '>='
|
171
|
+
- - ! '>='
|
172
172
|
- !ruby/object:Gem::Version
|
173
173
|
version: '0'
|
174
174
|
- !ruby/object:Gem::Dependency
|
@@ -302,12 +302,12 @@ require_paths:
|
|
302
302
|
- lib
|
303
303
|
required_ruby_version: !ruby/object:Gem::Requirement
|
304
304
|
requirements:
|
305
|
-
- - '>='
|
305
|
+
- - ! '>='
|
306
306
|
- !ruby/object:Gem::Version
|
307
307
|
version: '0'
|
308
308
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
309
309
|
requirements:
|
310
|
-
- - '>='
|
310
|
+
- - ! '>='
|
311
311
|
- !ruby/object:Gem::Version
|
312
312
|
version: '0'
|
313
313
|
requirements: []
|