seira 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +4 -6
- data/.rubocop.yml +1 -1
- data/.ruby-version +1 -1
- data/lib/seira/teleport/request.rb +3 -3
- data/lib/seira/teleport/role_requirements.rb +2 -2
- data/lib/seira/teleport/status.rb +1 -1
- data/lib/seira/version.rb +1 -1
- data/lib/seira.rb +5 -3
- data/seira.gemspec +3 -3
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0cedfa6841e5eaab7d04673e58182a6eeed7309999ebca2571fba54a2da8379e
|
4
|
+
data.tar.gz: ac45a36439ed8e56e856f6ecf917d848606b14b85752e034bacd86def1a90241
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '0946ca82098b4c329f04d91a6b8aefd831baa887ba638712e8779ded8494aac3883c9a09e79c49aa916102a758fab822e89ef42a0ed53a36cf0cb7b1f70bc10b'
|
7
|
+
data.tar.gz: 9fd9290e4778264498de98cdf37a55fe8bb67cd431c76410c6cc25fe0ea5fef120415a9dad4101fecb6828c1816daab254142b183c47cc41fc135b24a7ef1891
|
data/.github/workflows/ruby.yml
CHANGED
@@ -5,18 +5,16 @@ on: push
|
|
5
5
|
jobs:
|
6
6
|
test:
|
7
7
|
|
8
|
-
runs-on: ubuntu-
|
8
|
+
runs-on: ubuntu-22.04
|
9
9
|
|
10
10
|
strategy:
|
11
11
|
matrix:
|
12
|
-
ruby-version: ['2.6.3', '2.7.
|
12
|
+
ruby-version: ['2.6.3', '2.7.4']
|
13
13
|
|
14
14
|
steps:
|
15
|
-
|
16
|
-
- uses: actions/checkout@5a4ac9002d0be2fb38bd78e4b4dbde5606d7042f
|
15
|
+
- uses: actions/checkout@v3.5.3
|
17
16
|
- name: Set up Ruby
|
18
|
-
|
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
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7.7
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Seira
|
2
2
|
module Teleport
|
3
3
|
class Request
|
4
|
-
def initialize(
|
5
|
-
@
|
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 '#{@
|
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, :
|
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
|
-
@
|
12
|
+
@roles = requirement['roles']
|
13
13
|
end
|
14
14
|
|
15
15
|
def matches?(category, command)
|
data/lib/seira/version.rb
CHANGED
data/lib/seira.rb
CHANGED
@@ -121,11 +121,13 @@ module Seira
|
|
121
121
|
|
122
122
|
if settings.use_teleport?(cluster)
|
123
123
|
role_requirements = settings.teleport_role_requirements(cluster)
|
124
|
-
|
124
|
+
filtered_requirements = role_requirements.filter { |rr| rr.matches?(category, action) }
|
125
|
+
required_roles = filtered_requirements.map(&:roles).reduce([]) { |a, b| a + b }.uniq
|
126
|
+
|
125
127
|
status = Seira::Teleport::Status.new
|
126
128
|
|
127
|
-
unless
|
128
|
-
Seira::Teleport::Request.new(
|
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
|
129
131
|
end
|
130
132
|
end
|
131
133
|
|
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", "~>
|
27
|
+
spec.add_development_dependency "rake", "~> 13.0"
|
28
28
|
spec.add_development_dependency "rspec", "~> 3.0"
|
29
|
-
spec.add_development_dependency "rubocop", "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.
|
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-
|
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: '
|
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: '
|
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.
|
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.
|
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.
|
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.
|