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