emasser 3.12.0 → 3.22.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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/.env-example +18 -12
  3. data/.github/workflows/anchore-syft.yml +38 -0
  4. data/.github/workflows/codeql-analysis.yml +2 -2
  5. data/.github/workflows/push-to-docker-mail.yml +1 -2
  6. data/.github/workflows/push-to-docker.yml +2 -2
  7. data/.github/workflows/rubocop.yml +1 -1
  8. data/.github/workflows/test-cli.yml +4 -4
  9. data/.mergify.yml +11 -11
  10. data/.rubocop.yml +1 -1
  11. data/CHANGELOG.md +6 -0
  12. data/Dockerfile +6 -4
  13. data/Gemfile.lock +108 -64
  14. data/README.md +7 -7
  15. data/docs/features.md +492 -524
  16. data/emasser.gemspec +19 -13
  17. data/images/emasser_architecture.png +0 -0
  18. data/lib/emasser/configuration.rb +136 -35
  19. data/lib/emasser/constants.rb +4 -0
  20. data/lib/emasser/delete.rb +75 -7
  21. data/lib/emasser/errors.rb +9 -0
  22. data/lib/emasser/get.rb +610 -177
  23. data/lib/emasser/help/approvalCac_post_mapper.md +6 -5
  24. data/lib/emasser/help/approvalPac_post_mapper.md +1 -5
  25. data/lib/emasser/help/artifacts_del_mapper.md +2 -2
  26. data/lib/emasser/help/artifacts_post_mapper.md +23 -34
  27. data/lib/emasser/help/artifacts_put_mapper.md +28 -9
  28. data/lib/emasser/help/cloudresource_post_mapper.md +4 -3
  29. data/lib/emasser/help/controls_put_mapper.md +24 -16
  30. data/lib/emasser/help/hardware_post_mapper.md +41 -0
  31. data/lib/emasser/help/hardware_put_mapper.md +42 -0
  32. data/lib/emasser/help/milestone_del_mapper.md +1 -1
  33. data/lib/emasser/help/milestone_post_mapper.md +3 -1
  34. data/lib/emasser/help/milestone_put_mapper.md +1 -8
  35. data/lib/emasser/help/poam_del_mapper.md +1 -1
  36. data/lib/emasser/help/poam_post_mapper.md +40 -14
  37. data/lib/emasser/help/poam_put_mapper.md +43 -18
  38. data/lib/emasser/help/software_post_mapper.md +59 -0
  39. data/lib/emasser/help/software_put_mapper.md +60 -0
  40. data/lib/emasser/help/staticcode_post_mapper.md +0 -4
  41. data/lib/emasser/help/testresults_post_mapper.md +8 -11
  42. data/lib/emasser/output_converters.rb +50 -42
  43. data/lib/emasser/post.rb +603 -231
  44. data/lib/emasser/put.rb +453 -193
  45. data/lib/emasser/version.rb +1 -1
  46. metadata +51 -33
  47. data/images/emasser_architecture.jpg +0 -0
  48. data/images/emasser_diagram-Page-3.jpg +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b90b832b57672567d46686a6c1e490a2f61ea08fae87709b2db7e5ee7f789bb
4
- data.tar.gz: 312b2c6c4a56d40c1ac5fdefae3ee36f745af244a5f0e4839cf6b40796b53b14
3
+ metadata.gz: 0ea103b11885ac1177827b4c904231e195551c3e3aa3eff600f68b9f6f515209
4
+ data.tar.gz: 1fa842722e5c8df28d04cbf50d08fd4d7cc93a9cc4e4ca029d38802c252551fa
5
5
  SHA512:
6
- metadata.gz: 50272e2670c607779a0365c352b7def9cbbb9b2dacab88811edbf0bd198a0b5e80e1c1111b5aebb13e5dd6e48cbf28a4a2304c86145841dbbd08325bdeafcaa2
7
- data.tar.gz: 7853329f250ab9aa7af9420d6d706aaf8d6fa0caf3471c3da179370552a00ba33ca161e0ea1d5c406b9d8e0b815bfe0fcec3b42d99bd5fe9211b3567db08b461
6
+ metadata.gz: cbc31d64a2f79e938c68d39062bbc6ed713254e1e5801c187217bc03de5ab6ca5de307a6f4baf6a7bc3179b92dbb8d11ac35b78ef4bf78c9f194bc71bf802e69
7
+ data.tar.gz: aa638c03037d408dc81e183052401ca7d5dd7402d9185f3059a8a46352345e519f35827fbde7c6bde94af5512a04b22f7d24c36a70ee2e8a87e8330f2856eef4
data/.env-example CHANGED
@@ -1,12 +1,18 @@
1
- export EMASSER_API_KEY=<API key>
2
- export EMASSER_USER_UID=<unique identifier of the eMASS user EMASSER_API_KEY belongs to>
3
- export EMASSER_HOST_URL=<FQDN of the eMASS server>
4
- export EMASSER_KEY_FILE_PATH=<path to your emass key in PEM format>
5
- export EMASSER_CERT_FILE_PATH=<path to your emass certificate in PEM format>
6
- export EMASSER_KEY_FILE_PASSWORD=<password for the key given in EMASSER_KEY_FILE_PATH>
7
- export EMASSER_CLIENT_SIDE_VALIDATION=<client side validation - true or false>
8
- export EMASSER_VERIFY_SSL=<verify SSL - true or false>
9
- export EMASSER_VERIFY_SSL_HOST=<verify host SSL - true or false>
10
- export EMASSER_DEBUGGING=<set debugging - true or false>
11
- export EMASSER_CLI_DISPLAY_NULL=<display null value fields - true or false>
12
- export EMASSER_EPOCH_TO_DATETIME=<convert epoch to data/time value - true or false>
1
+ # -----------------------------------------------------------------------------
2
+ # Required environment variables
3
+ export EMASSER_API_KEY=<The eMASS API key (api-key)>
4
+ export EMASSER_HOST_URL=<The Full Qualified Domain Name (FQDN) for the eMASS server>
5
+ export EMASSER_KEY_FILE_PATH=<The eMASS key.pem private key file in PEM format (.pem)>
6
+ export EMASSER_CERT_FILE_PATH=<The eMASS client.pem certificate file in PEM format (.pem)>
7
+ export EMASSER_KEY_FILE_PASSWORD=<Secret phrase used to protect the encryption key>
8
+ # Required by most eMASS instances for actionable requests (post,put,delete)
9
+ export EMASSER_USER_UID=<The eMASS User Unique Identifier (user-uid)>
10
+ # -----------------------------------------------------------------------------
11
+ # Optional environment variables
12
+ export EMASSER_CLIENT_SIDE_VALIDATION=<Client side validation - true or false (default true)>
13
+ export EMASSER_VERIFY_SSL=<verify SSL - true or false (default true)>
14
+ export EMASSER_VERIFY_SSL_HOST=<verify host SSL - true or false (default true)>
15
+ export EMASSER_DEBUGGING=<set debugging - true or false (default false)>
16
+ export EMASSER_CLI_DISPLAY_NULL=<display null value fields - true or false (default true)>
17
+ export EMASSER_EPOCH_TO_DATETIME=<convert epoch to data/time value - true or false (default true)>
18
+ export EMASSER_DOWNLOAD_DIR=`Directory where exported files are saved (default eMASSerDownloads)`
@@ -0,0 +1,38 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+
6
+ # This workflow checks out code, builds an image, performs a container image
7
+ # scan with Anchore's Syft tool, and uploads the results to the GitHub Dependency
8
+ # submission API.
9
+
10
+ # For more information on the Anchore sbom-action usage
11
+ # and parameters, see https://github.com/anchore/sbom-action. For more
12
+ # information about the Anchore SBOM tool, Syft, see
13
+ # https://github.com/anchore/syft
14
+ name: Anchore Syft SBOM scan
15
+
16
+ on:
17
+ push:
18
+ branches: [ "main" ]
19
+
20
+ permissions:
21
+ contents: write
22
+
23
+ jobs:
24
+ Anchore-Build-Scan:
25
+ permissions:
26
+ contents: write # required to upload to the Dependency submission API
27
+ runs-on: ubuntu-latest
28
+ steps:
29
+ - name: Checkout the code
30
+ uses: actions/checkout@v4
31
+ - name: Build the Docker image
32
+ run: docker build . --file Dockerfile --tag localbuild/testimage:latest
33
+ - name: Scan the image and upload dependency results
34
+ uses: anchore/sbom-action@bb716408e75840bbb01e839347cd213767269d4a
35
+ with:
36
+ image: "localbuild/testimage:latest"
37
+ artifact-name: image.spdx.json
38
+ dependency-snapshot: true
@@ -42,7 +42,7 @@ jobs:
42
42
 
43
43
  # Initializes the CodeQL tools for scanning.
44
44
  - name: Initialize CodeQL
45
- uses: github/codeql-action/init@v2
45
+ uses: github/codeql-action/init@v3
46
46
  with:
47
47
  languages: ${{ matrix.language }}
48
48
  # If you wish to specify custom queries, you can do so here or in a config file.
@@ -53,7 +53,7 @@ jobs:
53
53
  # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
54
54
  # If this step fails, then you should remove it and run the build manually (see below)
55
55
  - name: Autobuild
56
- uses: github/codeql-action/autobuild@v2
56
+ uses: github/codeql-action/autobuild@v3
57
57
 
58
58
  # ℹ️ Command-line programs to run using the OS shell.
59
59
  # 📚 https://git.io/JvXDl
@@ -1,10 +1,9 @@
1
- name: Push emasser CLI to Docker Hub on every merge to master and tag as latest
1
+ name: Push eMASSer CLI to Docker Hub on every merge to master and tag as latest
2
2
 
3
3
  on:
4
4
  push:
5
5
  branches: [ main ]
6
6
 
7
-
8
7
  jobs:
9
8
  docker:
10
9
  runs-on: ubuntu-latest
@@ -1,4 +1,4 @@
1
- name: Push emasser to Docker Hub on every release
1
+ name: Push eMASSer to Docker Hub on every release
2
2
 
3
3
  on:
4
4
  release:
@@ -23,7 +23,7 @@ jobs:
23
23
  string: "${{ github.event.release.tag_name }}"
24
24
  replace-with: ''
25
25
  flags: 'g'
26
- - name: Checkout the emasser Repository
26
+ - name: Checkout the eMASSer Repository
27
27
  uses: actions/checkout@v4
28
28
  - name: Build and push
29
29
  id: docker_build
@@ -16,7 +16,7 @@ jobs:
16
16
  - name: Install Ruby
17
17
  uses: ruby/setup-ruby@v1
18
18
  with:
19
- ruby-version: 2.7
19
+ ruby-version: 3.4
20
20
  - name: Install and run Rubocop
21
21
  run: |
22
22
  bundle install
@@ -12,10 +12,10 @@ jobs:
12
12
  fail-fast: false
13
13
  matrix:
14
14
  platform: [ ubuntu-latest, macos-latest, windows-latest ]
15
- ruby-version: ['2.6', '2.7']
15
+ ruby-version: ['3.4']
16
16
  runs-on: ${{ matrix.platform }}
17
17
  steps:
18
- - name: Setup Ruby ${{matrix.ruby}}
18
+ - name: Setup Ruby ${{ matrix.ruby-version }}
19
19
  uses: ruby/setup-ruby@v1
20
20
  with:
21
21
  ruby-version: ${{ matrix.ruby-version }}
@@ -24,14 +24,14 @@ jobs:
24
24
  with:
25
25
  args: install curl -y
26
26
  if: matrix.platform == 'windows-latest'
27
- - name: Testing on ${{ matrix.platform }} for Ruby ${{ matrix.ruby }}
27
+ - name: Testing on ${{ matrix.platform }} for Ruby ${{ matrix.ruby-version }}
28
28
  if: matrix.platform == 'windows-latest'
29
29
  run: |
30
30
  # bundle install
31
31
  # bundle info emass_client
32
32
  # rspec spec --format documentation
33
33
  echo "need to fix path to libcurl.dll"
34
- - name: Testing on ${{ matrix.platform }} for Ruby ${{ matrix.ruby }}
34
+ - name: Testing on ${{ matrix.platform }} for Ruby ${{ matrix.ruby-version }}
35
35
  if: matrix.platform == 'ubuntu-latest' || matrix.platform == 'macos-latest'
36
36
  run: |
37
37
  bundle install
data/.mergify.yml CHANGED
@@ -1,25 +1,25 @@
1
1
  queue_rules:
2
2
  - name: default
3
- conditions:
3
+ queue_conditions:
4
+ - label=ready-to-merge
5
+ merge_conditions:
4
6
  - "#approved-reviews-by>=1"
5
7
  - base=main
8
+ merge_method: squash
6
9
 
7
10
  pull_request_rules:
8
- - name: automatic merge for master when reviewed and CI passes
9
- conditions:
10
- - label=ready-to-merge
11
- actions:
12
- queue:
13
- name: default
14
- method: squash
15
11
  - name: delete head branch after merge
16
12
  conditions:
17
13
  - merged
18
14
  actions:
19
- delete_head_branch: {}
15
+ delete_head_branch: {}
20
16
  - name: ask developers to resolve conflict
21
17
  conditions:
22
18
  - conflict
23
19
  actions:
24
- comment:
25
- message: This pull request has a conflict. Could you fix it @{{author}}?
20
+ comment:
21
+ message: This pull request has a conflict. Could you fix it @{{author}}?
22
+ - name: automatic merge for master when reviewed and CI passes
23
+ conditions: []
24
+ actions:
25
+ queue:
data/.rubocop.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  inherit_from: .rubocop_todo.yml
3
3
 
4
- require:
4
+ plugins:
5
5
  - rubocop-minitest
6
6
  - rubocop-performance
7
7
  - rubocop-rake
data/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [3.20.0] Feb 28, 2025
8
+ ### Changes
9
+ - Implemented eMASS API V3.22 specifications (to include previous updates)
10
+ - Updated documentation to include new capabilities (endpoints)
11
+ - Updated docker container to use Ruby v3 and appropriate dependencies
12
+
7
13
  ## [3.12.0] Oct 11, 2023
8
14
  ### Changes
9
15
  - Implemented eMASS API V3.12 specifications (to include previous updates)
data/Dockerfile CHANGED
@@ -1,5 +1,5 @@
1
1
  # Buld from ruby 2.7.5 image
2
- FROM ruby:2.7.5 as build
2
+ FROM ruby:3.2.5 as build
3
3
 
4
4
  LABEL name="emasser" \
5
5
  vendor="MITRE" \
@@ -13,8 +13,8 @@ LABEL name="emasser" \
13
13
  # Set the base directory that will be used from now on
14
14
  WORKDIR /emasser
15
15
 
16
- # Install dependency
17
- RUN gem install bundler -v '2.3.5'
16
+ # Install dependency (old bundler was 2.3.5)
17
+ RUN gem install bundler -v '2.6.5'
18
18
  RUN apt update && apt install -y build-essential
19
19
  COPY . .
20
20
  RUN bundle install
@@ -27,7 +27,9 @@ RUN mkdir gems
27
27
  RUN mv emasser*.gem gems/emasser.gem
28
28
 
29
29
 
30
- FROM ruby:2-alpine
30
+ # FROM ruby:2-alpine
31
+ # Updated to ruby:3-alpine
32
+ FROM ruby:3-alpine
31
33
 
32
34
  # Use the line below when testing creating the container locally
33
35
  # RUN sed -i 's/https/http/g' /etc/apk/repositories
data/Gemfile.lock CHANGED
@@ -1,108 +1,152 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- emasser (3.12.0)
4
+ emasser (3.22.0)
5
5
  activesupport (>= 6.1.4, < 7.1.0)
6
- colorize (~> 0.8.1)
7
- dotenv (~> 2.7.6)
8
- emass_client (~> 3.12)
6
+ colorize (~> 1.1.0)
7
+ dotenv (~> 3.1.2)
8
+ emass_client (~> 3.20)
9
9
  rubyzip (~> 2.3.2)
10
- thor (~> 1.1.0)
10
+ thor (~> 1.3.0)
11
11
 
12
12
  GEM
13
13
  remote: https://rubygems.org/
14
14
  specs:
15
- activesupport (7.0.8)
15
+ activesupport (7.0.8.7)
16
16
  concurrent-ruby (~> 1.0, >= 1.0.2)
17
17
  i18n (>= 1.6, < 2)
18
18
  minitest (>= 5.1)
19
19
  tzinfo (~> 2.0)
20
20
  ast (2.4.2)
21
- bundler-audit (0.9.1)
21
+ backport (1.2.0)
22
+ benchmark (0.4.0)
23
+ bundler-audit (0.9.2)
22
24
  bundler (>= 1.2.0, < 3)
23
25
  thor (~> 1.0)
24
26
  byebug (11.1.3)
25
- colorize (0.8.1)
26
- concurrent-ruby (1.2.2)
27
- diff-lcs (1.5.0)
28
- dotenv (2.7.6)
29
- emass_client (3.12.0)
27
+ colorize (1.1.0)
28
+ concurrent-ruby (1.3.5)
29
+ diff-lcs (1.6.0)
30
+ dotenv (3.1.7)
31
+ emass_client (3.22.0)
30
32
  typhoeus (~> 1.0, >= 1.0.1)
31
33
  ethon (0.16.0)
32
34
  ffi (>= 1.15.0)
33
- ffi (1.16.3)
34
- ffi (1.16.3-x64-mingw32)
35
- i18n (1.14.1)
35
+ ffi (1.17.1-x64-mingw-ucrt)
36
+ i18n (1.14.7)
36
37
  concurrent-ruby (~> 1.0)
37
- json (2.6.3)
38
- minitest (5.20.0)
39
- parallel (1.23.0)
40
- parser (3.2.2.3)
38
+ jaro_winkler (1.6.0)
39
+ json (2.10.1)
40
+ kramdown (2.5.1)
41
+ rexml (>= 3.3.9)
42
+ kramdown-parser-gfm (1.1.0)
43
+ kramdown (~> 2.0)
44
+ language_server-protocol (3.17.0.4)
45
+ lint_roller (1.1.0)
46
+ logger (1.6.6)
47
+ minitest (5.25.4)
48
+ nokogiri (1.18.3-x64-mingw-ucrt)
49
+ racc (~> 1.4)
50
+ observer (0.1.2)
51
+ ostruct (0.6.1)
52
+ parallel (1.26.3)
53
+ parser (3.3.7.1)
41
54
  ast (~> 2.4.1)
42
55
  racc
43
- racc (1.7.1)
56
+ racc (1.8.1)
44
57
  rainbow (3.1.1)
45
- rake (13.0.6)
46
- regexp_parser (2.8.1)
47
- rexml (3.2.5)
48
- rspec (3.10.0)
49
- rspec-core (~> 3.10.0)
50
- rspec-expectations (~> 3.10.0)
51
- rspec-mocks (~> 3.10.0)
52
- rspec-core (3.10.2)
53
- rspec-support (~> 3.10.0)
54
- rspec-expectations (3.10.2)
58
+ rake (13.2.1)
59
+ rbs (3.8.1)
60
+ logger
61
+ regexp_parser (2.10.0)
62
+ reverse_markdown (3.0.0)
63
+ nokogiri
64
+ rexml (3.4.1)
65
+ rspec (3.13.0)
66
+ rspec-core (~> 3.13.0)
67
+ rspec-expectations (~> 3.13.0)
68
+ rspec-mocks (~> 3.13.0)
69
+ rspec-core (3.13.3)
70
+ rspec-support (~> 3.13.0)
71
+ rspec-expectations (3.13.3)
55
72
  diff-lcs (>= 1.2.0, < 2.0)
56
- rspec-support (~> 3.10.0)
57
- rspec-mocks (3.10.3)
73
+ rspec-support (~> 3.13.0)
74
+ rspec-mocks (3.13.2)
58
75
  diff-lcs (>= 1.2.0, < 2.0)
59
- rspec-support (~> 3.10.0)
60
- rspec-support (3.10.3)
61
- rubocop (1.52.1)
76
+ rspec-support (~> 3.13.0)
77
+ rspec-support (3.13.2)
78
+ rubocop (1.73.0)
62
79
  json (~> 2.3)
80
+ language_server-protocol (~> 3.17.0.2)
81
+ lint_roller (~> 1.1.0)
63
82
  parallel (~> 1.10)
64
- parser (>= 3.2.2.3)
83
+ parser (>= 3.3.0.2)
65
84
  rainbow (>= 2.2.2, < 4.0)
66
- regexp_parser (>= 1.8, < 3.0)
67
- rexml (>= 3.2.5, < 4.0)
68
- rubocop-ast (>= 1.28.0, < 2.0)
85
+ regexp_parser (>= 2.9.3, < 3.0)
86
+ rubocop-ast (>= 1.38.0, < 2.0)
69
87
  ruby-progressbar (~> 1.7)
70
- unicode-display_width (>= 2.4.0, < 3.0)
71
- rubocop-ast (1.29.0)
72
- parser (>= 3.2.1.0)
73
- rubocop-minitest (0.31.0)
74
- rubocop (>= 1.39, < 2.0)
75
- rubocop-performance (1.18.0)
76
- rubocop (>= 1.7.0, < 2.0)
77
- rubocop-ast (>= 0.4.0)
78
- rubocop-rake (0.6.0)
79
- rubocop (~> 1.0)
88
+ unicode-display_width (>= 2.4.0, < 4.0)
89
+ rubocop-ast (1.38.1)
90
+ parser (>= 3.3.1.0)
91
+ rubocop-minitest (0.37.1)
92
+ lint_roller (~> 1.1)
93
+ rubocop (>= 1.72.1, < 2.0)
94
+ rubocop-ast (>= 1.38.0, < 2.0)
95
+ rubocop-performance (1.24.0)
96
+ lint_roller (~> 1.1)
97
+ rubocop (>= 1.72.1, < 2.0)
98
+ rubocop-ast (>= 1.38.0, < 2.0)
99
+ rubocop-rake (0.7.1)
100
+ lint_roller (~> 1.1)
101
+ rubocop (>= 1.72.1)
80
102
  ruby-progressbar (1.13.0)
81
103
  rubyzip (2.3.2)
82
- thor (1.1.0)
83
- typhoeus (1.4.0)
104
+ solargraph (0.51.2)
105
+ backport (~> 1.2)
106
+ benchmark
107
+ bundler (~> 2.0)
108
+ diff-lcs (~> 1.4)
109
+ jaro_winkler (~> 1.6)
110
+ kramdown (~> 2.3)
111
+ kramdown-parser-gfm (~> 1.1)
112
+ logger (~> 1.6)
113
+ observer (~> 0.1)
114
+ ostruct (~> 0.6)
115
+ parser (~> 3.0)
116
+ rbs (~> 3.0)
117
+ reverse_markdown (>= 2.0, < 4)
118
+ rubocop (~> 1.38)
119
+ thor (~> 1.0)
120
+ tilt (~> 2.0)
121
+ yard (~> 0.9, >= 0.9.24)
122
+ thor (1.3.2)
123
+ tilt (2.6.0)
124
+ typhoeus (1.4.1)
84
125
  ethon (>= 0.9.0)
85
126
  tzinfo (2.0.6)
86
127
  concurrent-ruby (~> 1.0)
87
- unicode-display_width (2.4.2)
88
- yaml (0.2.1)
128
+ unicode-display_width (3.1.4)
129
+ unicode-emoji (~> 4.0, >= 4.0.4)
130
+ unicode-emoji (4.0.4)
131
+ yaml (0.3.0)
132
+ yard (0.9.37)
89
133
 
90
134
  PLATFORMS
91
- x64-mingw32
92
- x86_64-linux
135
+ x64-mingw-ucrt
93
136
 
94
137
  DEPENDENCIES
95
- bundler (~> 2.3)
96
- bundler-audit (~> 0.7)
138
+ bundler (~> 2.5)
139
+ bundler-audit (~> 0.9)
97
140
  byebug (~> 11.1.3)
98
141
  emasser!
99
- rake (~> 13.0)
100
- rspec (~> 3.10.0)
142
+ rake (~> 13.2.1)
143
+ rspec (~> 3.13.0)
101
144
  rubocop (~> 1.7)
102
- rubocop-minitest (~> 0.10)
103
- rubocop-performance (~> 1.11)
104
- rubocop-rake (~> 0.5)
105
- yaml (~> 0.2.0)
145
+ rubocop-minitest (~> 0.35)
146
+ rubocop-performance (~> 1.21)
147
+ rubocop-rake (~> 0.6)
148
+ solargraph (~> 0.50)
149
+ yaml (~> 0.3.0)
106
150
 
107
151
  BUNDLED WITH
108
- 2.3.22
152
+ 2.6.5
data/README.md CHANGED
@@ -2,10 +2,10 @@
2
2
  ![GitHub Release Date](https://img.shields.io/github/release-date/mitre/emasser?label=Release%20Date&logo=github&color=blue)
3
3
  ![GitHub release (latest by date)](https://img.shields.io/github/v/release/mitre/emasser?label=Release%20Version&logo=github) ![Gem](https://img.shields.io/gem/v/emasser?label=gem%20version&logo=ruby&logoColor=red) ![Docker Version](https://img.shields.io/docker/v/mitre/emasser?label=docker%20version&logo=docker&sort=semver)
4
4
 
5
- ![emasser Testing](https://github.com/mitre/emasser/actions/workflows/test-cli.yml/badge.svg)
6
- ![CodeQL Vulnerabilities and Errors](https://github.com/mitre/emasser/actions/workflows/codeql-analysis.yml/badge.svg)
5
+ [![emasser Testing](https://github.com/mitre/emasser/actions/workflows/test-cli.yml/badge.svg)](https://github.com/mitre/emasser/actions/workflows/test-cli.yml)
6
+ [![CodeQL Vulnerabilities and Errors](https://github.com/mitre/emasser/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/mitre/emasser/actions/workflows/codeql-analysis.yml)
7
7
  [![GitHub Pages](https://github.com/mitre/emasser/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/mitre/emasser/actions/workflows/gh-pages.yml)
8
- ![Code Linter](https://github.com/mitre/emasser/actions/workflows/rubocop.yml/badge.svg)
8
+ [![Code Linter](https://github.com/mitre/emasser/actions/workflows/rubocop.yml/badge.svg)](https://github.com/mitre/emasser/actions/workflows/rubocop.yml)
9
9
 
10
10
  ## About
11
11
 
@@ -28,10 +28,10 @@ The `eMASSer` CLI [**Architecture**](#emasser-cli-architecture) depicts the stru
28
28
 
29
29
  ### Installation Dependencies
30
30
  * git
31
- * Ruby version 2.7 or greater
31
+ * Ruby version 3.22 or greater
32
32
 
33
33
  ### Runtime Major Dependencies
34
- * Ruby version 2.7 or greater
34
+ * Ruby version 3.22 or greater
35
35
  * `rubyzip (latest version)`
36
36
  * `emass_client (latest version)`
37
37
  * On Windows the `cURL` binary is required (libcurl.dll). To install cURL:
@@ -157,12 +157,12 @@ Because interactions with the API are handled by a dependency, the bulk of `eMAS
157
157
  The `eMASSer` CLI makes use of the `emass_client` ruby gem to communicate with an `eMASS` instance via the `eMASS API` as depicted in the diagram below:
158
158
 
159
159
  <div align="center">
160
- <img src="images/emasser_architecture.jpg" alt="emasser CLI Architecture" title="emasser CLI Architecture">
160
+ <img src="images/emasser_architecture.png" alt="emasser CLI Architecture" title="emasser CLI Architecture">
161
161
  </div>
162
162
 
163
163
  ### NOTICE
164
164
 
165
- © 2020 The MITRE Corporation.
165
+ © 2025 The MITRE Corporation.
166
166
 
167
167
  Approved for Public Release; Distribution Unlimited. Case Number 18-3678.
168
168