seira 0.8.1 → 0.8.3
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/.github/workflows/trunk.yml +21 -0
- data/.ruby-version +1 -1
- data/.trunk/.gitignore +8 -0
- data/.trunk/configs/.markdownlint.yaml +10 -0
- data/.trunk/configs/.shellcheckrc +7 -0
- data/.trunk/configs/.yamllint.yaml +10 -0
- data/.trunk/trunk.yaml +34 -0
- 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 +15 -4
- data/seira.gemspec +3 -3
- metadata +13 -9
- data/.default-rubocop.yml +0 -1769
- data/.rubocop.yml +0 -112
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e10cda9c969f7e1401f200a538d380f397c1061f4040bef400961a9b74b28b93
|
4
|
+
data.tar.gz: 66f4790fa1d7fb8b5ea58d7bb798206cb375d2329b12a029714003f45633e9af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0534e0ab281bdd9667f8bae85a72464dadc042d3bed0a79f784251df7a3e15b2fd76809efd19fd1edcee5b78697ff8392245a347a98ee2bd451c6d7d19a341d
|
7
|
+
data.tar.gz: e85b638eeef614999f8c67dc40933f43ce61e2180fe020fb81cc22e79c67a1a2de6b57c1904062c57fb80c3c7c57264c129d1d75a333876b423fab629d355a81
|
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
|
@@ -0,0 +1,21 @@
|
|
1
|
+
name: Trunk Check
|
2
|
+
on: [pull_request]
|
3
|
+
concurrency:
|
4
|
+
group: ${{ github.head_ref || github.run_id }}
|
5
|
+
cancel-in-progress: true
|
6
|
+
|
7
|
+
permissions: read-all
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
trunk_check:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
permissions:
|
13
|
+
checks: write # For trunk to post annotations
|
14
|
+
contents: read # For repo checkout
|
15
|
+
|
16
|
+
steps:
|
17
|
+
- name: Checkout
|
18
|
+
uses: actions/checkout@v3
|
19
|
+
|
20
|
+
- name: Trunk Check
|
21
|
+
uses: trunk-io/trunk-action@v1.1.7
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7.7
|
data/.trunk/.gitignore
ADDED
data/.trunk/trunk.yaml
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
version: 0.1
|
2
|
+
cli:
|
3
|
+
version: 1.14.1
|
4
|
+
plugins:
|
5
|
+
sources:
|
6
|
+
- id: trunk
|
7
|
+
ref: v1.2.1
|
8
|
+
uri: https://github.com/trunk-io/plugins
|
9
|
+
runtimes:
|
10
|
+
enabled:
|
11
|
+
- go@1.19.5
|
12
|
+
- node@18.12.1
|
13
|
+
- python@3.10.8
|
14
|
+
- ruby@3.1.4
|
15
|
+
lint:
|
16
|
+
enabled:
|
17
|
+
- actionlint@1.6.25
|
18
|
+
- checkov@2.4.6
|
19
|
+
- git-diff-check
|
20
|
+
- markdownlint@0.35.0
|
21
|
+
- prettier@3.0.2
|
22
|
+
- shellcheck@0.9.0
|
23
|
+
- shfmt@3.6.0
|
24
|
+
- trivy@0.44.1
|
25
|
+
- trufflehog@3.48.0
|
26
|
+
- yamllint@1.32.0
|
27
|
+
disabled:
|
28
|
+
- rubocop@1.39.0
|
29
|
+
actions:
|
30
|
+
enabled:
|
31
|
+
- trunk-announce
|
32
|
+
- trunk-check-pre-push
|
33
|
+
- trunk-fmt-pre-commit
|
34
|
+
- trunk-upgrade-available
|
@@ -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,20 @@ 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
|
-
|
129
|
+
unless required_roles.empty? || required_roles.any? { |r| status.has_role?(r) }
|
130
|
+
reviewer = ENV['TELEPORT_REVIEWER']
|
131
|
+
args.each do |arg|
|
132
|
+
if arg.start_with? '--reviewer='
|
133
|
+
reviewer = arg.split('=')[1]
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
Seira::Teleport::Request.new(required_roles, reviewer: reviewer, context: passed_context).invoke
|
129
138
|
end
|
130
139
|
end
|
131
140
|
|
@@ -178,7 +187,9 @@ module Seira
|
|
178
187
|
|
179
188
|
# The first arg must always be the cluster. This ensures commands are not run by
|
180
189
|
# accident on the wrong kubernetes cluster or gcloud project.
|
181
|
-
exit(1) unless Seira::Cluster.new(action: nil, args: nil, context: nil, settings: settings).switch(
|
190
|
+
exit(1) unless Seira::Cluster.new(action: nil, args: nil, context: nil, settings: settings).switch(
|
191
|
+
target_cluster: cluster, verbose: false
|
192
|
+
)
|
182
193
|
exit(0) if simple_cluster_change?
|
183
194
|
end
|
184
195
|
|
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.3
|
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-23 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
|
@@ -102,13 +102,17 @@ executables:
|
|
102
102
|
extensions: []
|
103
103
|
extra_rdoc_files: []
|
104
104
|
files:
|
105
|
-
- ".default-rubocop.yml"
|
106
105
|
- ".github/workflows/ruby.yml"
|
106
|
+
- ".github/workflows/trunk.yml"
|
107
107
|
- ".gitignore"
|
108
108
|
- ".hound.yml"
|
109
109
|
- ".rspec"
|
110
|
-
- ".rubocop.yml"
|
111
110
|
- ".ruby-version"
|
111
|
+
- ".trunk/.gitignore"
|
112
|
+
- ".trunk/configs/.markdownlint.yaml"
|
113
|
+
- ".trunk/configs/.shellcheckrc"
|
114
|
+
- ".trunk/configs/.yamllint.yaml"
|
115
|
+
- ".trunk/trunk.yaml"
|
112
116
|
- Gemfile
|
113
117
|
- LICENSE
|
114
118
|
- README.md
|
@@ -163,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
163
167
|
- !ruby/object:Gem::Version
|
164
168
|
version: '0'
|
165
169
|
requirements: []
|
166
|
-
rubygems_version: 3.
|
170
|
+
rubygems_version: 3.1.6
|
167
171
|
signing_key:
|
168
172
|
specification_version: 4
|
169
173
|
summary: An opinionated library for building applications on Kubernetes.
|