rubion 0.3.10 → 0.3.11

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 (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +148 -69
  3. data/lib/rubion/version.rb +1 -1
  4. data/rubion.gemspec +165 -22
  5. metadata +73 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c4e3c0ca5fe5a8dcb5e1283bee4f507cd40cce64796bfff6fb261cabc944bc7
4
- data.tar.gz: 37b74184805f031a5cb839ab5e0fec28079d3735009db697523b0d90639d01bf
3
+ metadata.gz: 752260b2ea57b15d75df668a60d1e1a93734b3e86da997c57b852f6c77e0d292
4
+ data.tar.gz: 513e0b0af66f262f8998d481fdcf7eafd9652bb0d2c2381f49f868034cb6a597
5
5
  SHA512:
6
- metadata.gz: e1547c0bcb405af894e41fbe47607045349ceff8359592c02bef854b2ec7f2d5314ac6f4d3334312cc85196a3bd02633696bda509045f5f17c6369093100a9be
7
- data.tar.gz: 57cecf15af4f037567c43d4ae38ef6c5c383b7e4ad33bc59ef65515609d1bc45ee376f413097fa8df050aae29177b9a0079c9d4c5a6f3820efac1dd872e0eb15
6
+ metadata.gz: 2b4c4b59d717ad577482a6da93ab5fda7cf42940ebcec8c3d695e889c81e63843b631f26324f2a64f9af5b67ab9126e4bb34c37b9bfdd03f55ed36069de928c6
7
+ data.tar.gz: 379406e86fb8989acbffdd1acf3252e5d1b726525e46b26b6b418e5e66bbe47620008589f0b5f8be56898617162333ba47d2e85885fbe052f3e417b1891bbf7a
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # Rubion
1
+ # Rubion
2
2
 
3
3
  **Rubion** is a security and version scanner for Ruby and JavaScript projects. It helps you identify vulnerabilities and outdated dependencies in your Ruby gems and NPM/JavaScript packages.
4
4
 
5
- <img width="1237" height="671" alt="Screenshot 2025-11-14 at 10 48 12am" src="https://github.com/user-attachments/assets/a3d93452-c442-416a-9697-de59746e16ad" />
5
+ <img width="1237" height="671" alt="Screenshot 2025-11-14 at 10 48 12 am" src="https://github.com/user-attachments/assets/a3d93452-c442-416a-9697-de59746e16ad" />
6
6
 
7
7
  ## Features
8
8
 
@@ -10,15 +10,19 @@
10
10
  - 📦 **Gem Versions**: Identifies outdated Ruby gems with release dates and version counts
11
11
  - 📛 **Package Vulnerabilities**: Scans for known security vulnerabilities in NPM/JavaScript packages using `npm audit` or `yarn audit`
12
12
  - 📦 **Package Versions**: Identifies outdated NPM/JavaScript packages with release dates and version counts
13
+ - 🎯 **Direct Dependencies**: Highlights direct dependencies (from `Gemfile`/`package.json`) in bold text
14
+ - 🔍 **Filtering**: Option to show only direct dependencies with `--exclude-dependencies` flag
15
+ - 📊 **Sorting**: Sort results by any column (Name, Current, Date, Latest, Behind By(Time), Behind By(Versions))
13
16
  - 📊 **Beautiful Reports**: Organized table output with severity icons (🔴 Critical, 🟠 High, 🟡 Medium, 🟢 Low, ⚪ Unknown)
14
17
  - 🚀 **Fast & Efficient**: Parallel API processing (10 concurrent threads) for quick results
15
18
  - ⚡ **Incremental Output**: Shows gem results immediately, then scans packages
16
19
  - 📅 **Release Dates**: Fetches actual release dates from RubyGems.org and NPM registry
17
20
  - 🔢 **Version Analysis**: Shows how many versions behind and time difference
21
+ - 📦 **Multi-Package Manager**: Supports both npm and yarn with automatic detection
18
22
 
19
23
  ## Installation
20
24
 
21
- ### Install from RubyGems (when published)
25
+ ### Install from RubyGems
22
26
 
23
27
  ```bash
24
28
  gem install rubion
@@ -27,7 +31,7 @@ gem install rubion
27
31
  ### Install from source
28
32
 
29
33
  ```bash
30
- git clone https://github.com/yourusername/rubion.git
34
+ git clone https://github.com/bipashant/rubion.git
31
35
  cd rubion
32
36
  bundle install
33
37
  rake install_local
@@ -35,7 +39,7 @@ rake install_local
35
39
 
36
40
  ## Usage
37
41
 
38
- ### Scan your project
42
+ ### Basic Scan
39
43
 
40
44
  Navigate to your project directory and run:
41
45
 
@@ -49,7 +53,7 @@ This will scan your project for:
49
53
  - NPM/JavaScript package vulnerabilities (if `package.json` exists)
50
54
  - Outdated NPM/JavaScript packages with release dates
51
55
 
52
- ### Scan options
56
+ ### Scan Options
53
57
 
54
58
  ```bash
55
59
  # Scan only Ruby gems (skip NPM packages)
@@ -66,13 +70,57 @@ rubion scan -p
66
70
  rubion scan
67
71
  ```
68
72
 
69
- ### View help
73
+ ### Sorting Options
74
+
75
+ ```bash
76
+ # Sort by column name (default: "Behind By(Time)" in descending order)
77
+ rubion scan --sort-by Name
78
+ rubion scan --sort-by Current
79
+ rubion scan --sort-by "Current version released on"
80
+ rubion scan --sort-by Latest
81
+ rubion scan --sort-by "Latest version released on"
82
+ rubion scan --sort-by "Behind By(Time)"
83
+ rubion scan --sort-by "Behind By(Versions)"
84
+
85
+ # Short form
86
+ rubion scan -s Name
87
+
88
+ # Sort in ascending order
89
+ rubion scan --sort-by Name --asc
90
+ rubion scan --sort-by Name --ascending
91
+
92
+ # Sort in descending order (default)
93
+ rubion scan --sort-by Name --desc
94
+ rubion scan --sort-by Name --descending
95
+ ```
96
+
97
+ **Available columns for sorting:**
98
+ - `Name` - Package/gem name
99
+ - `Current` - Current version
100
+ - `Current version released on` or `Date` - Release date of current version
101
+ - `Latest` - Latest version
102
+ - `Latest version released on` or `Date` - Release date of latest version
103
+ - `Behind By(Time)` - Time difference (default sort, descending)
104
+ - `Behind By(Versions)` - Number of versions behind
105
+
106
+ ### Filtering Options
107
+
108
+ ```bash
109
+ # Show only direct dependencies (from Gemfile/package.json)
110
+ rubion scan --exclude-dependencies
111
+ ```
112
+
113
+ Direct dependencies are automatically highlighted in **bold text** in the output.
114
+
115
+ ### View Help
70
116
 
71
117
  ```bash
72
118
  rubion help
119
+ # or
120
+ rubion -h
73
121
  ```
74
122
 
75
- ### Check version
123
+ ### Check Version
76
124
 
77
125
  ```bash
78
126
  rubion version
@@ -82,6 +130,8 @@ rubion -v
82
130
 
83
131
  ## Output Example
84
132
 
133
+ ### Complete Scan Output
134
+
85
135
  ```
86
136
  🔍 Scanning project at: /path/to/project
87
137
 
@@ -94,16 +144,22 @@ Gem Vulnerabilities:
94
144
  +----------+--------+---------+------------------------------------------+
95
145
  | 🔴 Critical | rexml | 3.4.1 | REXML has DoS condition when parsing... |
96
146
  | 🟠 High | rack | 2.0.8 | Denial of Service vulnerability |
147
+ | 🟡 Medium | nokogiri | 1.13.8 | XML parsing vulnerability |
148
+ | 🟢 Low | json | 2.6.1 | JSON parsing issue |
97
149
  +----------+--------+---------+------------------------------------------+
98
150
 
99
151
  Gem Versions:
100
152
 
101
- +----------+---------+-----------+---------+-----------+-----------+----------+
102
- | Name | Current | Date | Latest | Date | Behind By | Versions |
103
- +----------+---------+-----------+---------+-----------+-----------+----------+
104
- | sidekiq | 7.30 | 3/5/2024 | 8.1 | 11/11/2025| 1 year | 15 |
105
- | fastimage| 2.2.7 | 2/2/2025 | 2.3.2 | 9/9/2025 | 7 months | 3 |
106
- +----------+---------+-----------+---------+-----------+-----------+----------+
153
+ +------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
154
+ | Name | Current | Current version released on | Latest | Latest version released on | Behind By(Time) | Behind By(Versions) |
155
+ +------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
156
+ | sidekiq | 7.30 | 3/5/2024 | 8.1 | 11/11/2025 | 1 year | 15 |
157
+ | rails | 7.0.0 | 12/15/2022 | 7.1.0 | 10/4/2024 | 1 year 10 months | 8 |
158
+ | fastimage | 2.2.7 | 2/2/2025 | 2.3.2 | 9/9/2025 | 7 months | 3 |
159
+ | nokogiri | 1.13.8 | 5/10/2023 | 1.15.0 | 8/20/2024 | 1 year 3 months | 12 |
160
+ | redis | 4.8.0 | 1/15/2023 | 5.0.0 | 11/1/2024 | 1 year 9 months | 20 |
161
+ | pg | 1.4.0 | 3/20/2023 | 1.5.0 | 9/15/2024 | 1 year 5 months | 6 |
162
+ +------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
107
163
 
108
164
  📦 Checking NPM packages... 45/45 ✓
109
165
 
@@ -112,18 +168,44 @@ Package Vulnerabilities:
112
168
  +----------+--------+---------+------------------------------------------+
113
169
  | Level | Name | Version | Vulnerability |
114
170
  +----------+--------+---------+------------------------------------------+
115
- | 🟠 High | moment | 1.2.3 | Wrong timezone date calculation |
171
+ | 🔴 Critical | lodash | 4.17.20 | Prototype pollution vulnerability |
172
+ | 🟠 High | moment | 2.29.1 | Wrong timezone date calculation |
173
+ | 🟡 Medium | axios | 0.21.1 | Server-Side Request Forgery (SSRF) |
174
+ | 🟢 Low | debug | 4.3.1 | Regular Expression Denial of Service |
116
175
  +----------+--------+---------+------------------------------------------+
117
176
 
118
177
  Package Versions:
119
178
 
120
- +----------+---------+-----------+---------+-----------+-----------+----------+
121
- | Name | Current | Date | Latest | Date | Behind By | Versions |
122
- +----------+---------+-----------+---------+-----------+-----------+----------+
123
- | jquery | 3.7.1 | 4/5/2024 | 3.9.1 | 10/11/2025| 1 year | 8 |
124
- +----------+---------+-----------+---------+-----------+-----------+----------+
179
+ +------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
180
+ | Name | Current | Current version released on | Latest | Latest version released on | Behind By(Time) | Behind By(Versions) |
181
+ +------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
182
+ | react | 17.0.2 | 3/3/2021 | 18.2.0 | 6/14/2023 | 2 years 3 months | 45 |
183
+ | vue | 3.2.0 | 8/5/2021 | 3.3.0 | 5/18/2023 | 1 year 9 months | 8 |
184
+ | jquery | 3.7.1 | 4/5/2024 | 3.9.1 | 10/11/2025 | 1 year | 8 |
185
+ | express | 4.18.0 | 4/25/2022 | 4.18.2 | 8/15/2023 | 1 year 3 months | 2 |
186
+ | webpack | 5.70.0 | 3/1/2022 | 5.88.0 | 6/1/2023 | 1 year 3 months | 18 |
187
+ | typescript | 4.7.0 | 5/24/2022 | 5.1.0 | 5/25/2023 | 1 year | 12 |
188
+ +------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
125
189
  ```
126
190
 
191
+ ### Direct Dependencies Only (with --exclude-dependencies)
192
+
193
+ When using `rubion scan --exclude-dependencies`, only direct dependencies are shown:
194
+
195
+ ```
196
+ Gem Versions:
197
+
198
+ +----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
199
+ | Name | Current | Current version released on | Latest | Latest version released on | Behind By(Time) ↓ | Behind By(Versions) |
200
+ +----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
201
+ | **rails**| 7.0.0 | 12/15/2022 | 7.1.0 | 10/4/2024 | 1 year 10 months | 8 |
202
+ | **sidekiq**| 7.30 | 3/5/2024 | 8.1 | 11/11/2025 | 1 year | 15 |
203
+ | **pg** | 1.4.0 | 3/20/2023 | 1.5.0 | 9/15/2024 | 1 year 5 months | 6 |
204
+ +----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
205
+ ```
206
+
207
+ **Note:** Direct dependencies (from `Gemfile` or `package.json`) are displayed in **bold text** in the version tables. In the example above, `rails`, `sidekiq`, and `pg` are direct dependencies from the `Gemfile`.
208
+
127
209
  ## Requirements
128
210
 
129
211
  - Ruby 2.6 or higher
@@ -131,7 +213,7 @@ Package Versions:
131
213
  - NPM or Yarn (optional, for JavaScript package scanning)
132
214
  - `bundler-audit` (optional, for enhanced gem vulnerability detection)
133
215
 
134
- **Note:** If both npm and yarn are available, Rubion will prompt you to choose which one to use.
216
+ **Note:** If both npm and yarn are available, Rubion will prompt you to choose which one to use. You can respond with 'y' for yarn or 'n' for npm.
135
217
 
136
218
  ### Installing bundler-audit (recommended)
137
219
 
@@ -141,6 +223,48 @@ gem install bundler-audit
141
223
 
142
224
  **Note:** Without `bundler-audit`, gem vulnerability scanning will be skipped.
143
225
 
226
+ ## How It Works
227
+
228
+ Rubion uses a modular architecture:
229
+
230
+ 1. **Scanner** (`lib/rubion/scanner.rb`): Executes various commands to scan for vulnerabilities and outdated versions
231
+ - `bundle-audit check` for gem vulnerabilities
232
+ - `bundle outdated --parseable` for gem versions
233
+ - `npm audit --json` or `yarn audit --json` for package vulnerabilities (auto-detects which is available)
234
+ - `npm outdated --json` or `yarn outdated` for package versions (auto-detects which is available)
235
+ - Fetches release dates and version data from RubyGems.org and NPM registry APIs
236
+ - Uses parallel processing (10 concurrent threads) for fast API calls
237
+ - Prompts user to choose between npm and yarn if both are available
238
+ - Parses `Gemfile` and `package.json` to identify direct dependencies
239
+
240
+ 2. **Reporter** (`lib/rubion/reporter.rb`): Formats scan results into beautiful terminal tables using `terminal-table`
241
+ - Adds severity icons (🔴 🟠 🟡 🟢 ⚪)
242
+ - Formats dates, time differences, and version counts
243
+ - Supports incremental output (gems first, then packages)
244
+ - Highlights direct dependencies in bold text
245
+ - Supports sorting by any column with visual indicators (↑/↓)
246
+ - Filters results based on `--exclude-dependencies` flag
247
+
248
+ 3. **CLI** (`lib/rubion.rb`): Provides the command-line interface
249
+ - Parses command-line options (`--gems-only`, `--packages-only`, `--sort-by`, `--asc`, `--desc`, `--exclude-dependencies`)
250
+ - Coordinates scanning and reporting
251
+
252
+ For detailed information about data collection and mapping, see [HOW_IT_WORKS.md](HOW_IT_WORKS.md).
253
+
254
+ ## Performance
255
+
256
+ Rubion is optimized for speed:
257
+
258
+ - **Parallel API Processing**: Uses 10 concurrent threads to fetch version data from RubyGems.org and NPM registry
259
+ - **Single API Call Per Package**: Fetches all necessary data (dates, version list) in one request
260
+ - **Incremental Output**: Shows gem results immediately, then scans packages (better UX)
261
+ - **Progress Indicators**: Shows real-time progress like "Checking Ruby gems... 10/54"
262
+
263
+ Typical scan times:
264
+ - Gems only: ~4-5 seconds (for ~140 gems)
265
+ - Packages only: ~3-4 seconds (for ~50 packages)
266
+ - Both: ~7-9 seconds total
267
+
144
268
  ## Development
145
269
 
146
270
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt.
@@ -169,30 +293,6 @@ gem build rubion.gemspec
169
293
  rake install_local
170
294
  ```
171
295
 
172
- ## How It Works
173
-
174
- Rubion uses a modular architecture:
175
-
176
- 1. **Scanner** (`lib/rubion/scanner.rb`): Executes various commands to scan for vulnerabilities and outdated versions
177
- - `bundle-audit check` for gem vulnerabilities
178
- - `bundle outdated --parseable` for gem versions
179
- - `npm audit --json` or `yarn audit --json` for package vulnerabilities (auto-detects which is available)
180
- - `npm outdated --json` or `yarn outdated --json` for package versions (auto-detects which is available)
181
- - Fetches release dates and version data from RubyGems.org and NPM registry APIs
182
- - Uses parallel processing (10 concurrent threads) for fast API calls
183
- - Prompts user to choose between npm and yarn if both are available
184
-
185
- 2. **Reporter** (`lib/rubion/reporter.rb`): Formats scan results into beautiful terminal tables using `terminal-table`
186
- - Adds severity icons (🔴 🟠 🟡 🟢 ⚪)
187
- - Formats dates, time differences, and version counts
188
- - Supports incremental output (gems first, then packages)
189
-
190
- 3. **CLI** (`lib/rubion.rb`): Provides the command-line interface
191
- - Parses command-line options (`--gems-only`, `--packages-only`)
192
- - Coordinates scanning and reporting
193
-
194
- For detailed information about data collection and mapping, see [HOW_IT_WORKS.md](HOW_IT_WORKS.md).
195
-
196
296
  ## Extending Rubion
197
297
 
198
298
  Rubion is designed to be easily extensible. To add new scanners:
@@ -218,7 +318,7 @@ end
218
318
 
219
319
  ## Contributing
220
320
 
221
- Bug reports and pull requests are welcome on GitHub at https://github.com/yourusername/rubion.
321
+ Bug reports and pull requests are welcome on GitHub at https://github.com/bipashant/rubion.
222
322
 
223
323
  1. Fork it
224
324
  2. Create your feature branch (`git checkout -b feature/my-new-feature`)
@@ -230,36 +330,16 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/yourus
230
330
 
231
331
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
232
332
 
233
- ## Code of Conduct
234
-
235
- Everyone interacting in the Rubion project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.
236
-
237
333
  ## Support
238
334
 
239
335
  If you have any questions or need help, please:
240
- - Open an issue on GitHub
336
+ - Open an issue on GitHub: https://github.com/bipashant/rubion/issues
241
337
  - Check the documentation
242
- - Contact the maintainers
243
-
244
- ## Performance
245
-
246
- Rubion is optimized for speed:
247
-
248
- - **Parallel API Processing**: Uses 10 concurrent threads to fetch version data from RubyGems.org and NPM registry
249
- - **Single API Call Per Package**: Fetches all necessary data (dates, version list) in one request
250
- - **Incremental Output**: Shows gem results immediately, then scans packages (better UX)
251
- - **Progress Indicators**: Shows real-time progress like "Checking Ruby gems... 10/54"
252
-
253
- Typical scan times:
254
- - Gems only: ~4-5 seconds (for ~140 gems)
255
- - Packages only: ~3-4 seconds (for ~50 packages)
256
- - Both: ~7-9 seconds total
338
+ - Review the [CHANGELOG.md](CHANGELOG.md) for recent changes
257
339
 
258
340
  ## Roadmap
259
341
 
260
342
  Future features planned:
261
- - [ ] Sorting options (by severity, name, date, etc.)
262
- - [ ] Filtering options (by severity, outdated threshold, etc.)
263
343
  - [ ] Export formats (JSON, CSV, HTML)
264
344
  - [ ] Summary statistics
265
345
  - [ ] Update command suggestions
@@ -275,4 +355,3 @@ Future features planned:
275
355
 
276
356
  - Built with [terminal-table](https://github.com/tj/terminal-table)
277
357
  - Inspired by tools like `bundle-audit` and `npm audit`
278
-
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rubion
4
- VERSION = "0.3.10"
4
+ VERSION = "0.3.11"
5
5
  end
6
6
 
data/rubion.gemspec CHANGED
@@ -1,36 +1,179 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "lib/rubion/version"
3
+ require_relative 'lib/rubion/version'
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.name = "rubion"
6
+ spec.name = 'rubion'
7
7
  spec.version = Rubion::VERSION
8
- spec.authors = ["bipashant"]
9
- spec.email = ["bs_chapagain@hotmail.com"]
8
+ spec.authors = ['bipashant']
9
+ spec.email = ['bs_chapagain@hotmail.com']
10
10
 
11
- spec.summary = "Security and version scanner for Ruby and JavaScript projects"
12
- spec.description = "Rubion scans your project for Ruby gem vulnerabilities, outdated gems, NPM package vulnerabilities, and outdated packages. It provides a clean, organized report with actionable insights."
13
- spec.homepage = "https://github.com/bipashant/rubion"
14
- spec.license = "MIT"
15
- spec.required_ruby_version = ">= 2.6.0"
11
+ spec.summary = 'Security and version scanner for Ruby and JavaScript projects'
12
+ spec.description = <<~DESC
13
+ Rubion is a comprehensive security and version scanner for Ruby and JavaScript projects.
14
+ It helps you identify vulnerabilities and outdated dependencies in your Ruby gems and NPM/JavaScript packages.
16
15
 
17
- spec.metadata["homepage_uri"] = spec.homepage
18
- spec.metadata["source_code_uri"] = "https://github.com/bipashant/rubion"
19
- spec.metadata["changelog_uri"] = "https://github.com/bipashant/rubion/blob/main/CHANGELOG.md"
20
- spec.metadata["bug_tracker_uri"] = "https://github.com/bipashant/rubion/issues"
16
+ ## Features
17
+
18
+ - 📛 Gem Vulnerabilities: Scans for known security vulnerabilities in Ruby gems using bundle-audit
19
+ - 📦 Gem Versions: Identifies outdated Ruby gems with release dates and version counts
20
+ - 📛 Package Vulnerabilities: Scans for known security vulnerabilities in NPM/JavaScript packages
21
+ - 📦 Package Versions: Identifies outdated NPM/JavaScript packages with release dates
22
+ - 🎯 Direct Dependencies: Highlights direct dependencies (from Gemfile/package.json) in bold text
23
+ - 🔍 Filtering: Option to show only direct dependencies with --exclude-dependencies flag
24
+ - 📊 Sorting: Sort results by any column (Name, Current, Date, Latest, Behind By(Time), Behind By(Versions))
25
+ - 🚀 Fast & Efficient: Parallel API processing (10 concurrent threads) for quick results
26
+ - 📦 Multi-Package Manager: Supports both npm and yarn with automatic detection
27
+
28
+ ## Installation
29
+
30
+ ```bash
31
+ gem install rubion
32
+ ```
33
+
34
+ Or add to your Gemfile:
35
+
36
+ ```ruby
37
+ gem 'rubion', '~> 0.3.10'
38
+ ```
39
+
40
+ ## Usage
41
+
42
+ ### Basic Scan
43
+
44
+ ```bash
45
+ rubion scan
46
+ ```
47
+
48
+ ### Scan Options
49
+
50
+ ```bash
51
+ # Scan only Ruby gems
52
+ rubion scan --gems-only
53
+ # or
54
+ rubion scan -g
55
+
56
+ # Scan only NPM packages
57
+ rubion scan --packages-only
58
+ # or
59
+ rubion scan -p
60
+
61
+ # Sort by column
62
+ rubion scan --sort-by Name
63
+ rubion scan --sort-by "Behind By(Time)" --desc
64
+
65
+ # Show only direct dependencies
66
+ rubion scan --exclude-dependencies
67
+ ```
68
+
69
+ ### Example Output
70
+
71
+ Complete Scan Output:
72
+
73
+ ```
74
+ 🔍 Scanning project at: /path/to/project
75
+
76
+ 📦 Checking Ruby gems... 139/139 ✓
77
+
78
+ Gem Vulnerabilities:
79
+
80
+ +----------+--------+---------+------------------------------------------+
81
+ | Level | Name | Version | Vulnerability |
82
+ +----------+--------+---------+------------------------------------------+
83
+ | 🔴 Critical | rexml | 3.4.1 | REXML has DoS condition when parsing... |
84
+ | 🟠 High | rack | 2.0.8 | Denial of Service vulnerability |
85
+ | 🟡 Medium | nokogiri | 1.13.8 | XML parsing vulnerability |
86
+ | 🟢 Low | json | 2.6.1 | JSON parsing issue |
87
+ +----------+--------+---------+------------------------------------------+
88
+
89
+ Gem Versions:
90
+
91
+ +------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
92
+ | Name | Current | Current version released on | Latest | Latest version released on | Behind By(Time) ↓ | Behind By(Versions) |
93
+ +------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
94
+ | sidekiq | 7.30 | 3/5/2024 | 8.1 | 11/11/2025 | 1 year | 15 |
95
+ | rails | 7.0.0 | 12/15/2022 | 7.1.0 | 10/4/2024 | 1 year 10 months | 8 |
96
+ | fastimage | 2.2.7 | 2/2/2025 | 2.3.2 | 9/9/2025 | 7 months | 3 |
97
+ | nokogiri | 1.13.8 | 5/10/2023 | 1.15.0 | 8/20/2024 | 1 year 3 months | 12 |
98
+ | redis | 4.8.0 | 1/15/2023 | 5.0.0 | 11/1/2024 | 1 year 9 months | 20 |
99
+ | pg | 1.4.0 | 3/20/2023 | 1.5.0 | 9/15/2024 | 1 year 5 months | 6 |
100
+ +------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
101
+
102
+ 📦 Checking NPM packages... 45/45 ✓
103
+
104
+ Package Vulnerabilities:
105
+
106
+ +----------+--------+---------+------------------------------------------+
107
+ | Level | Name | Version | Vulnerability |
108
+ +----------+--------+---------+------------------------------------------+
109
+ | 🔴 Critical | lodash | 4.17.20 | Prototype pollution vulnerability |
110
+ | 🟠 High | moment | 2.29.1 | Wrong timezone date calculation |
111
+ | 🟡 Medium | axios | 0.21.1 | Server-Side Request Forgery (SSRF) |
112
+ | 🟢 Low | debug | 4.3.1 | Regular Expression Denial of Service |
113
+ +----------+--------+---------+------------------------------------------+
114
+
115
+ Package Versions:
116
+
117
+ +------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
118
+ | Name | Current | Current version released on | Latest | Latest version released on | Behind By(Time) ↓ | Behind By(Versions) |
119
+ +------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
120
+ | react | 17.0.2 | 3/3/2021 | 18.2.0 | 6/14/2023 | 2 years 3 months | 45 |
121
+ | vue | 3.2.0 | 8/5/2021 | 3.3.0 | 5/18/2023 | 1 year 9 months | 8 |
122
+ | jquery | 3.7.1 | 4/5/2024 | 3.9.1 | 10/11/2025 | 1 year | 8 |
123
+ | express | 4.18.0 | 4/25/2022 | 4.18.2 | 8/15/2023 | 1 year 3 months | 2 |
124
+ | webpack | 5.70.0 | 3/1/2022 | 5.88.0 | 6/1/2023 | 1 year 3 months | 18 |
125
+ | typescript | 4.7.0 | 5/24/2022 | 5.1.0 | 5/25/2023 | 1 year | 12 |
126
+ +------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
127
+ ```
128
+
129
+ Direct Dependencies Only (with --exclude-dependencies):
130
+
131
+ ```
132
+ Gem Versions:
133
+
134
+ +----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
135
+ | Name | Current | Current version released on | Latest | Latest version released on | Behind By(Time) ↓ | Behind By(Versions) |
136
+ +----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
137
+ | **rails**| 7.0.0 | 12/15/2022 | 7.1.0 | 10/4/2024 | 1 year 10 months | 8 |
138
+ | **sidekiq**| 7.30 | 3/5/2024 | 8.1 | 11/11/2025 | 1 year | 15 |
139
+ | **pg** | 1.4.0 | 3/20/2023 | 1.5.0 | 9/15/2024 | 1 year 5 months | 6 |
140
+ +----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+
141
+ ```
142
+
143
+ Note: Direct dependencies (from Gemfile or package.json) are displayed in bold text in the version tables.
144
+
145
+ ## Requirements
146
+
147
+ - Ruby 2.6 or higher
148
+ - Bundler (for Ruby gem scanning)
149
+ - NPM or Yarn (optional, for JavaScript package scanning)
150
+ - bundler-audit (optional, install with: gem install bundler-audit)
151
+
152
+ ## Documentation
153
+
154
+ For more information, visit: https://github.com/bipashant/rubion
155
+ DESC
156
+ spec.homepage = 'https://github.com/bipashant/rubion'
157
+ spec.license = 'MIT'
158
+ spec.required_ruby_version = '>= 2.6.0'
159
+
160
+ spec.metadata['homepage_uri'] = spec.homepage
161
+ spec.metadata['source_code_uri'] = 'https://github.com/bipashant/rubion'
162
+ spec.metadata['changelog_uri'] = 'https://github.com/bipashant/rubion/blob/main/CHANGELOG.md'
163
+ spec.metadata['bug_tracker_uri'] = 'https://github.com/bipashant/rubion/issues'
164
+ spec.metadata['rubygems_mfa_required'] = 'true'
21
165
 
22
166
  # Specify which files should be added to the gem when it is released.
23
- spec.files = Dir.glob("{bin,lib}/**/*") + %w[README.md LICENSE Gemfile rubion.gemspec]
24
- spec.bindir = "bin"
25
- spec.executables = ["rubion"]
26
- spec.require_paths = ["lib"]
167
+ spec.files = Dir.glob('{bin,lib}/**/*') + %w[README.md LICENSE Gemfile rubion.gemspec]
168
+ spec.bindir = 'bin'
169
+ spec.executables = ['rubion']
170
+ spec.require_paths = ['lib']
27
171
 
28
172
  # Runtime dependencies
29
- spec.add_dependency "terminal-table", "~> 3.0"
173
+ spec.add_dependency 'terminal-table', '~> 3.0'
30
174
 
31
175
  # Development dependencies
32
- spec.add_development_dependency "rake", "~> 13.0"
33
- spec.add_development_dependency "rspec", "~> 3.12"
34
- spec.add_development_dependency "rubocop", "~> 1.21"
176
+ spec.add_development_dependency 'rake', '~> 13.0'
177
+ spec.add_development_dependency 'rspec', '~> 3.12'
178
+ spec.add_development_dependency 'rubocop', '~> 1.21'
35
179
  end
36
-
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubion
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.10
4
+ version: 0.3.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - bipashant
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-11-14 00:00:00.000000000 Z
11
+ date: 2025-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: terminal-table
@@ -66,9 +66,76 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.21'
69
- description: Rubion scans your project for Ruby gem vulnerabilities, outdated gems,
70
- NPM package vulnerabilities, and outdated packages. It provides a clean, organized
71
- report with actionable insights.
69
+ description: "Rubion is a comprehensive security and version scanner for Ruby and
70
+ JavaScript projects.\nIt helps you identify vulnerabilities and outdated dependencies
71
+ in your Ruby gems and NPM/JavaScript packages.\n\n## Features\n\n- \U0001F4DB Gem
72
+ Vulnerabilities: Scans for known security vulnerabilities in Ruby gems using bundle-audit\n-
73
+ \U0001F4E6 Gem Versions: Identifies outdated Ruby gems with release dates and version
74
+ counts\n- \U0001F4DB Package Vulnerabilities: Scans for known security vulnerabilities
75
+ in NPM/JavaScript packages\n- \U0001F4E6 Package Versions: Identifies outdated NPM/JavaScript
76
+ packages with release dates\n- \U0001F3AF Direct Dependencies: Highlights direct
77
+ dependencies (from Gemfile/package.json) in bold text\n- \U0001F50D Filtering: Option
78
+ to show only direct dependencies with --exclude-dependencies flag\n- \U0001F4CA
79
+ Sorting: Sort results by any column (Name, Current, Date, Latest, Behind By(Time),
80
+ Behind By(Versions))\n- \U0001F680 Fast & Efficient: Parallel API processing (10
81
+ concurrent threads) for quick results\n- \U0001F4E6 Multi-Package Manager: Supports
82
+ both npm and yarn with automatic detection\n\n## Installation\n\n```bash\ngem install
83
+ rubion\n```\n\nOr add to your Gemfile:\n\n```ruby\ngem 'rubion', '~> 0.3.10'\n```\n\n##
84
+ Usage\n\n### Basic Scan\n\n```bash\nrubion scan\n```\n\n### Scan Options\n\n```bash\n#
85
+ Scan only Ruby gems\nrubion scan --gems-only\n# or\nrubion scan -g\n\n# Scan only
86
+ NPM packages\nrubion scan --packages-only\n# or\nrubion scan -p\n\n# Sort by column\nrubion
87
+ scan --sort-by Name\nrubion scan --sort-by \"Behind By(Time)\" --desc\n\n# Show
88
+ only direct dependencies\nrubion scan --exclude-dependencies\n```\n\n### Example
89
+ Output\n\nComplete Scan Output:\n\n```\n\U0001F50D Scanning project at: /path/to/project\n\n\U0001F4E6
90
+ Checking Ruby gems... 139/139 ✓\n\nGem Vulnerabilities:\n\n+----------+--------+---------+------------------------------------------+\n|
91
+ Level | Name | Version | Vulnerability |\n+----------+--------+---------+------------------------------------------+\n|
92
+ \U0001F534 Critical | rexml | 3.4.1 | REXML has DoS condition when parsing...
93
+ |\n| \U0001F7E0 High | rack | 2.0.8 | Denial of Service vulnerability |\n|
94
+ \U0001F7E1 Medium | nokogiri | 1.13.8 | XML parsing vulnerability |\n|
95
+ \U0001F7E2 Low | json | 2.6.1 | JSON parsing issue |\n+----------+--------+---------+------------------------------------------+\n\nGem
96
+ Versions:\n\n+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n|
97
+ Name | Current | Current version released on | Latest | Latest version
98
+ released on | Behind By(Time) ↓ | Behind By(Versions) |\n+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n|
99
+ sidekiq | 7.30 | 3/5/2024 | 8.1 | 11/11/2025 |
100
+ 1 year | 15 |\n| rails | 7.0.0 | 12/15/2022
101
+ \ | 7.1.0 | 10/4/2024 | 1 year 10 months | 8 |\n|
102
+ fastimage | 2.2.7 | 2/2/2025 | 2.3.2 | 9/9/2025 |
103
+ 7 months | 3 |\n| nokogiri | 1.13.8 | 5/10/2023
104
+ \ | 1.15.0 | 8/20/2024 | 1 year 3 months | 12 |\n|
105
+ redis | 4.8.0 | 1/15/2023 | 5.0.0 | 11/1/2024 |
106
+ 1 year 9 months | 20 |\n| pg | 1.4.0 | 3/20/2023
107
+ \ | 1.5.0 | 9/15/2024 | 1 year 5 months | 6 |\n+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n\n\U0001F4E6
108
+ Checking NPM packages... 45/45 ✓\n\nPackage Vulnerabilities:\n\n+----------+--------+---------+------------------------------------------+\n|
109
+ Level | Name | Version | Vulnerability |\n+----------+--------+---------+------------------------------------------+\n|
110
+ \U0001F534 Critical | lodash | 4.17.20 | Prototype pollution vulnerability |\n|
111
+ \U0001F7E0 High | moment | 2.29.1 | Wrong timezone date calculation |\n|
112
+ \U0001F7E1 Medium | axios | 0.21.1 | Server-Side Request Forgery (SSRF) |\n|
113
+ \U0001F7E2 Low | debug | 4.3.1 | Regular Expression Denial of Service |\n+----------+--------+---------+------------------------------------------+\n\nPackage
114
+ Versions:\n\n+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n|
115
+ Name | Current | Current version released on | Latest | Latest version
116
+ released on | Behind By(Time) ↓ | Behind By(Versions) |\n+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n|
117
+ react | 17.0.2 | 3/3/2021 | 18.2.0 | 6/14/2023 |
118
+ 2 years 3 months | 45 |\n| vue | 3.2.0 | 8/5/2021
119
+ \ | 3.3.0 | 5/18/2023 | 1 year 9 months | 8 |\n|
120
+ jquery | 3.7.1 | 4/5/2024 | 3.9.1 | 10/11/2025 |
121
+ 1 year | 8 |\n| express | 4.18.0 | 4/25/2022
122
+ \ | 4.18.2 | 8/15/2023 | 1 year 3 months | 2 |\n|
123
+ webpack | 5.70.0 | 3/1/2022 | 5.88.0 | 6/1/2023 |
124
+ 1 year 3 months | 18 |\n| typescript | 4.7.0 | 5/24/2022
125
+ \ | 5.1.0 | 5/25/2023 | 1 year | 12 |\n+------------------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n```\n\nDirect
126
+ Dependencies Only (with --exclude-dependencies):\n\n```\nGem Versions:\n\n+----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n|
127
+ Name | Current | Current version released on | Latest | Latest version released
128
+ on | Behind By(Time) ↓ | Behind By(Versions) |\n+----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n|
129
+ **rails**| 7.0.0 | 12/15/2022 | 7.1.0 | 10/4/2024 |
130
+ 1 year 10 months | 8 |\n| **sidekiq**| 7.30 | 3/5/2024 |
131
+ 8.1 | 11/11/2025 | 1 year | 15 |\n| **pg**
132
+ \ | 1.4.0 | 3/20/2023 | 1.5.0 | 9/15/2024 | 1
133
+ year 5 months | 6 |\n+----------+---------+--------------------------+---------+--------------------------+------------------+-------------------+\n```\n\nNote:
134
+ Direct dependencies (from Gemfile or package.json) are displayed in bold text in
135
+ the version tables.\n\n## Requirements\n\n- Ruby 2.6 or higher\n- Bundler (for Ruby
136
+ gem scanning)\n- NPM or Yarn (optional, for JavaScript package scanning)\n- bundler-audit
137
+ (optional, install with: gem install bundler-audit)\n\n## Documentation\n\nFor more
138
+ information, visit: https://github.com/bipashant/rubion\n"
72
139
  email:
73
140
  - bs_chapagain@hotmail.com
74
141
  executables:
@@ -93,6 +160,7 @@ metadata:
93
160
  source_code_uri: https://github.com/bipashant/rubion
94
161
  changelog_uri: https://github.com/bipashant/rubion/blob/main/CHANGELOG.md
95
162
  bug_tracker_uri: https://github.com/bipashant/rubion/issues
163
+ rubygems_mfa_required: 'true'
96
164
  post_install_message:
97
165
  rdoc_options: []
98
166
  require_paths: