seira 0.8.0 → 0.8.2

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: 72e2d8ac0c72c8e4c7689f6997b7c460011cbceaf921a5935196c2c354e57ac7
4
- data.tar.gz: de987469fe8decf1a4a8ac4206857c6dd5a871547a4ee8875717fa4167cdc7ec
3
+ metadata.gz: 0cedfa6841e5eaab7d04673e58182a6eeed7309999ebca2571fba54a2da8379e
4
+ data.tar.gz: ac45a36439ed8e56e856f6ecf917d848606b14b85752e034bacd86def1a90241
5
5
  SHA512:
6
- metadata.gz: 36b4e0d1dde0dad8b7d9ae57306726516739184f90aeb0cb85657fc8b2b5b7ea93c08937ea8e2679be6c9ebccf0500b81f7e83e2764d6f6cdba06881e9f2b931
7
- data.tar.gz: 032fa962c1631a249bd1a1b6a9e113e16b4f4198de3957afe60a8777441c695eada40cbc910d7734ce8d53d0e229623a5914a05f46d8f5554bafa1f7976f63e3
6
+ metadata.gz: '0946ca82098b4c329f04d91a6b8aefd831baa887ba638712e8779ded8494aac3883c9a09e79c49aa916102a758fab822e89ef42a0ed53a36cf0cb7b1f70bc10b'
7
+ data.tar.gz: 9fd9290e4778264498de98cdf37a55fe8bb67cd431c76410c6cc25fe0ea5fef120415a9dad4101fecb6828c1816daab254142b183c47cc41fc135b24a7ef1891
@@ -5,18 +5,16 @@ on: push
5
5
  jobs:
6
6
  test:
7
7
 
8
- runs-on: ubuntu-20.04
8
+ runs-on: ubuntu-22.04
9
9
 
10
10
  strategy:
11
11
  matrix:
12
- ruby-version: ['2.6.3', '2.7.2']
12
+ ruby-version: ['2.6.3', '2.7.4']
13
13
 
14
14
  steps:
15
- # Pin to this commit: v2
16
- - uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
15
+ - uses: actions/checkout@v3.5.3
17
16
  - name: Set up Ruby
18
- # Pin to this commit, v1.82.0
19
- uses: ruby/setup-ruby@5e4f0a10bfc39c97cd5358121291e27e5d97e09b
17
+ uses: ruby/setup-ruby@v1.152.0
20
18
  with:
21
19
  ruby-version: ${{ matrix.ruby-version }}
22
20
  bundler-cache: true # runs 'bundle install' and caches installed gems automatically
data/.rubocop.yml CHANGED
@@ -2,7 +2,7 @@ AllCops:
2
2
  Exclude:
3
3
  - bin/**/*
4
4
 
5
- TargetRubyVersion: 2.5.3
5
+ TargetRubyVersion: 2.7.7
6
6
 
7
7
  Rails:
8
8
  Enabled: false
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.3
1
+ 2.7.7
@@ -1,8 +1,8 @@
1
1
  module Seira
2
2
  module Teleport
3
3
  class Request
4
- def initialize(role, reviewer: nil, context: nil)
5
- @role = role
4
+ def initialize(roles, reviewer: nil, context: nil)
5
+ @roles = roles.kind_of?(Array) ? roles.join(",") : roles
6
6
  @reviewer = reviewer
7
7
  @context = context
8
8
  end
@@ -12,7 +12,7 @@ module Seira
12
12
  end
13
13
 
14
14
  def cmd
15
- cmd = "request create --roles '#{@role}'"
15
+ cmd = "request create --roles '#{@roles}'"
16
16
  cmd += " --reason '#{reason}'"
17
17
  cmd += " --reviewers #{@reviewer}" unless @reviewer.nil?
18
18
 
@@ -3,13 +3,13 @@ module Seira
3
3
  class RoleRequirement
4
4
  include Comparable
5
5
 
6
- attr_reader :commands, :category, :role
6
+ attr_reader :commands, :category, :roles
7
7
 
8
8
  def initialize(requirement)
9
9
  @requirement = requirement
10
10
  @category = requirement['category']
11
11
  @commands = requirement['commands']
12
- @role = requirement['role']
12
+ @roles = requirement['roles']
13
13
  end
14
14
 
15
15
  def matches?(category, command)
@@ -50,7 +50,7 @@ module Seira
50
50
  if out == ''
51
51
  {}
52
52
  else
53
- JSON.parse(cmd.invoke(clean_output: true, return_output: true))
53
+ JSON.parse(out)
54
54
  end
55
55
  end
56
56
  end
data/lib/seira/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Seira
2
- VERSION = "0.8.0".freeze
2
+ VERSION = "0.8.2".freeze
3
3
  end
data/lib/seira.rb CHANGED
@@ -119,12 +119,16 @@ module Seira
119
119
  exit(1)
120
120
  end
121
121
 
122
- role_requirements = settings.teleport_role_requirements(cluster)
123
- required_role = role_requirements.filter { |rr| rr.matches?(category, action) }.sort.first&.role
124
- status = Seira::Teleport::Status.new
122
+ if settings.use_teleport?(cluster)
123
+ role_requirements = settings.teleport_role_requirements(cluster)
124
+ filtered_requirements = role_requirements.filter { |rr| rr.matches?(category, action) }
125
+ required_roles = filtered_requirements.map(&:roles).reduce([]) { |a, b| a + b }.uniq
125
126
 
126
- unless required_role.nil? || status.has_role?(required_role)
127
- Seira::Teleport::Request.new(required_role, reviewer: ENV['TELEPORT_REVIEWER'], context: passed_context).invoke
127
+ status = Seira::Teleport::Status.new
128
+
129
+ unless required_roles.empty? || required_roles.any? { |r| status.has_role?(r) }
130
+ Seira::Teleport::Request.new(required_roles, reviewer: ENV['TELEPORT_REVIEWER'], context: passed_context).invoke
131
+ end
128
132
  end
129
133
 
130
134
  if category == 'cluster'
data/seira.gemspec CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_runtime_dependency "colorize"
25
25
 
26
26
  spec.add_development_dependency "bundler", "~> 2"
27
- spec.add_development_dependency "rake", "~> 10.0"
27
+ spec.add_development_dependency "rake", "~> 13.0"
28
28
  spec.add_development_dependency "rspec", "~> 3.0"
29
- spec.add_development_dependency "rubocop", "0.54.0"
30
- end
29
+ spec.add_development_dependency "rubocop", "0.93.1"
30
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seira
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Ringwelski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-09 00:00:00.000000000 Z
11
+ date: 2023-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '13.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '13.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 0.54.0
89
+ version: 0.93.1
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - '='
95
95
  - !ruby/object:Gem::Version
96
- version: 0.54.0
96
+ version: 0.93.1
97
97
  description: An opinionated library for building applications on Kubernetes.
98
98
  email:
99
99
  - scott@joinhandshake.com
@@ -163,7 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
163
  - !ruby/object:Gem::Version
164
164
  version: '0'
165
165
  requirements: []
166
- rubygems_version: 3.0.3
166
+ rubygems_version: 3.1.6
167
167
  signing_key:
168
168
  specification_version: 4
169
169
  summary: An opinionated library for building applications on Kubernetes.