conjur-cli 6.2.1 → 6.2.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,15 +5,34 @@ RSpec::Core::DSL.change_global_dsl do
5
5
 
6
6
  before do
7
7
  allow(cert_store).to receive(:add_file)
8
+ # Stub the constant OpenSSL::SSL::SSLContext::DEFAULT_CERT_STORE which is
9
+ # implicitly used in many places in the CLI and in conjur-api-ruby as the de facto
10
+ # cert store.
8
11
  stub_const 'OpenSSL::SSL::SSLContext::DEFAULT_CERT_STORE', cert_store
12
+
13
+ # Reset the rest_client_options defaults to avoid using expired rspec doubles.
14
+ #
15
+ # Conjur.configuration is a lazy-loaded singleton. There is single CLI instance
16
+ # shared across this test suite. When Conjur.configuration is loaded for the first
17
+ # time it assumes the defaults value for Conjur.configuration.rest_client_options
18
+ # of:
19
+ # {
20
+ # :ssl_cert_store => OpenSSL::SSL::SSLContext::DEFAULT_CERT_STORE
21
+ # }
22
+ #
23
+ # Notice above that each test case stubs the constant
24
+ # OpenSSL::SSL::SSLContext::DEFAULT_CERT_STORE with a double. Without further
25
+ # modification this means the first time the CLI is run and Conjur.configuration
26
+ # is loaded Conjur.configuration.rest_client_options[:ssl_cert_store] it is set to
27
+ # the double associated with the test case at that point in time. Since
28
+ # Conjur.configuration is only loaded once, without modification, that double will
29
+ # be retained and its usage will result in a RSpec::Mocks::ExpiredTestDoubleError.
30
+ # To avoid this for each test case we must reset
31
+ # Conjur.configuration.rest_client_options[:ssl_cert_store] with the double for
32
+ # the current test case.
33
+ Conjur.configuration.rest_client_options[:ssl_cert_store] = cert_store
9
34
  end
10
-
11
- let(:cert_store_options) do
12
- {
13
- ssl_cert_store: cert_store
14
- }
15
- end
16
-
35
+
17
36
  let(:invoke) do
18
37
  Conjur::CLI.error_device = $stderr
19
38
  # TODO: allow proper handling of description like "audit:send 'hello world'"
@@ -29,7 +29,13 @@ end
29
29
  shared_context "when logged in", logged_in: true do
30
30
  include_context "with mock authn"
31
31
  before do
32
- allow(api).to receive(:credentials) { {} }
32
+ allow(api).to receive(:credentials) do
33
+ {
34
+ :username => 'dknuth',
35
+ :headers => { :authorization => "fakeauth" },
36
+ }
37
+ end
38
+
33
39
  netrc[authn_host] = [username, api_key]
34
40
  allow(Conjur::Command).to receive_messages api: api
35
41
  end
@@ -47,7 +47,11 @@ class Conjur::Command::Users < Conjur::Command
47
47
  if api.username == options[:user]
48
48
  exit_now! 'To rotate the API key of the currently logged-in user, use this command without any flags or options'
49
49
  end
50
- puts api.resource([ Conjur.configuration.account, "user", options[:user] ].join(":")).rotate_api_key
50
+ user_resource_id = [Conjur.configuration.account, "user", options[:user]].join(":")
51
+ unless api.resource(user_resource_id).exists?
52
+ exit_now! "User '#{options[:user]}' not found"
53
+ end
54
+ puts api.resource(user_resource_id).rotate_api_key
51
55
  else
52
56
  username, password = Conjur::Authn.read_credentials
53
57
  new_api_key = Conjur::API.rotate_api_key username, password
@@ -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 = '6.2.1'
22
+ VERSION = '6.2.5'
23
23
  ::Version=VERSION
24
24
  end
data/push-image CHANGED
@@ -1,28 +1,46 @@
1
- #!/bin/bash -eu
2
-
3
- # Push the 'cli:5' image to Dockerhub when on the 'master' branch
4
-
5
- cd "$(git rev-parse --show-toplevel)"
6
-
7
- IMAGE='cyberark/conjur-cli'
8
-
9
- function tag_and_push() {
10
- local image="$1"
11
- local tag="$2"
12
- local description="$3"
13
-
14
- echo "TAG = $tag, $description"
15
-
16
- docker tag "$image" "$image:$tag"
17
- docker push "$image:$tag"
18
- }
19
-
20
- version_tag="5-$(cat VERSION)"
21
-
22
- tag_and_push $IMAGE '5' 'latest image'
23
- tag_and_push $IMAGE '5-latest' 'same as "5"'
24
- tag_and_push $IMAGE $version_tag 'version-specific image'
25
-
26
- # push to legacy `conjurinc/cli5` tag
27
- docker tag "$IMAGE" conjurinc/cli5:latest
28
- docker push conjurinc/cli5:latest
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ readonly REGISTRY="cyberark"
6
+ readonly INTERNAL_REGISTRY="registry2.itci.conjur.net"
7
+ readonly VERSION="$(cat VERSION)"
8
+ readonly VERSION_TAG="5-${VERSION}"
9
+ readonly image_name="conjur-cli"
10
+ readonly full_image_name="${REGISTRY}/${image_name}:latest"
11
+
12
+ readonly TAGS=(
13
+ "5"
14
+ "5-latest"
15
+ "$VERSION_TAG"
16
+ )
17
+
18
+ # fetching tags is required for git_description to work
19
+ git fetch --tags
20
+ git_description=$(git describe)
21
+
22
+ # if it’s not a tagged commit, VERSION will have extra junk (i.e. -g666c4b2), so we won’t publish that commit
23
+ # only when tag matches the VERSION, push VERSION and latest releases
24
+ # and x and x.y releases
25
+ #Ex: v5-6.2.1
26
+ if [ "${git_description}" = "v${VERSION}" ]; then
27
+ echo "Revision ${git_description} matches version ${VERSION} exactly. Pushing to Dockerhub..."
28
+
29
+ for tag in "${TAGS[@]}"; do
30
+ echo "Tagging and pushing ${REGISTRY}/${image_name}:${tag}"
31
+
32
+ # push to dockerhub
33
+ docker tag "${full_image_name}" "${REGISTRY}/${image_name}:${tag}"
34
+ docker push "${REGISTRY}/${image_name}:${tag}"
35
+
36
+ # push to internal registry
37
+ # necessary because some cyberark teams/networks can't pull from dockerhub
38
+ docker tag "${full_image_name}" "${INTERNAL_REGISTRY}/${image_name}:${tag}"
39
+ docker push "${INTERNAL_REGISTRY}/${image_name}:${tag}"
40
+
41
+ done
42
+
43
+ # push to legacy `conjurinc/cli5` tag
44
+ docker tag "${full_image_name}" conjurinc/cli5:latest
45
+ docker push conjurinc/cli5:latest
46
+ fi
data/spec/authn_spec.rb CHANGED
@@ -37,11 +37,11 @@ describe Conjur::Authn do
37
37
  allow(ENV).to receive(:[]).with("CONJUR_AUTHN_LOGIN").and_return "the-login"
38
38
  allow(ENV).to receive(:[]).with("CONJUR_AUTHN_API_KEY").and_return "the-api-key"
39
39
  end
40
-
40
+
41
41
  context "login and API key" do
42
42
  it "are used to authn" do
43
43
  expect(Conjur::Authn.get_credentials).to eq([ "the-login", "the-api-key" ])
44
-
44
+
45
45
  expect(api.username).to eq('the-login')
46
46
  expect(api.api_key).to eq('the-api-key')
47
47
  end
@@ -94,7 +94,7 @@ describe Conjur::Authn do
94
94
  before do
95
95
  allow(Conjur::Config).to receive(:[]).with(:netrc_path).and_return path
96
96
  end
97
-
97
+
98
98
  context "with specified netrc_path" do
99
99
  let(:path) { "/a/dummy/netrc/path" }
100
100
  it "consults Conjur::Config for netrc_path" do
@@ -102,7 +102,7 @@ describe Conjur::Authn do
102
102
  expect(Conjur::Authn.netrc).to eq(netrc)
103
103
  end
104
104
  end
105
-
105
+
106
106
  context "without specified netrc_path" do
107
107
  let(:path) { nil }
108
108
  it "uses default netrc path" do
@@ -10,14 +10,14 @@ describe Conjur::Command::Authn do
10
10
  describe_command "#{cmd}" do
11
11
  it "prompts for username and password and logs in the user" do
12
12
  expect(Conjur::Authn).to receive(:ask_for_credentials).with({}).and_return [ "the-user", "the-api-key" ]
13
-
13
+
14
14
  expect { invoke }.to write("Logged in")
15
15
  end
16
16
  end
17
17
  describe_command "#{cmd} -u the-user" do
18
18
  it "prompts for password and logs in the user" do
19
19
  expect(Conjur::Authn).to receive(:ask_for_credentials).with({username: 'the-user'}).and_return [ "the-user", "the-api-key" ]
20
-
20
+
21
21
  expect { invoke }.to write("Logged in")
22
22
  end
23
23
  end
@@ -9,13 +9,21 @@ describe Conjur::Command::Hosts, logged_in: true do
9
9
  expect(RestClient::Request).to receive(:execute).with({
10
10
  method: :head,
11
11
  url: "https://core.example.com/api/resources/#{account}/host/redis001",
12
- headers: {}
12
+ headers: {
13
+ authorization: "fakeauth",
14
+ },
15
+ username: "dknuth",
16
+ ssl_cert_store: cert_store
13
17
  }).and_return true
14
18
  expect(RestClient::Request).to receive(:execute).with({
15
19
  method: :put,
16
20
  url: "https://core.example.com/api/authn/#{account}/api_key?role=#{account}:host:redis001",
17
- headers: {},
18
- payload: ''
21
+ headers: {
22
+ authorization: "fakeauth",
23
+ },
24
+ payload: '',
25
+ username: "dknuth",
26
+ ssl_cert_store: cert_store
19
27
  }).and_return double(:response, body: 'new api key')
20
28
  end
21
29
 
@@ -23,5 +31,20 @@ describe Conjur::Command::Hosts, logged_in: true do
23
31
  invoke
24
32
  end
25
33
  end
34
+
35
+ describe_command 'host rotate_api_key --host non-existing' do
36
+ before do
37
+ expect(RestClient::Request).to receive(:execute).with({
38
+ method: :head,
39
+ url: "https://core.example.com/api/resources/#{account}/host/non-existing",
40
+ headers: {authorization: "fakeauth"},
41
+ username: username,
42
+ ssl_cert_store: cert_store
43
+ }).and_raise RestClient::ResourceNotFound
44
+ end
45
+ it 'rotate_api_key with non-existing --host option' do
46
+ expect { invoke }.to raise_error(GLI::CustomExit, /Host 'non-existing' not found/i)
47
+ end
48
+ end
26
49
  end
27
50
  end
@@ -1,49 +1,36 @@
1
1
  require 'spec_helper'
2
2
  require 'highline'
3
3
 
4
- GITHUB_FP = "SHA1 Fingerprint=CA:06:F5:6B:25:8B:7A:0D:4F:2B:05:47:09:39:47:86:51:15:19:84"
4
+ GITHUB_FP = "SHA1 Fingerprint=84:63:B3:A9:29:12:CC:FD:1D:31:47:05:98:9B:EC:13:99:37:D0:D7"
5
5
  GITHUB_CERT = <<EOF
6
6
  -----BEGIN CERTIFICATE-----
7
- MIIHQjCCBiqgAwIBAgIQCgYwQn9bvO1pVzllk7ZFHzANBgkqhkiG9w0BAQsFADB1
8
- MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
9
- d3cuZGlnaWNlcnQuY29tMTQwMgYDVQQDEytEaWdpQ2VydCBTSEEyIEV4dGVuZGVk
10
- IFZhbGlkYXRpb24gU2VydmVyIENBMB4XDTE4MDUwODAwMDAwMFoXDTIwMDYwMzEy
11
- MDAwMFowgccxHTAbBgNVBA8MFFByaXZhdGUgT3JnYW5pemF0aW9uMRMwEQYLKwYB
12
- BAGCNzwCAQMTAlVTMRkwFwYLKwYBBAGCNzwCAQITCERlbGF3YXJlMRAwDgYDVQQF
13
- Ewc1MTU3NTUwMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQG
14
- A1UEBxMNU2FuIEZyYW5jaXNjbzEVMBMGA1UEChMMR2l0SHViLCBJbmMuMRMwEQYD
15
- VQQDEwpnaXRodWIuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
16
- xjyq8jyXDDrBTyitcnB90865tWBzpHSbindG/XqYQkzFMBlXmqkzC+FdTRBYyneZ
17
- w5Pz+XWQvL+74JW6LsWNc2EF0xCEqLOJuC9zjPAqbr7uroNLghGxYf13YdqbG5oj
18
- /4x+ogEG3dF/U5YIwVr658DKyESMV6eoYV9mDVfTuJastkqcwero+5ZAKfYVMLUE
19
- sMwFtoTDJFmVf6JlkOWwsxp1WcQ/MRQK1cyqOoUFUgYylgdh3yeCDPeF22Ax8AlQ
20
- xbcaI+GwfQL1FB7Jy+h+KjME9lE/UpgV6Qt2R1xNSmvFCBWu+NFX6epwFP/JRbkM
21
- fLz0beYFUvmMgLtwVpEPSwIDAQABo4IDeTCCA3UwHwYDVR0jBBgwFoAUPdNQpdag
22
- re7zSmAKZdMh1Pj41g8wHQYDVR0OBBYEFMnCU2FmnV+rJfQmzQ84mqhJ6kipMCUG
23
- A1UdEQQeMByCCmdpdGh1Yi5jb22CDnd3dy5naXRodWIuY29tMA4GA1UdDwEB/wQE
24
- AwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwdQYDVR0fBG4wbDA0
25
- oDKgMIYuaHR0cDovL2NybDMuZGlnaWNlcnQuY29tL3NoYTItZXYtc2VydmVyLWcy
26
- LmNybDA0oDKgMIYuaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL3NoYTItZXYtc2Vy
27
- dmVyLWcyLmNybDBLBgNVHSAERDBCMDcGCWCGSAGG/WwCATAqMCgGCCsGAQUFBwIB
28
- FhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BTMAcGBWeBDAEBMIGIBggrBgEF
29
- BQcBAQR8MHowJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBS
30
- BggrBgEFBQcwAoZGaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0
31
- U0hBMkV4dGVuZGVkVmFsaWRhdGlvblNlcnZlckNBLmNydDAMBgNVHRMBAf8EAjAA
32
- MIIBfgYKKwYBBAHWeQIEAgSCAW4EggFqAWgAdgCkuQmQtBhYFIe7E6LMZ3AKPDWY
33
- BPkb37jjd80OyA3cEAAAAWNBYm0KAAAEAwBHMEUCIQDRZp38cTWsWH2GdBpe/uPT
34
- Wnsu/m4BEC2+dIcvSykZYgIgCP5gGv6yzaazxBK2NwGdmmyuEFNSg2pARbMJlUFg
35
- U5UAdgBWFAaaL9fC7NP14b1Esj7HRna5vJkRXMDvlJhV1onQ3QAAAWNBYm0tAAAE
36
- AwBHMEUCIQCi7omUvYLm0b2LobtEeRAYnlIo7n6JxbYdrtYdmPUWJQIgVgw1AZ51
37
- vK9ENinBg22FPxb82TvNDO05T17hxXRC2IYAdgC72d+8H4pxtZOUI5eqkntHOFeV
38
- CqtS6BqQlmQ2jh7RhQAAAWNBYm3fAAAEAwBHMEUCIQChzdTKUU2N+XcqcK0OJYrN
39
- 8EYynloVxho4yPk6Dq3EPgIgdNH5u8rC3UcslQV4B9o0a0w204omDREGKTVuEpxG
40
- eOQwDQYJKoZIhvcNAQELBQADggEBAHAPWpanWOW/ip2oJ5grAH8mqQfaunuCVE+v
41
- ac+88lkDK/LVdFgl2B6kIHZiYClzKtfczG93hWvKbST4NRNHP9LiaQqdNC17e5vN
42
- HnXVUGw+yxyjMLGqkgepOnZ2Rb14kcTOGp4i5AuJuuaMwXmCo7jUwPwfLe1NUlVB
43
- Kqg6LK0Hcq4K0sZnxE8HFxiZ92WpV2AVWjRMEc/2z2shNoDvxvFUYyY1Oe67xINk
44
- myQKc+ygSBZzyLnXSFVWmHr3u5dcaaQGGAR42v6Ydr4iL38Hd4dOiBma+FXsXBIq
45
- WUjbST4VXmdaol7uzFMojA4zkxQDZAvF5XgJlAFadfySna/teik=
46
- -----END CERTIFICATE-----
7
+ MIIFBjCCBK2gAwIBAgIQDovzdw2S0Zbwu2H5PEFmvjAKBggqhkjOPQQDAjBnMQsw
8
+ CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xPzA9BgNVBAMTNkRp
9
+ Z2lDZXJ0IEhpZ2ggQXNzdXJhbmNlIFRMUyBIeWJyaWQgRUNDIFNIQTI1NiAyMDIw
10
+ IENBMTAeFw0yMTAzMjUwMDAwMDBaFw0yMjAzMzAyMzU5NTlaMGYxCzAJBgNVBAYT
11
+ AlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2Nv
12
+ MRUwEwYDVQQKEwxHaXRIdWIsIEluYy4xEzARBgNVBAMTCmdpdGh1Yi5jb20wWTAT
13
+ BgcqhkjOPQIBBggqhkjOPQMBBwNCAASt9vd1sdNJVApdEHG93CUGSyIcoiNOn6H+
14
+ udCMvTm8DCPHz5GmkFrYRasDE77BI3q5xMidR/aW4Ll2a1A2ZvcNo4IDOjCCAzYw
15
+ HwYDVR0jBBgwFoAUUGGmoNI1xBEqII0fD6xC8M0pz0swHQYDVR0OBBYEFCexfp+7
16
+ JplQ2PPDU1v+MRawux5yMCUGA1UdEQQeMByCCmdpdGh1Yi5jb22CDnd3dy5naXRo
17
+ dWIuY29tMA4GA1UdDwEB/wQEAwIHgDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB
18
+ BQUHAwIwgbEGA1UdHwSBqTCBpjBRoE+gTYZLaHR0cDovL2NybDMuZGlnaWNlcnQu
19
+ Y29tL0RpZ2lDZXJ0SGlnaEFzc3VyYW5jZVRMU0h5YnJpZEVDQ1NIQTI1NjIwMjBD
20
+ QTEuY3JsMFGgT6BNhktodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRI
21
+ aWdoQXNzdXJhbmNlVExTSHlicmlkRUNDU0hBMjU2MjAyMENBMS5jcmwwPgYDVR0g
22
+ BDcwNTAzBgZngQwBAgIwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpY2Vy
23
+ dC5jb20vQ1BTMIGSBggrBgEFBQcBAQSBhTCBgjAkBggrBgEFBQcwAYYYaHR0cDov
24
+ L29jc3AuZGlnaWNlcnQuY29tMFoGCCsGAQUFBzAChk5odHRwOi8vY2FjZXJ0cy5k
25
+ aWdpY2VydC5jb20vRGlnaUNlcnRIaWdoQXNzdXJhbmNlVExTSHlicmlkRUNDU0hB
26
+ MjU2MjAyMENBMS5jcnQwDAYDVR0TAQH/BAIwADCCAQUGCisGAQQB1nkCBAIEgfYE
27
+ gfMA8QB2ACl5vvCeOTkh8FZzn2Old+W+V32cYAr4+U1dJlwlXceEAAABeGq/vRoA
28
+ AAQDAEcwRQIhAJ7miER//DRFnDJNn6uUhgau3WMt4vVfY5dGigulOdjXAiBIVCfR
29
+ xjK1v4F31+sVaKzyyO7JAa0fzDQM7skQckSYWQB3ACJFRQdZVSRWlj+hL/H3bYbg
30
+ IyZjrcBLf13Gg1xu4g8CAAABeGq/vTkAAAQDAEgwRgIhAJgAEkoJQRivBlwo7x67
31
+ 3oVsf1ip096WshZqmRCuL/JpAiEA3cX4rb3waLDLq4C48NSoUmcw56PwO/m2uwnQ
32
+ prb+yh0wCgYIKoZIzj0EAwIDRwAwRAIgK+Kv7G+/KkWkNZg3PcQFp866Z7G6soxo
33
+ a4etSZ+SRlYCIBSiXS20Wc+yjD111nPzvQUCfsP4+DKZ3K+2GKsERD6d
47
34
  EOF
48
35
 
49
36
  describe Conjur::Command::Init do
@@ -12,7 +12,8 @@ describe Conjur::Command::Users, logged_in: true do
12
12
  user: username,
13
13
  password: api_key,
14
14
  headers: { },
15
- payload: "new-password"
15
+ payload: "new-password",
16
+ ssl_cert_store: cert_store
16
17
  })
17
18
  end
18
19
 
@@ -40,7 +41,8 @@ describe Conjur::Command::Users, logged_in: true do
40
41
  user: username,
41
42
  password: api_key,
42
43
  headers: {},
43
- payload: ''
44
+ payload: '',
45
+ ssl_cert_store: cert_store
44
46
  }).and_return double(:response, body: 'new api key')
45
47
  expect(Conjur::Authn).to receive(:save_credentials).with({
46
48
  username: username,
@@ -52,5 +54,19 @@ describe Conjur::Command::Users, logged_in: true do
52
54
  invoke
53
55
  end
54
56
  end
57
+ describe_command 'user rotate_api_key --user non-existing' do
58
+ before do
59
+ expect(RestClient::Request).to receive(:execute).with({
60
+ method: :head,
61
+ url: "https://core.example.com/api/resources/#{account}/user/non-existing",
62
+ headers: {authorization: "fakeauth"},
63
+ username: username,
64
+ ssl_cert_store: cert_store
65
+ }).and_raise RestClient::ResourceNotFound
66
+ end
67
+ it 'rotate_api_key with non-existing --user option' do
68
+ expect { invoke }.to raise_error(GLI::CustomExit, /User 'non-existing' not found/i)
69
+ end
70
+ end
55
71
  end
56
72
  end
data/spec/spec_helper.rb CHANGED
@@ -4,8 +4,11 @@ require 'tempfile'
4
4
  require 'ostruct'
5
5
 
6
6
  require "simplecov"
7
- SimpleCov.start
8
-
7
+
8
+ SimpleCov.start do
9
+ command_name "#{ENV['RUBY_VERSION']}"
10
+ end
11
+
9
12
  def post_response(id, attributes = {})
10
13
  attributes[:id] = id
11
14
 
data/test.sh CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/bin/bash -ex
2
2
 
3
- : ${RUBY_VERSION=2.2.5}
3
+ : ${RUBY_VERSION=2.7}
4
4
 
5
5
  # My local RUBY_VERSION is set to ruby-#.#.# so this allows running locally.
6
6
  RUBY_VERSION=$(cut -d '-' -f 2 <<< $RUBY_VERSION)
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conjur-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.2.1
4
+ version: 6.2.5
5
5
  platform: ruby
6
6
  authors:
7
- - Rafal Rzepecki
8
- - Kevin Gilpin
7
+ - Conjur Maintainers
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2019-05-22 00:00:00.000000000 Z
11
+ date: 2021-09-29 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activesupport
@@ -45,6 +44,20 @@ dependencies:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
46
  version: '5.3'
47
+ - !ruby/object:Gem::Dependency
48
+ name: deep_merge
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '1.0'
48
61
  - !ruby/object:Gem::Dependency
49
62
  name: gli
50
63
  requirement: !ruby/object:Gem::Requirement
@@ -65,14 +78,14 @@ dependencies:
65
78
  requirements:
66
79
  - - "~>"
67
80
  - !ruby/object:Gem::Version
68
- version: '1.7'
81
+ version: '2.0'
69
82
  type: :runtime
70
83
  prerelease: false
71
84
  version_requirements: !ruby/object:Gem::Requirement
72
85
  requirements:
73
86
  - - "~>"
74
87
  - !ruby/object:Gem::Version
75
- version: '1.7'
88
+ version: '2.0'
76
89
  - !ruby/object:Gem::Dependency
77
90
  name: netrc
78
91
  requirement: !ruby/object:Gem::Requirement
@@ -88,19 +101,19 @@ dependencies:
88
101
  - !ruby/object:Gem::Version
89
102
  version: '0.10'
90
103
  - !ruby/object:Gem::Dependency
91
- name: deep_merge
104
+ name: table_print
92
105
  requirement: !ruby/object:Gem::Requirement
93
106
  requirements:
94
107
  - - "~>"
95
108
  - !ruby/object:Gem::Version
96
- version: '1.0'
109
+ version: '1.5'
97
110
  type: :runtime
98
111
  prerelease: false
99
112
  version_requirements: !ruby/object:Gem::Requirement
100
113
  requirements:
101
114
  - - "~>"
102
115
  - !ruby/object:Gem::Version
103
- version: '1.0'
116
+ version: '1.5'
104
117
  - !ruby/object:Gem::Dependency
105
118
  name: xdg
106
119
  requirement: !ruby/object:Gem::Requirement
@@ -116,35 +129,7 @@ dependencies:
116
129
  - !ruby/object:Gem::Version
117
130
  version: 2.2.3
118
131
  - !ruby/object:Gem::Dependency
119
- name: table_print
120
- requirement: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '1.5'
125
- type: :runtime
126
- prerelease: false
127
- version_requirements: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '1.5'
132
- - !ruby/object:Gem::Dependency
133
- name: rspec
134
- requirement: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '3.0'
139
- type: :development
140
- prerelease: false
141
- version_requirements: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '3.0'
146
- - !ruby/object:Gem::Dependency
147
- name: simplecov
132
+ name: addressable
148
133
  requirement: !ruby/object:Gem::Requirement
149
134
  requirements:
150
135
  - - ">="
@@ -186,19 +171,19 @@ dependencies:
186
171
  - !ruby/object:Gem::Version
187
172
  version: '1.0'
188
173
  - !ruby/object:Gem::Dependency
189
- name: rake
174
+ name: cucumber-api
190
175
  requirement: !ruby/object:Gem::Requirement
191
176
  requirements:
192
- - - "~>"
177
+ - - ">="
193
178
  - !ruby/object:Gem::Version
194
- version: '10.0'
179
+ version: '0'
195
180
  type: :development
196
181
  prerelease: false
197
182
  version_requirements: !ruby/object:Gem::Requirement
198
183
  requirements:
199
- - - "~>"
184
+ - - ">="
200
185
  - !ruby/object:Gem::Version
201
- version: '10.0'
186
+ version: '0'
202
187
  - !ruby/object:Gem::Dependency
203
188
  name: io-grab
204
189
  requirement: !ruby/object:Gem::Requirement
@@ -228,7 +213,7 @@ dependencies:
228
213
  - !ruby/object:Gem::Version
229
214
  version: '0'
230
215
  - !ruby/object:Gem::Dependency
231
- name: cucumber-api
216
+ name: pry-byebug
232
217
  requirement: !ruby/object:Gem::Requirement
233
218
  requirements:
234
219
  - - ">="
@@ -242,37 +227,56 @@ dependencies:
242
227
  - !ruby/object:Gem::Version
243
228
  version: '0'
244
229
  - !ruby/object:Gem::Dependency
245
- name: addressable
230
+ name: rake
246
231
  requirement: !ruby/object:Gem::Requirement
247
232
  requirements:
248
- - - ">="
233
+ - - "~>"
249
234
  - !ruby/object:Gem::Version
250
- version: '0'
235
+ version: 12.3.3
251
236
  type: :development
252
237
  prerelease: false
253
238
  version_requirements: !ruby/object:Gem::Requirement
254
239
  requirements:
255
- - - ">="
240
+ - - "~>"
256
241
  - !ruby/object:Gem::Version
257
- version: '0'
242
+ version: 12.3.3
258
243
  - !ruby/object:Gem::Dependency
259
- name: pry-byebug
244
+ name: rspec
260
245
  requirement: !ruby/object:Gem::Requirement
261
246
  requirements:
262
- - - ">="
247
+ - - "~>"
263
248
  - !ruby/object:Gem::Version
264
- version: '0'
249
+ version: '3.0'
265
250
  type: :development
266
251
  prerelease: false
267
252
  version_requirements: !ruby/object:Gem::Requirement
268
253
  requirements:
269
- - - ">="
254
+ - - "~>"
270
255
  - !ruby/object:Gem::Version
271
- version: '0'
256
+ version: '3.0'
257
+ - !ruby/object:Gem::Dependency
258
+ name: simplecov
259
+ requirement: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - "~>"
262
+ - !ruby/object:Gem::Version
263
+ version: '0.17'
264
+ - - "<"
265
+ - !ruby/object:Gem::Version
266
+ version: '0.18'
267
+ type: :development
268
+ prerelease: false
269
+ version_requirements: !ruby/object:Gem::Requirement
270
+ requirements:
271
+ - - "~>"
272
+ - !ruby/object:Gem::Version
273
+ version: '0.17'
274
+ - - "<"
275
+ - !ruby/object:Gem::Version
276
+ version: '0.18'
272
277
  description:
273
278
  email:
274
- - rafal@conjur.net
275
- - kgilpin@conjur.net
279
+ - conj_maintainers@cyberark.com
276
280
  executables:
277
281
  - _conjur
278
282
  - conjur
@@ -280,23 +284,32 @@ extensions: []
280
284
  extra_rdoc_files: []
281
285
  files:
282
286
  - ".dockerignore"
287
+ - ".github/CODEOWNERS"
288
+ - ".github/ISSUE_TEMPLATE/bug.md"
289
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
290
+ - ".github/PULL_REQUEST_TEMPLATE.md"
283
291
  - ".gitignore"
292
+ - ".gitleaks.toml"
284
293
  - ".kateproject"
285
294
  - ".overcommit.yml"
286
295
  - ".project"
287
296
  - ".rubocop.yml"
288
297
  - APPLIANCE_VERSION
289
298
  - CHANGELOG.md
299
+ - CONTRIBUTING.md
290
300
  - Gemfile
291
301
  - Humanfile.md
292
302
  - Jenkinsfile
293
- - LICENSE.md
303
+ - LICENSE
304
+ - NOTICES.txt
294
305
  - PUBLISH.md
295
306
  - README.md
296
307
  - Rakefile
308
+ - SECURITY.md
297
309
  - VERSION
298
310
  - bin/_conjur
299
311
  - bin/conjur
312
+ - bin/parse-changelog.sh
300
313
  - build-deb.sh
301
314
  - build-standalone
302
315
  - ci/cli-test.sh
@@ -304,6 +317,7 @@ files:
304
317
  - ci/package.sh
305
318
  - ci/publish.sh
306
319
  - ci/secrets/publish.yml
320
+ - ci/submit-coverage
307
321
  - ci/test.sh
308
322
  - ci/wait_for_server.sh
309
323
  - conjur-cli.gemspec
@@ -398,9 +412,9 @@ files:
398
412
  - spec/spec_helper.rb
399
413
  - standalone.entrypoint
400
414
  - test.sh
401
- homepage: https://github.com/conjurinc/cli-ruby
415
+ homepage: https://github.com/cyberark/conjur-cli
402
416
  licenses:
403
- - MIT
417
+ - Apache 2.0
404
418
  metadata: {}
405
419
  post_install_message:
406
420
  rdoc_options: []
@@ -417,7 +431,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
417
431
  - !ruby/object:Gem::Version
418
432
  version: '0'
419
433
  requirements: []
420
- rubygems_version: 3.0.3
434
+ rubygems_version: 3.1.6
421
435
  signing_key:
422
436
  specification_version: 4
423
437
  summary: Conjur command line interface