seira 0.8.1 → 0.8.2
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/.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.
|