aws_security_viz 0.2.5.pre.alpha.pre.35 → 1.0.0

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.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +59 -1
  3. data/README.md +120 -79
  4. data/exe/aws_security_viz +4 -40
  5. data/lib/aws_security_viz/aws_config.rb +80 -0
  6. data/lib/aws_security_viz/cli.rb +151 -0
  7. data/lib/aws_security_viz/cli_guard.rb +39 -0
  8. data/lib/aws_security_viz/directed_graph.rb +72 -0
  9. data/lib/aws_security_viz/ec2/security_groups.rb +74 -0
  10. data/lib/aws_security_viz/exclusions.rb +18 -0
  11. data/lib/aws_security_viz/export/html/viewer.html +222 -0
  12. data/lib/aws_security_viz/graph.rb +93 -0
  13. data/lib/aws_security_viz/graph_filter.rb +20 -0
  14. data/lib/aws_security_viz/logging.rb +18 -0
  15. data/lib/aws_security_viz/model.rb +87 -0
  16. data/lib/aws_security_viz/obfuscation.rb +45 -0
  17. data/lib/{opts.yml.sample → aws_security_viz/opts.yml.sample} +2 -0
  18. data/lib/aws_security_viz/port_label.rb +44 -0
  19. data/lib/aws_security_viz/provider/ec2.rb +84 -0
  20. data/lib/aws_security_viz/provider/json.rb +17 -0
  21. data/lib/aws_security_viz/renderer/all.rb +49 -0
  22. data/lib/aws_security_viz/renderer/graphviz.rb +119 -0
  23. data/lib/aws_security_viz/renderer/html.rb +46 -0
  24. data/lib/aws_security_viz/renderer/json.rb +29 -0
  25. data/lib/aws_security_viz/renderer/mermaid.rb +105 -0
  26. data/lib/aws_security_viz/risk.rb +18 -0
  27. data/lib/aws_security_viz/vendor/cytoscape/LICENSE +19 -0
  28. data/lib/aws_security_viz/vendor/cytoscape/README.md +15 -0
  29. data/lib/aws_security_viz/vendor/cytoscape/cytoscape.min.js +31 -0
  30. data/lib/aws_security_viz/version.rb +5 -0
  31. data/lib/aws_security_viz.rb +44 -37
  32. metadata +39 -232
  33. data/.dockerignore +0 -7
  34. data/.editorconfig +0 -17
  35. data/.github/dependabot.yml +0 -15
  36. data/.github/workflows/ruby.yml +0 -34
  37. data/.github/workflows/rubygem.yml +0 -29
  38. data/.github/workflows/rubygem_release.yml +0 -27
  39. data/.gitignore +0 -43
  40. data/.tool-versions +0 -1
  41. data/CODE_OF_CONDUCT.md +0 -46
  42. data/Dockerfile +0 -9
  43. data/Gemfile +0 -3
  44. data/Rakefile +0 -15
  45. data/Vagrantfile +0 -18
  46. data/aws_security_viz.gemspec +0 -40
  47. data/config/boot.rb +0 -4
  48. data/images/sample.png +0 -0
  49. data/lib/aws_config.rb +0 -44
  50. data/lib/color_picker.rb +0 -245
  51. data/lib/debug/parse_log.rb +0 -26
  52. data/lib/debug_graph.rb +0 -29
  53. data/lib/ec2/ip_permission.rb +0 -35
  54. data/lib/ec2/security_groups.rb +0 -78
  55. data/lib/ec2/traffic.rb +0 -32
  56. data/lib/exclusions.rb +0 -14
  57. data/lib/export/html/navigator.html +0 -84
  58. data/lib/export/html/view.html +0 -163
  59. data/lib/graph.rb +0 -45
  60. data/lib/graph_filter.rb +0 -38
  61. data/lib/provider/ec2.rb +0 -105
  62. data/lib/provider/json.rb +0 -104
  63. data/lib/renderer/all.rb +0 -18
  64. data/lib/renderer/graphviz.rb +0 -37
  65. data/lib/renderer/json.rb +0 -23
  66. data/lib/renderer/navigator.rb +0 -33
  67. data/lib/version.rb +0 -3
  68. data/spec/color_picker_spec.rb +0 -20
  69. data/spec/graph_filter_spec.rb +0 -85
  70. data/spec/integration/aws_expected.json +0 -1
  71. data/spec/integration/dummy.dot +0 -50
  72. data/spec/integration/dummy.json +0 -64
  73. data/spec/integration/expected.json +0 -1
  74. data/spec/integration/navigator.json +0 -1
  75. data/spec/integration/visualize_aws_spec.rb +0 -96
  76. data/spec/spec_helper.rb +0 -36
  77. data/spec/visualize_aws_spec.rb +0 -194
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AwsSecurityViz
4
+ VERSION = "1.0.0"
5
+ end
@@ -1,43 +1,50 @@
1
- require_relative 'ec2/security_groups'
2
- require_relative 'provider/json'
3
- require_relative 'provider/ec2'
4
- require_relative 'renderer/all'
5
- require_relative 'graph'
6
- require_relative 'graph_filter'
7
- require_relative 'exclusions'
8
- require_relative 'debug_graph'
9
- require_relative 'color_picker'
10
- require_relative 'aws_config'
1
+ # frozen_string_literal: true
11
2
 
12
- class VisualizeAws
13
- def initialize(config, options={})
14
- @options = options
15
- @config = config
16
- provider = options[:source_file].nil? ? Ec2Provider.new(options) : JsonProvider.new(options)
17
- @security_groups = SecurityGroups.new(provider, config)
18
- end
3
+ require_relative "aws_security_viz/ec2/security_groups"
4
+ require_relative "aws_security_viz/provider/json"
5
+ require_relative "aws_security_viz/provider/ec2"
6
+ require_relative "aws_security_viz/renderer/all"
7
+ require_relative "aws_security_viz/graph"
8
+ require_relative "aws_security_viz/graph_filter"
9
+ require_relative "aws_security_viz/exclusions"
10
+ require_relative "aws_security_viz/aws_config"
11
+ require_relative "aws_security_viz/cli_guard"
19
12
 
20
- def unleash(output_file)
21
- g = build
22
- g.filter(@options[:source_filter], @options[:target_filter])
23
- g.output(Renderer.pick(@options[:renderer], output_file, @config))
24
- end
13
+ module AwsSecurityViz
14
+ class VisualizeAws
15
+ def initialize(config, options = {})
16
+ @options = options
17
+ @config = config
18
+ provider = options[:source_file].nil? ? Ec2Provider.new(options) : JsonProvider.new(options)
19
+ @security_groups = SecurityGroups.new(provider, config)
20
+ end
21
+
22
+ def unleash(output_file)
23
+ g = build
24
+ g.filter(@options[:source_filter], @options[:target_filter])
25
+ g.output(Renderer.pick(@options[:renderer], output_file, @config))
26
+ g.risky_edge_count
27
+ end
25
28
 
26
- def build
27
- g = @config.obfuscate? ? DebugGraph.new(@config) : Graph.new(@config)
28
- @security_groups.each_with_index { |group, index|
29
- picker = ColorPicker.new(@options[:color])
30
- g.add_node(group.name, {vpc_id: group.vpc_id, group_id: group.group_id})
31
- group.traffic.each { |traffic|
32
- if traffic.ingress
33
- g.add_edge(traffic.from, traffic.to, :color => picker.color(index, traffic.ingress), :label => traffic.port_range)
34
- else
35
- g.add_edge(traffic.to, traffic.from, :color => picker.color(index, traffic.ingress), :label => traffic.port_range)
36
- end
29
+ def build
30
+ g = Graph.new(@config)
31
+ peer_names = {}
32
+ @security_groups.each { |group|
33
+ peer_names.merge!(@security_groups.peer_names(group))
34
+ g.add_node(group.id, {label: group.name, vpc_id: group.vpc_id, region: group.region, group_id: group.id}.merge(group.unused ? {unused: true} : {}))
35
+ @security_groups.traffic(group).each { |traffic|
36
+ edge = {color: traffic.ingress ? :blue : :red, label: traffic.port_range}
37
+ edge[:risky] = true if traffic.risky
38
+ edge[:descriptions] = traffic.descriptions unless traffic.descriptions.empty?
39
+ if traffic.ingress
40
+ g.add_edge(traffic.from, traffic.to, edge)
41
+ else
42
+ g.add_edge(traffic.to, traffic.from, edge)
43
+ end
44
+ }
37
45
  }
38
- }
39
- g
46
+ peer_names.each { |id, name| g.describe_node(id, {label: name}) }
47
+ g
48
+ end
40
49
  end
41
-
42
50
  end
43
-
metadata CHANGED
@@ -1,208 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws_security_viz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5.pre.alpha.pre.35
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anay Nayak
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2024-12-30 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
- - !ruby/object:Gem::Dependency
13
- name: rake
14
- requirement: !ruby/object:Gem::Requirement
15
- requirements:
16
- - - ">="
17
- - !ruby/object:Gem::Version
18
- version: 12.0.0
19
- - - "~>"
20
- - !ruby/object:Gem::Version
21
- version: '13.0'
22
- type: :development
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- version: 12.0.0
29
- - - "~>"
30
- - !ruby/object:Gem::Version
31
- version: '13.0'
32
- - !ruby/object:Gem::Dependency
33
- name: rspec
34
- requirement: !ruby/object:Gem::Requirement
35
- requirements:
36
- - - "~>"
37
- - !ruby/object:Gem::Version
38
- version: '3.5'
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- version: 3.5.0
42
- type: :development
43
- prerelease: false
44
- version_requirements: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
47
- - !ruby/object:Gem::Version
48
- version: '3.5'
49
- - - ">="
50
- - !ruby/object:Gem::Version
51
- version: 3.5.0
52
12
  - !ruby/object:Gem::Dependency
53
13
  name: rexml
54
14
  requirement: !ruby/object:Gem::Requirement
55
15
  requirements:
56
- - - "~>"
57
- - !ruby/object:Gem::Version
58
- version: '3.2'
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: 3.2.2
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '3.2'
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- version: 3.2.2
72
- - !ruby/object:Gem::Dependency
73
- name: graphviz
74
- requirement: !ruby/object:Gem::Requirement
75
- requirements:
76
- - - "~>"
77
- - !ruby/object:Gem::Version
78
- version: '1.1'
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- version: 1.1.0
82
- type: :runtime
83
- prerelease: false
84
- version_requirements: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - "~>"
87
- - !ruby/object:Gem::Version
88
- version: '1.1'
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- version: 1.1.0
92
- - !ruby/object:Gem::Dependency
93
- name: optimist
94
- requirement: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - ">="
97
- - !ruby/object:Gem::Version
98
- version: '3.0'
99
- - - "<"
100
- - !ruby/object:Gem::Version
101
- version: '3.3'
102
- type: :runtime
103
- prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- requirements:
106
- - - ">="
107
- - !ruby/object:Gem::Version
108
- version: '3.0'
109
- - - "<"
110
- - !ruby/object:Gem::Version
111
- version: '3.3'
112
- - !ruby/object:Gem::Dependency
113
- name: organic_hash
114
- requirement: !ruby/object:Gem::Requirement
115
- requirements:
116
- - - "~>"
117
- - !ruby/object:Gem::Version
118
- version: '1.0'
119
16
  - - ">="
120
17
  - !ruby/object:Gem::Version
121
- version: 1.0.2
18
+ version: 3.4.4
122
19
  type: :runtime
123
20
  prerelease: false
124
21
  version_requirements: !ruby/object:Gem::Requirement
125
22
  requirements:
126
- - - "~>"
127
- - !ruby/object:Gem::Version
128
- version: '1.0'
129
23
  - - ">="
130
24
  - !ruby/object:Gem::Version
131
- version: 1.0.2
132
- - !ruby/object:Gem::Dependency
133
- name: rgl
134
- requirement: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - ">="
137
- - !ruby/object:Gem::Version
138
- version: 0.5.3
139
- - - "<"
140
- - !ruby/object:Gem::Version
141
- version: 0.7.0
142
- type: :runtime
143
- prerelease: false
144
- version_requirements: !ruby/object:Gem::Requirement
145
- requirements:
146
- - - ">="
147
- - !ruby/object:Gem::Version
148
- version: 0.5.3
149
- - - "<"
150
- - !ruby/object:Gem::Version
151
- version: 0.7.0
152
- - !ruby/object:Gem::Dependency
153
- name: webrick
154
- requirement: !ruby/object:Gem::Requirement
155
- requirements:
156
- - - ">="
157
- - !ruby/object:Gem::Version
158
- version: 1.8.1
159
- - - "<"
160
- - !ruby/object:Gem::Version
161
- version: 1.10.0
162
- type: :runtime
163
- prerelease: false
164
- version_requirements: !ruby/object:Gem::Requirement
165
- requirements:
166
- - - ">="
167
- - !ruby/object:Gem::Version
168
- version: 1.8.1
169
- - - "<"
170
- - !ruby/object:Gem::Version
171
- version: 1.10.0
25
+ version: 3.4.4
172
26
  - !ruby/object:Gem::Dependency
173
27
  name: aws-sdk-ec2
174
28
  requirement: !ruby/object:Gem::Requirement
175
29
  requirements:
176
30
  - - ">="
177
31
  - !ruby/object:Gem::Version
178
- version: '1.65'
179
- - - "<"
180
- - !ruby/object:Gem::Version
181
- version: '1.499'
32
+ version: '1.400'
182
33
  type: :runtime
183
34
  prerelease: false
184
35
  version_requirements: !ruby/object:Gem::Requirement
185
36
  requirements:
186
37
  - - ">="
187
38
  - !ruby/object:Gem::Version
188
- version: '1.65'
189
- - - "<"
190
- - !ruby/object:Gem::Version
191
- version: '1.499'
192
- - !ruby/object:Gem::Dependency
193
- name: base64
194
- requirement: !ruby/object:Gem::Requirement
195
- requirements:
196
- - - "~>"
197
- - !ruby/object:Gem::Version
198
- version: 0.2.0
199
- type: :runtime
200
- prerelease: false
201
- version_requirements: !ruby/object:Gem::Requirement
202
- requirements:
203
- - - "~>"
204
- - !ruby/object:Gem::Version
205
- version: 0.2.0
39
+ version: '1.400'
206
40
  description: Provides a quick mechanism to visualize your EC2 security groups in multiple
207
41
  formats
208
42
  email: anayak007+rubygems@gmail.com
@@ -211,61 +45,44 @@ executables:
211
45
  extensions: []
212
46
  extra_rdoc_files: []
213
47
  files:
214
- - ".dockerignore"
215
- - ".editorconfig"
216
- - ".github/dependabot.yml"
217
- - ".github/workflows/ruby.yml"
218
- - ".github/workflows/rubygem.yml"
219
- - ".github/workflows/rubygem_release.yml"
220
- - ".gitignore"
221
- - ".tool-versions"
222
48
  - CHANGELOG.md
223
- - CODE_OF_CONDUCT.md
224
- - Dockerfile
225
- - Gemfile
226
49
  - LICENSE.md
227
50
  - README.md
228
- - Rakefile
229
- - Vagrantfile
230
- - aws_security_viz.gemspec
231
- - config/boot.rb
232
51
  - exe/aws_security_viz
233
- - images/sample.png
234
- - lib/aws_config.rb
235
52
  - lib/aws_security_viz.rb
236
- - lib/color_picker.rb
237
- - lib/debug/parse_log.rb
238
- - lib/debug_graph.rb
239
- - lib/ec2/ip_permission.rb
240
- - lib/ec2/security_groups.rb
241
- - lib/ec2/traffic.rb
242
- - lib/exclusions.rb
243
- - lib/export/html/navigator.html
244
- - lib/export/html/view.html
245
- - lib/graph.rb
246
- - lib/graph_filter.rb
247
- - lib/opts.yml.sample
248
- - lib/provider/ec2.rb
249
- - lib/provider/json.rb
250
- - lib/renderer/all.rb
251
- - lib/renderer/graphviz.rb
252
- - lib/renderer/json.rb
253
- - lib/renderer/navigator.rb
254
- - lib/version.rb
255
- - spec/color_picker_spec.rb
256
- - spec/graph_filter_spec.rb
257
- - spec/integration/aws_expected.json
258
- - spec/integration/dummy.dot
259
- - spec/integration/dummy.json
260
- - spec/integration/expected.json
261
- - spec/integration/navigator.json
262
- - spec/integration/visualize_aws_spec.rb
263
- - spec/spec_helper.rb
264
- - spec/visualize_aws_spec.rb
53
+ - lib/aws_security_viz/aws_config.rb
54
+ - lib/aws_security_viz/cli.rb
55
+ - lib/aws_security_viz/cli_guard.rb
56
+ - lib/aws_security_viz/directed_graph.rb
57
+ - lib/aws_security_viz/ec2/security_groups.rb
58
+ - lib/aws_security_viz/exclusions.rb
59
+ - lib/aws_security_viz/export/html/viewer.html
60
+ - lib/aws_security_viz/graph.rb
61
+ - lib/aws_security_viz/graph_filter.rb
62
+ - lib/aws_security_viz/logging.rb
63
+ - lib/aws_security_viz/model.rb
64
+ - lib/aws_security_viz/obfuscation.rb
65
+ - lib/aws_security_viz/opts.yml.sample
66
+ - lib/aws_security_viz/port_label.rb
67
+ - lib/aws_security_viz/provider/ec2.rb
68
+ - lib/aws_security_viz/provider/json.rb
69
+ - lib/aws_security_viz/renderer/all.rb
70
+ - lib/aws_security_viz/renderer/graphviz.rb
71
+ - lib/aws_security_viz/renderer/html.rb
72
+ - lib/aws_security_viz/renderer/json.rb
73
+ - lib/aws_security_viz/renderer/mermaid.rb
74
+ - lib/aws_security_viz/risk.rb
75
+ - lib/aws_security_viz/vendor/cytoscape/LICENSE
76
+ - lib/aws_security_viz/vendor/cytoscape/README.md
77
+ - lib/aws_security_viz/vendor/cytoscape/cytoscape.min.js
78
+ - lib/aws_security_viz/version.rb
265
79
  homepage: https://github.com/anaynayak/aws-security-viz
266
80
  licenses:
267
81
  - MIT
268
- metadata: {}
82
+ metadata:
83
+ source_code_uri: https://github.com/anaynayak/aws-security-viz
84
+ changelog_uri: https://github.com/anaynayak/aws-security-viz/blob/main/CHANGELOG.md
85
+ rubygems_mfa_required: 'true'
269
86
  rdoc_options: []
270
87
  require_paths:
271
88
  - lib
@@ -273,24 +90,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
273
90
  requirements:
274
91
  - - ">="
275
92
  - !ruby/object:Gem::Version
276
- version: 3.0.0
93
+ version: '3.3'
277
94
  required_rubygems_version: !ruby/object:Gem::Requirement
278
95
  requirements:
279
96
  - - ">="
280
97
  - !ruby/object:Gem::Version
281
98
  version: '0'
282
99
  requirements: []
283
- rubygems_version: 3.6.2
100
+ rubygems_version: 3.6.9
284
101
  specification_version: 4
285
102
  summary: Visualize your aws security groups
286
- test_files:
287
- - spec/color_picker_spec.rb
288
- - spec/graph_filter_spec.rb
289
- - spec/integration/aws_expected.json
290
- - spec/integration/dummy.dot
291
- - spec/integration/dummy.json
292
- - spec/integration/expected.json
293
- - spec/integration/navigator.json
294
- - spec/integration/visualize_aws_spec.rb
295
- - spec/spec_helper.rb
296
- - spec/visualize_aws_spec.rb
103
+ test_files: []
data/.dockerignore DELETED
@@ -1,7 +0,0 @@
1
- .git
2
- .bundle
3
- *.svg
4
- *.dot
5
- *.png
6
- .DS_Store
7
- navigator.html
data/.editorconfig DELETED
@@ -1,17 +0,0 @@
1
- root = true
2
-
3
- [*]
4
- end_of_line = lf
5
- insert_final_newline = true
6
-
7
- [*.rb]
8
- charset = utf-8
9
- indent_style = space
10
- indent_size = 2
11
-
12
- [Makefile]
13
- indent_style = tab
14
-
15
- [.travis.yml]
16
- indent_style = space
17
- indent_size = 2
@@ -1,15 +0,0 @@
1
- # To get started with Dependabot version updates, you'll need to specify which
2
- # package ecosystems to update and where the package manifests are located.
3
- # Please see the documentation for all configuration options:
4
- # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
-
6
- version: 2
7
- updates:
8
- - package-ecosystem: "bundler" # See documentation for possible values
9
- directory: "/" # Location of package manifests
10
- schedule:
11
- interval: "weekly"
12
- - package-ecosystem: "github-actions"
13
- directory: "/"
14
- schedule:
15
- interval: "weekly"
@@ -1,34 +0,0 @@
1
- name: Ruby
2
-
3
- on:
4
- push:
5
- pull_request:
6
- schedule:
7
- - cron: '0 0 * * SAT'
8
-
9
- jobs:
10
- test:
11
- runs-on: ${{matrix.os}}-latest
12
- strategy:
13
- matrix:
14
- os:
15
- - ubuntu
16
- - macos
17
-
18
- ruby:
19
- - 3.1
20
- - 3.2
21
- - 3.3
22
- - 3.4
23
-
24
- steps:
25
- - uses: actions/checkout@v4
26
- - name: Set up Ruby
27
- uses: ruby/setup-ruby@v1
28
- with:
29
- ruby-version: ${{matrix.ruby}}
30
- - name: Install dependencies
31
- run: bundle install
32
- - name: Run tests
33
- run: bundle exec rspec spec --tag '~integration'
34
-
@@ -1,29 +0,0 @@
1
- name: Ruby Gem
2
-
3
- on:
4
- push:
5
- branches: [main]
6
-
7
- jobs:
8
- build:
9
- name: Build + Publish
10
- runs-on: ubuntu-latest
11
-
12
- steps:
13
- - uses: actions/checkout@v4
14
- - name: Set up Ruby 3
15
- uses: ruby/setup-ruby@v1
16
- with:
17
- ruby-version: 3.4
18
-
19
- - name: Publish to RubyGems
20
- run: |
21
- mkdir -p $HOME/.gem
22
- touch $HOME/.gem/credentials
23
- chmod 0600 $HOME/.gem/credentials
24
- printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
25
- gem build *.gemspec
26
- gem push *.gem
27
- env:
28
- GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
29
- ALPHA_BUILD_NUMBER: "${{github.run_number}}"
@@ -1,27 +0,0 @@
1
- name: Ruby Gem Release
2
-
3
- on:
4
- release:
5
-
6
- jobs:
7
- build:
8
- name: Build + Publish
9
- runs-on: ubuntu-latest
10
-
11
- steps:
12
- - uses: actions/checkout@v4
13
- - name: Set up Ruby 3
14
- uses: ruby/setup-ruby@v1
15
- with:
16
- ruby-version: 3.2
17
-
18
- - name: Publish to RubyGems
19
- run: |
20
- mkdir -p $HOME/.gem
21
- touch $HOME/.gem/credentials
22
- chmod 0600 $HOME/.gem/credentials
23
- printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
24
- gem build *.gemspec
25
- gem push *.gem
26
- env:
27
- GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
data/.gitignore DELETED
@@ -1,43 +0,0 @@
1
- *.gem
2
- *.rbc
3
- /.config
4
- /coverage/
5
- /InstalledFiles
6
- /pkg/
7
- /spec/reports/
8
- /test/tmp/
9
- /test/version_tmp/
10
- /tmp/
11
- /data/
12
-
13
- ## Documentation cache and generated files:
14
- /.yardoc/
15
- /_yardoc/
16
- /doc/
17
- /rdoc/
18
-
19
- ## Environment normalisation:
20
- /.bundle/
21
- /lib/bundler/man/
22
-
23
- .ruby-version
24
- .rbenv-gemsets
25
- .gems
26
- .envrc
27
-
28
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
29
- .rvmrc
30
-
31
- opts.yml
32
-
33
- .vagrant
34
- Gemfile.lock
35
-
36
- # in case you run the sample commands in this directory..
37
- viz.svg
38
- aws.json
39
- navigator.html
40
- *.png
41
- *.dot
42
- *.svg
43
- .DS_Store
data/.tool-versions DELETED
@@ -1 +0,0 @@
1
- ruby 3.4
data/CODE_OF_CONDUCT.md DELETED
@@ -1,46 +0,0 @@
1
- # Contributor Covenant Code of Conduct
2
-
3
- ## Our Pledge
4
-
5
- In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
-
7
- ## Our Standards
8
-
9
- Examples of behavior that contributes to creating a positive environment include:
10
-
11
- * Using welcoming and inclusive language
12
- * Being respectful of differing viewpoints and experiences
13
- * Gracefully accepting constructive criticism
14
- * Focusing on what is best for the community
15
- * Showing empathy towards other community members
16
-
17
- Examples of unacceptable behavior by participants include:
18
-
19
- * The use of sexualized language or imagery and unwelcome sexual attention or advances
20
- * Trolling, insulting/derogatory comments, and personal or political attacks
21
- * Public or private harassment
22
- * Publishing others' private information, such as a physical or electronic address, without explicit permission
23
- * Other conduct which could reasonably be considered inappropriate in a professional setting
24
-
25
- ## Our Responsibilities
26
-
27
- Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28
-
29
- Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
30
-
31
- ## Scope
32
-
33
- This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
34
-
35
- ## Enforcement
36
-
37
- Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at whynospam-awsviz@yahoo.co.in. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38
-
39
- Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40
-
41
- ## Attribution
42
-
43
- This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
44
-
45
- [homepage]: http://contributor-covenant.org
46
- [version]: http://contributor-covenant.org/version/1/4/
data/Dockerfile DELETED
@@ -1,9 +0,0 @@
1
- FROM ruby:3.4-alpine
2
- RUN apk add --update \
3
- build-base \
4
- graphviz \
5
- ttf-freefont
6
- RUN gem install aws_security_viz --pre
7
- RUN apk del build-base
8
- WORKDIR /aws-security-viz
9
- CMD ["aws_security_viz"]
data/Gemfile DELETED
@@ -1,3 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gemspec