still_active 1.6.0 → 3.0.0.rc1

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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +88 -0
  3. data/README.md +131 -17
  4. data/lib/helpers/activity_helper.rb +41 -8
  5. data/lib/helpers/bundler_helper.rb +87 -26
  6. data/lib/helpers/catalog_index.rb +4 -1
  7. data/lib/helpers/constraint_helper.rb +208 -0
  8. data/lib/helpers/cvss_helper.rb +63 -0
  9. data/lib/helpers/cyclonedx_helper.rb +44 -12
  10. data/lib/helpers/diff_markdown_helper.rb +36 -17
  11. data/lib/helpers/endoflife_helper.rb +114 -0
  12. data/lib/helpers/http_helper.rb +117 -15
  13. data/lib/helpers/lockfile_dependency_parser.rb +99 -0
  14. data/lib/helpers/lockfile_indexer.rb +3 -0
  15. data/lib/helpers/markdown_escape.rb +58 -0
  16. data/lib/helpers/markdown_helper.rb +145 -6
  17. data/lib/helpers/pep440_helper.rb +100 -0
  18. data/lib/helpers/python_helper.rb +19 -0
  19. data/lib/helpers/ruby_advisory_db.rb +23 -0
  20. data/lib/helpers/ruby_helper.rb +18 -28
  21. data/lib/helpers/runtime_ceiling_helper.rb +121 -0
  22. data/lib/helpers/sarif_helper.rb +157 -28
  23. data/lib/helpers/semver_satisfaction.rb +68 -0
  24. data/lib/helpers/status_helper.rb +68 -0
  25. data/lib/helpers/summary_helper.rb +52 -0
  26. data/lib/helpers/terminal_helper.rb +167 -19
  27. data/lib/helpers/version_helper.rb +16 -1
  28. data/lib/helpers/vulnerability_helper.rb +73 -7
  29. data/lib/still_active/artifactory_client.rb +166 -0
  30. data/lib/still_active/ceiling_reconciler.rb +43 -0
  31. data/lib/still_active/cli.rb +292 -20
  32. data/lib/still_active/config.rb +59 -2
  33. data/lib/still_active/config_file.rb +207 -0
  34. data/lib/still_active/deps_dev_client.rb +140 -9
  35. data/lib/still_active/diff.rb +81 -2
  36. data/lib/still_active/ecosystem_lens.rb +284 -0
  37. data/lib/still_active/ecosystems_client.rb +123 -0
  38. data/lib/still_active/forgejo_client.rb +50 -0
  39. data/lib/still_active/github_client.rb +126 -0
  40. data/lib/still_active/gitlab_client.rb +15 -20
  41. data/lib/still_active/options.rb +58 -6
  42. data/lib/still_active/osv_client.rb +147 -0
  43. data/lib/still_active/poison_security_correlator.rb +232 -0
  44. data/lib/still_active/pypi_client.rb +56 -0
  45. data/lib/still_active/repository.rb +12 -4
  46. data/lib/still_active/sarif/rules.rb +35 -11
  47. data/lib/still_active/sbom_reader.rb +191 -0
  48. data/lib/still_active/sbom_workflow.rb +96 -0
  49. data/lib/still_active/suppressions.rb +143 -0
  50. data/lib/still_active/version.rb +1 -1
  51. data/lib/still_active/workflow.rb +312 -61
  52. data/lib/still_active.rb +3 -0
  53. data/still_active.gemspec +34 -9
  54. metadata +72 -11
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: still_active
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.0
4
+ version: 3.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Floyd
@@ -191,14 +191,49 @@ dependencies:
191
191
  - - ">="
192
192
  - !ruby/object:Gem::Version
193
193
  version: '0'
194
- description: 'Analyses your Gemfile for dependency health: checks if gems are actively
195
- maintained (last commit dates via GitHub and GitLab, release dates), outdated versions,
196
- archived repos, OpenSSF Scorecard security scores, known vulnerabilities via deps.dev,
197
- and libyear drift. Ruby version freshness with EOL detection. Handles rubygems,
198
- git, path, and GitHub Packages sources. Outputs coloured terminal tables, markdown,
199
- or JSON. CI quality gates with --fail-if-critical, --fail-if-warning, --fail-if-vulnerable,
200
- --fail-if-outdated, and --ignore. A comprehensive alternative to running bundle
201
- outdated, bundler-audit, and libyear-bundler separately.'
194
+ - !ruby/object:Gem::Dependency
195
+ name: packageurl-ruby
196
+ requirement: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: 0.1.0
201
+ type: :runtime
202
+ prerelease: false
203
+ version_requirements: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: 0.1.0
208
+ - !ruby/object:Gem::Dependency
209
+ name: semantic_range
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
213
+ - !ruby/object:Gem::Version
214
+ version: '3.0'
215
+ type: :runtime
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '3.0'
222
+ description: 'Analyses your Gemfile.lock for dependency health across the full transitive
223
+ graph: whether each gem is actively maintained (last activity on GitHub, GitLab,
224
+ or Codeberg/Forgejo, plus release recency), outdated versions, archived repos, OpenSSF
225
+ Scorecard scores, known vulnerabilities (deps.dev and OSV, merged with ruby-advisory-db,
226
+ flagging advisories with no fix and pins that sit below the fix), poison-pill compatibility
227
+ ceilings, and libyear drift. Ruby version freshness with EOL detection. The same
228
+ maintenance lens travels cross-ecosystem: point --sbom at a CycloneDX SBOM to assess
229
+ npm, PyPI, Cargo, Go, Maven, and NuGet packages via deps.dev and ecosyste.ms. Handles
230
+ rubygems, git, path, GitHub Packages, and JFrog Artifactory sources. Outputs coloured
231
+ terminal tables, markdown, JSON (with a versioned, contract-tested schema), SARIF
232
+ for GitHub code scanning, and a CycloneDX SBOM. CI quality gates (--fail-if-critical
233
+ / -warning / -vulnerable / -outdated / -poison / -language-ceiling) with granular,
234
+ committed suppression via .still_active.yml. Complements bundle outdated, bundler-audit,
235
+ and libyear-bundler by adding the maintenance signal they don''t, and folds their
236
+ version, CVE, and libyear checks into one report.'
202
237
  email:
203
238
  - contact@seanfloyd.dev
204
239
  executables:
@@ -216,30 +251,54 @@ files:
216
251
  - lib/helpers/bot_context.rb
217
252
  - lib/helpers/bundler_helper.rb
218
253
  - lib/helpers/catalog_index.rb
254
+ - lib/helpers/constraint_helper.rb
255
+ - lib/helpers/cvss_helper.rb
219
256
  - lib/helpers/cyclonedx_helper.rb
220
257
  - lib/helpers/diff_markdown_helper.rb
221
258
  - lib/helpers/emoji_helper.rb
259
+ - lib/helpers/endoflife_helper.rb
222
260
  - lib/helpers/http_helper.rb
223
261
  - lib/helpers/libyear_helper.rb
262
+ - lib/helpers/lockfile_dependency_parser.rb
224
263
  - lib/helpers/lockfile_indexer.rb
264
+ - lib/helpers/markdown_escape.rb
225
265
  - lib/helpers/markdown_helper.rb
266
+ - lib/helpers/pep440_helper.rb
267
+ - lib/helpers/python_helper.rb
226
268
  - lib/helpers/ruby_advisory_db.rb
227
269
  - lib/helpers/ruby_helper.rb
270
+ - lib/helpers/runtime_ceiling_helper.rb
228
271
  - lib/helpers/sarif_helper.rb
272
+ - lib/helpers/semver_satisfaction.rb
273
+ - lib/helpers/status_helper.rb
274
+ - lib/helpers/summary_helper.rb
229
275
  - lib/helpers/terminal_helper.rb
230
276
  - lib/helpers/version_helper.rb
231
277
  - lib/helpers/vulnerability_helper.rb
232
278
  - lib/still_active.rb
279
+ - lib/still_active/artifactory_client.rb
280
+ - lib/still_active/ceiling_reconciler.rb
233
281
  - lib/still_active/cli.rb
234
282
  - lib/still_active/config.rb
283
+ - lib/still_active/config_file.rb
235
284
  - lib/still_active/core_ext.rb
236
285
  - lib/still_active/deps_dev_client.rb
237
286
  - lib/still_active/diff.rb
287
+ - lib/still_active/ecosystem_lens.rb
288
+ - lib/still_active/ecosystems_client.rb
238
289
  - lib/still_active/errors.rb
290
+ - lib/still_active/forgejo_client.rb
291
+ - lib/still_active/github_client.rb
239
292
  - lib/still_active/gitlab_client.rb
240
293
  - lib/still_active/options.rb
294
+ - lib/still_active/osv_client.rb
295
+ - lib/still_active/poison_security_correlator.rb
296
+ - lib/still_active/pypi_client.rb
241
297
  - lib/still_active/repository.rb
242
298
  - lib/still_active/sarif/rules.rb
299
+ - lib/still_active/sbom_reader.rb
300
+ - lib/still_active/sbom_workflow.rb
301
+ - lib/still_active/suppressions.rb
243
302
  - lib/still_active/version.rb
244
303
  - lib/still_active/workflow.rb
245
304
  - still_active.gemspec
@@ -250,6 +309,7 @@ metadata:
250
309
  homepage_uri: https://github.com/SeanLF/still_active
251
310
  source_code_uri: https://github.com/SeanLF/still_active
252
311
  changelog_uri: https://github.com/SeanLF/still_active/blob/main/CHANGELOG.md
312
+ documentation_uri: https://github.com/SeanLF/still_active#readme
253
313
  bug_tracker_uri: https://github.com/SeanLF/still_active/issues
254
314
  rubygems_mfa_required: 'true'
255
315
  rdoc_options: []
@@ -268,6 +328,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
268
328
  requirements: []
269
329
  rubygems_version: 4.0.10
270
330
  specification_version: 4
271
- summary: Audit your Ruby dependencies for maintenance health, outdated versions, vulnerabilities,
272
- and abandoned gems.
331
+ summary: Audit your dependencies for maintenance health, abandonment, and below-the-fix
332
+ vulnerabilities. Ruby gems natively; npm, PyPI, Cargo, Go, Maven, and NuGet via
333
+ a CycloneDX SBOM.
273
334
  test_files: []