still_active 0.5.0 → 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.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +21 -0
- data/.github/workflows/codeql-analysis.yml +5 -36
- data/.github/workflows/publish.yml +19 -0
- data/.github/workflows/rspec.yml +3 -3
- data/.github/workflows/rubocop-analysis.yml +6 -15
- data/.gitignore +6 -0
- data/.rspec +0 -2
- data/.rubocop.yml +7 -3
- data/CHANGELOG.md +51 -1
- data/Gemfile +0 -1
- data/Gemfile.lock +192 -154
- data/README.md +67 -28
- data/fixtures/debug_versions.json +38 -0
- data/fixtures/still_active_version.json +9 -0
- data/fixtures/vcr_cassettes/deps_dev_project.yml +46 -0
- data/fixtures/vcr_cassettes/deps_dev_version.yml +56 -0
- data/fixtures/vcr_cassettes/gems.yml +2028 -963
- data/lib/helpers/activity_helper.rb +31 -0
- data/lib/helpers/ansi_helper.rb +25 -0
- data/lib/helpers/emoji_helper.rb +7 -16
- data/lib/helpers/http_helper.rb +31 -0
- data/lib/helpers/markdown_helper.rb +66 -55
- data/lib/helpers/terminal_helper.rb +118 -0
- data/lib/helpers/version_helper.rb +21 -19
- data/lib/still_active/cli.rb +46 -19
- data/lib/still_active/config.rb +10 -2
- data/lib/still_active/core_ext.rb +13 -0
- data/lib/still_active/deps_dev_client.rb +57 -0
- data/lib/still_active/gitlab_client.rb +30 -0
- data/lib/still_active/options.rb +19 -5
- data/lib/still_active/repository.rb +7 -14
- data/lib/still_active/version.rb +1 -1
- data/lib/still_active/workflow.rb +32 -24
- data/still_active.gemspec +11 -17
- metadata +30 -45
- data/lib/still_active/gemfile.rb +0 -14
data/Gemfile.lock
CHANGED
|
@@ -1,190 +1,159 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
still_active (0.
|
|
5
|
-
activesupport
|
|
4
|
+
still_active (1.0.0)
|
|
6
5
|
async
|
|
7
|
-
async-http
|
|
8
6
|
bundler (>= 2.0)
|
|
7
|
+
faraday-retry
|
|
9
8
|
gems
|
|
10
|
-
|
|
9
|
+
octokit
|
|
11
10
|
|
|
12
11
|
GEM
|
|
13
12
|
remote: https://rubygems.org/
|
|
14
13
|
specs:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
io-event (~> 1.1)
|
|
26
|
-
timers (~> 4.1)
|
|
27
|
-
async-http (0.60.1)
|
|
28
|
-
async (>= 1.25)
|
|
29
|
-
async-io (>= 1.28)
|
|
30
|
-
async-pool (>= 0.2)
|
|
31
|
-
protocol-http (~> 0.24.0)
|
|
32
|
-
protocol-http1 (~> 0.15.0)
|
|
33
|
-
protocol-http2 (~> 0.15.0)
|
|
34
|
-
traces (>= 0.8.0)
|
|
35
|
-
async-io (1.34.3)
|
|
36
|
-
async
|
|
37
|
-
async-pool (0.4.0)
|
|
38
|
-
async (>= 1.25)
|
|
14
|
+
addressable (2.8.8)
|
|
15
|
+
public_suffix (>= 2.0.2, < 8.0)
|
|
16
|
+
ast (2.4.3)
|
|
17
|
+
async (2.36.0)
|
|
18
|
+
console (~> 1.29)
|
|
19
|
+
fiber-annotation
|
|
20
|
+
io-event (~> 1.11)
|
|
21
|
+
metrics (~> 0.12)
|
|
22
|
+
traces (~> 0.18)
|
|
23
|
+
bigdecimal (4.0.1)
|
|
39
24
|
code-scanning-rubocop (0.6.1)
|
|
40
25
|
rubocop (~> 1.0)
|
|
41
|
-
concurrent-ruby (1.
|
|
42
|
-
console (1.
|
|
43
|
-
fiber-
|
|
44
|
-
|
|
26
|
+
concurrent-ruby (1.3.6)
|
|
27
|
+
console (1.34.3)
|
|
28
|
+
fiber-annotation
|
|
29
|
+
fiber-local (~> 1.1)
|
|
30
|
+
json
|
|
31
|
+
crack (1.0.1)
|
|
32
|
+
bigdecimal
|
|
45
33
|
rexml
|
|
46
|
-
|
|
47
|
-
debug (1.
|
|
48
|
-
irb (
|
|
49
|
-
reline (>= 0.3.
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
faker (3.2.0)
|
|
34
|
+
date (3.5.1)
|
|
35
|
+
debug (1.11.1)
|
|
36
|
+
irb (~> 1.10)
|
|
37
|
+
reline (>= 0.3.8)
|
|
38
|
+
diff-lcs (1.6.2)
|
|
39
|
+
erb (6.0.1)
|
|
40
|
+
faker (3.6.0)
|
|
54
41
|
i18n (>= 1.8.11, < 2)
|
|
55
|
-
faraday (
|
|
56
|
-
faraday-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
faraday
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
faraday-httpclient (1.0.1)
|
|
71
|
-
faraday-multipart (1.0.4)
|
|
72
|
-
multipart-post (~> 2)
|
|
73
|
-
faraday-net_http (1.0.1)
|
|
74
|
-
faraday-net_http_persistent (1.2.0)
|
|
75
|
-
faraday-patron (1.0.0)
|
|
76
|
-
faraday-rack (1.0.0)
|
|
77
|
-
faraday-retry (1.0.3)
|
|
78
|
-
fiber-local (1.0.0)
|
|
79
|
-
gems (1.2.0)
|
|
80
|
-
github_api (0.19.0)
|
|
81
|
-
addressable (~> 2.4)
|
|
82
|
-
descendants_tracker (~> 0.0.4)
|
|
83
|
-
faraday (>= 0.8, < 2)
|
|
84
|
-
hashie (~> 3.5, >= 3.5.2)
|
|
85
|
-
oauth2 (~> 1.0)
|
|
86
|
-
hashdiff (1.0.1)
|
|
87
|
-
hashie (3.6.0)
|
|
88
|
-
i18n (1.13.0)
|
|
42
|
+
faraday (2.14.1)
|
|
43
|
+
faraday-net_http (>= 2.0, < 3.5)
|
|
44
|
+
json
|
|
45
|
+
logger
|
|
46
|
+
faraday-net_http (3.4.2)
|
|
47
|
+
net-http (~> 0.5)
|
|
48
|
+
faraday-retry (2.4.0)
|
|
49
|
+
faraday (~> 2.0)
|
|
50
|
+
fiber-annotation (0.2.0)
|
|
51
|
+
fiber-local (1.1.0)
|
|
52
|
+
fiber-storage
|
|
53
|
+
fiber-storage (1.0.1)
|
|
54
|
+
gems (1.3.0)
|
|
55
|
+
hashdiff (1.2.1)
|
|
56
|
+
i18n (1.14.8)
|
|
89
57
|
concurrent-ruby (~> 1.0)
|
|
90
|
-
io-console (0.
|
|
91
|
-
io-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
parser (3.2.2.1)
|
|
58
|
+
io-console (0.8.2)
|
|
59
|
+
io-event (1.14.2)
|
|
60
|
+
irb (1.17.0)
|
|
61
|
+
pp (>= 0.6.0)
|
|
62
|
+
prism (>= 1.3.0)
|
|
63
|
+
rdoc (>= 4.0.0)
|
|
64
|
+
reline (>= 0.4.2)
|
|
65
|
+
json (2.18.1)
|
|
66
|
+
language_server-protocol (3.17.0.5)
|
|
67
|
+
lint_roller (1.1.0)
|
|
68
|
+
logger (1.7.0)
|
|
69
|
+
metrics (0.15.0)
|
|
70
|
+
net-http (0.9.1)
|
|
71
|
+
uri (>= 0.11.1)
|
|
72
|
+
octokit (10.0.0)
|
|
73
|
+
faraday (>= 1, < 3)
|
|
74
|
+
sawyer (~> 0.9)
|
|
75
|
+
parallel (1.27.0)
|
|
76
|
+
parser (3.3.10.2)
|
|
110
77
|
ast (~> 2.4.1)
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
78
|
+
racc
|
|
79
|
+
pp (0.6.3)
|
|
80
|
+
prettyprint
|
|
81
|
+
prettyprint (0.2.0)
|
|
82
|
+
prism (1.9.0)
|
|
83
|
+
psych (5.3.1)
|
|
84
|
+
date
|
|
85
|
+
stringio
|
|
86
|
+
public_suffix (7.0.2)
|
|
87
|
+
racc (1.8.1)
|
|
120
88
|
rainbow (3.1.1)
|
|
121
|
-
rake (13.
|
|
122
|
-
|
|
123
|
-
|
|
89
|
+
rake (13.3.1)
|
|
90
|
+
rdoc (7.2.0)
|
|
91
|
+
erb
|
|
92
|
+
psych (>= 4.0.0)
|
|
93
|
+
tsort
|
|
94
|
+
regexp_parser (2.11.3)
|
|
95
|
+
reline (0.6.3)
|
|
124
96
|
io-console (~> 0.5)
|
|
125
|
-
rexml (3.
|
|
126
|
-
rspec (3.
|
|
127
|
-
rspec-core (~> 3.
|
|
128
|
-
rspec-expectations (~> 3.
|
|
129
|
-
rspec-mocks (~> 3.
|
|
130
|
-
rspec-core (3.
|
|
131
|
-
rspec-support (~> 3.
|
|
132
|
-
rspec-expectations (3.
|
|
97
|
+
rexml (3.4.4)
|
|
98
|
+
rspec (3.13.2)
|
|
99
|
+
rspec-core (~> 3.13.0)
|
|
100
|
+
rspec-expectations (~> 3.13.0)
|
|
101
|
+
rspec-mocks (~> 3.13.0)
|
|
102
|
+
rspec-core (3.13.6)
|
|
103
|
+
rspec-support (~> 3.13.0)
|
|
104
|
+
rspec-expectations (3.13.5)
|
|
133
105
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
134
|
-
rspec-support (~> 3.
|
|
135
|
-
rspec-mocks (3.
|
|
106
|
+
rspec-support (~> 3.13.0)
|
|
107
|
+
rspec-mocks (3.13.7)
|
|
136
108
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
137
|
-
rspec-support (~> 3.
|
|
138
|
-
rspec-support (3.
|
|
139
|
-
rubocop (1.
|
|
109
|
+
rspec-support (~> 3.13.0)
|
|
110
|
+
rspec-support (3.13.7)
|
|
111
|
+
rubocop (1.84.2)
|
|
140
112
|
json (~> 2.3)
|
|
113
|
+
language_server-protocol (~> 3.17.0.2)
|
|
114
|
+
lint_roller (~> 1.1.0)
|
|
141
115
|
parallel (~> 1.10)
|
|
142
|
-
parser (>= 3.
|
|
116
|
+
parser (>= 3.3.0.2)
|
|
143
117
|
rainbow (>= 2.2.2, < 4.0)
|
|
144
|
-
regexp_parser (>=
|
|
145
|
-
|
|
146
|
-
rubocop-ast (>= 1.28.0, < 2.0)
|
|
118
|
+
regexp_parser (>= 2.9.3, < 3.0)
|
|
119
|
+
rubocop-ast (>= 1.49.0, < 2.0)
|
|
147
120
|
ruby-progressbar (~> 1.7)
|
|
148
|
-
unicode-display_width (>= 2.4.0, <
|
|
149
|
-
rubocop-ast (1.
|
|
150
|
-
parser (>= 3.
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
rubocop (
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
rubocop
|
|
161
|
-
rubocop-factory_bot (~> 2.22)
|
|
162
|
-
rubocop-shopify (2.13.0)
|
|
163
|
-
rubocop (~> 1.50)
|
|
121
|
+
unicode-display_width (>= 2.4.0, < 4.0)
|
|
122
|
+
rubocop-ast (1.49.0)
|
|
123
|
+
parser (>= 3.3.7.2)
|
|
124
|
+
prism (~> 1.7)
|
|
125
|
+
rubocop-performance (1.26.1)
|
|
126
|
+
lint_roller (~> 1.1)
|
|
127
|
+
rubocop (>= 1.75.0, < 2.0)
|
|
128
|
+
rubocop-ast (>= 1.47.1, < 2.0)
|
|
129
|
+
rubocop-rspec (3.9.0)
|
|
130
|
+
lint_roller (~> 1.1)
|
|
131
|
+
rubocop (~> 1.81)
|
|
132
|
+
rubocop-shopify (2.18.0)
|
|
133
|
+
rubocop (~> 1.62)
|
|
164
134
|
ruby-progressbar (1.13.0)
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
traces (0.
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
135
|
+
sawyer (0.9.3)
|
|
136
|
+
addressable (>= 2.3.5)
|
|
137
|
+
faraday (>= 0.17.3, < 3)
|
|
138
|
+
stringio (3.2.0)
|
|
139
|
+
traces (0.18.2)
|
|
140
|
+
tsort (0.2.0)
|
|
141
|
+
unicode-display_width (3.2.0)
|
|
142
|
+
unicode-emoji (~> 4.1)
|
|
143
|
+
unicode-emoji (4.2.0)
|
|
144
|
+
uri (1.1.1)
|
|
145
|
+
vcr (6.4.0)
|
|
146
|
+
webmock (3.26.1)
|
|
175
147
|
addressable (>= 2.8.0)
|
|
176
148
|
crack (>= 0.3.2)
|
|
177
149
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
178
150
|
|
|
179
151
|
PLATFORMS
|
|
152
|
+
arm64-darwin-25
|
|
180
153
|
ruby
|
|
181
|
-
universal-java-11
|
|
182
|
-
x86_64-darwin-21
|
|
183
|
-
x86_64-linux
|
|
184
154
|
|
|
185
155
|
DEPENDENCIES
|
|
186
156
|
code-scanning-rubocop
|
|
187
|
-
dead_end
|
|
188
157
|
debug
|
|
189
158
|
faker
|
|
190
159
|
rake (>= 13.0)
|
|
@@ -197,5 +166,74 @@ DEPENDENCIES
|
|
|
197
166
|
vcr
|
|
198
167
|
webmock
|
|
199
168
|
|
|
169
|
+
CHECKSUMS
|
|
170
|
+
addressable (2.8.8) sha256=7c13b8f9536cf6364c03b9d417c19986019e28f7c00ac8132da4eb0fe393b057
|
|
171
|
+
ast (2.4.3) sha256=954615157c1d6a382bc27d690d973195e79db7f55e9765ac7c481c60bdb4d383
|
|
172
|
+
async (2.36.0) sha256=090623f4c65706664355c9efa6c7bfb86771a513e65cd681c51cb27747530550
|
|
173
|
+
bigdecimal (4.0.1) sha256=8b07d3d065a9f921c80ceaea7c9d4ae596697295b584c296fe599dd0ad01c4a7
|
|
174
|
+
code-scanning-rubocop (0.6.1) sha256=f6036d4541307ab982b46b424b7577be3a78982a770a4d92307029a9f668cb2f
|
|
175
|
+
concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
|
|
176
|
+
console (1.34.3) sha256=869fbd74697efc4c606f102d2812b0b008e4e7fd738a91c591e8577140ec0dcc
|
|
177
|
+
crack (1.0.1) sha256=ff4a10390cd31d66440b7524eb1841874db86201d5b70032028553130b6d4c7e
|
|
178
|
+
date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
|
|
179
|
+
debug (1.11.1) sha256=2e0b0ac6119f2207a6f8ac7d4a73ca8eb4e440f64da0a3136c30343146e952b6
|
|
180
|
+
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
|
|
181
|
+
erb (6.0.1) sha256=28ecdd99c5472aebd5674d6061e3c6b0a45c049578b071e5a52c2a7f13c197e5
|
|
182
|
+
faker (3.6.0) sha256=4ce80bf91c8d09bbfff4c5596690bf862d60eac420f86737ca8ce12a54dc464a
|
|
183
|
+
faraday (2.14.1) sha256=a43cceedc1e39d188f4d2cdd360a8aaa6a11da0c407052e426ba8d3fb42ef61c
|
|
184
|
+
faraday-net_http (3.4.2) sha256=f147758260d3526939bf57ecf911682f94926a3666502e24c69992765875906c
|
|
185
|
+
faraday-retry (2.4.0) sha256=7b79c48fb7e56526faf247b12d94a680071ff40c9fda7cf1ec1549439ad11ebe
|
|
186
|
+
fiber-annotation (0.2.0) sha256=7abfadf1d119f508867d4103bf231c0354d019cc39a5738945dec2edadaf6c03
|
|
187
|
+
fiber-local (1.1.0) sha256=c885f94f210fb9b05737de65d511136ea602e00c5105953748aa0f8793489f06
|
|
188
|
+
fiber-storage (1.0.1) sha256=f48e5b6d8b0be96dac486332b55cee82240057065dc761c1ea692b2e719240e1
|
|
189
|
+
gems (1.3.0) sha256=37e7fb834365f39d3c2c649f0a7017288b0fe9ca69d3056b6760b53468b585ae
|
|
190
|
+
hashdiff (1.2.1) sha256=9c079dbc513dfc8833ab59c0c2d8f230fa28499cc5efb4b8dd276cf931457cd1
|
|
191
|
+
i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
|
|
192
|
+
io-console (0.8.2) sha256=d6e3ae7a7cc7574f4b8893b4fca2162e57a825b223a177b7afa236c5ef9814cc
|
|
193
|
+
io-event (1.14.2) sha256=b0a069190eafe86005c22f7464f744971b5bd82f153740d34e6ab49548d4f613
|
|
194
|
+
irb (1.17.0) sha256=168c4ddb93d8a361a045c41d92b2952c7a118fa73f23fe14e55609eb7a863aae
|
|
195
|
+
json (2.18.1) sha256=fe112755501b8d0466b5ada6cf50c8c3f41e897fa128ac5d263ec09eedc9f986
|
|
196
|
+
language_server-protocol (3.17.0.5) sha256=fd1e39a51a28bf3eec959379985a72e296e9f9acfce46f6a79d31ca8760803cc
|
|
197
|
+
lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
|
|
198
|
+
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
|
|
199
|
+
metrics (0.15.0) sha256=61ded5bac95118e995b1bc9ed4a5f19bc9814928a312a85b200abbdac9039072
|
|
200
|
+
net-http (0.9.1) sha256=25ba0b67c63e89df626ed8fac771d0ad24ad151a858af2cc8e6a716ca4336996
|
|
201
|
+
octokit (10.0.0) sha256=82e99a539b7637b7e905e6d277bb0c1a4bed56735935cc33db6da7eae49a24e8
|
|
202
|
+
parallel (1.27.0) sha256=4ac151e1806b755fb4e2dc2332cbf0e54f2e24ba821ff2d3dcf86bf6dc4ae130
|
|
203
|
+
parser (3.3.10.2) sha256=6f60c84aa4bdcedb6d1a2434b738fe8a8136807b6adc8f7f53b97da9bc4e9357
|
|
204
|
+
pp (0.6.3) sha256=2951d514450b93ccfeb1df7d021cae0da16e0a7f95ee1e2273719669d0ab9df6
|
|
205
|
+
prettyprint (0.2.0) sha256=2bc9e15581a94742064a3cc8b0fb9d45aae3d03a1baa6ef80922627a0766f193
|
|
206
|
+
prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
|
|
207
|
+
psych (5.3.1) sha256=eb7a57cef10c9d70173ff74e739d843ac3b2c019a003de48447b2963d81b1974
|
|
208
|
+
public_suffix (7.0.2) sha256=9114090c8e4e7135c1fd0e7acfea33afaab38101884320c65aaa0ffb8e26a857
|
|
209
|
+
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
|
|
210
|
+
rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
|
|
211
|
+
rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c
|
|
212
|
+
rdoc (7.2.0) sha256=8650f76cd4009c3b54955eb5d7e3a075c60a57276766ebf36f9085e8c9f23192
|
|
213
|
+
regexp_parser (2.11.3) sha256=ca13f381a173b7a93450e53459075c9b76a10433caadcb2f1180f2c741fc55a4
|
|
214
|
+
reline (0.6.3) sha256=1198b04973565b36ec0f11542ab3f5cfeeec34823f4e54cebde90968092b1835
|
|
215
|
+
rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142
|
|
216
|
+
rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
|
|
217
|
+
rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
|
|
218
|
+
rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
|
|
219
|
+
rspec-mocks (3.13.7) sha256=0979034e64b1d7a838aaaddf12bf065ea4dc40ef3d4c39f01f93ae2c66c62b1c
|
|
220
|
+
rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
|
|
221
|
+
rubocop (1.84.2) sha256=5692cea54168f3dc8cb79a6fe95c5424b7ea893c707ad7a4307b0585e88dbf5f
|
|
222
|
+
rubocop-ast (1.49.0) sha256=49c3676d3123a0923d333e20c6c2dbaaae2d2287b475273fddee0c61da9f71fd
|
|
223
|
+
rubocop-performance (1.26.1) sha256=cd19b936ff196df85829d264b522fd4f98b6c89ad271fa52744a8c11b8f71834
|
|
224
|
+
rubocop-rspec (3.9.0) sha256=8fa70a3619408237d789aeecfb9beef40576acc855173e60939d63332fdb55e2
|
|
225
|
+
rubocop-shopify (2.18.0) sha256=dafa25e5617ce4600ff86b1de3d5b78e43ab3d58cc5729df38e492b8e10294eb
|
|
226
|
+
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
|
|
227
|
+
sawyer (0.9.3) sha256=0d0f19298408047037638639fe62f4794483fb04320269169bd41af2bdcf5e41
|
|
228
|
+
still_active (1.0.0)
|
|
229
|
+
stringio (3.2.0) sha256=c37cb2e58b4ffbd33fe5cd948c05934af997b36e0b6ca6fdf43afa234cf222e1
|
|
230
|
+
traces (0.18.2) sha256=80f1649cb4daace1d7174b81f3b3b7427af0b93047759ba349960cb8f315e214
|
|
231
|
+
tsort (0.2.0) sha256=9650a793f6859a43b6641671278f79cfead60ac714148aabe4e3f0060480089f
|
|
232
|
+
unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
|
|
233
|
+
unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
|
|
234
|
+
uri (1.1.1) sha256=379fa58d27ffb1387eaada68c749d1426738bd0f654d812fcc07e7568f5c57c6
|
|
235
|
+
vcr (6.4.0) sha256=077ac92cc16efc5904eb90492a18153b5e6ca5398046d8a249a7c96a9ea24ae6
|
|
236
|
+
webmock (3.26.1) sha256=4f696fb57c90a827c20aadb2d4f9058bbff10f7f043bd0d4c3f58791143b1cd7
|
|
237
|
+
|
|
200
238
|
BUNDLED WITH
|
|
201
|
-
|
|
239
|
+
4.0.3
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# `still_active`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Analyses your Gemfile dependencies for staleness: latest releases, last commit dates (GitHub and GitLab), OpenSSF Scorecard scores, and known vulnerabilities via deps.dev. Outputs coloured terminal tables, markdown, or JSON with CI gating support.
|
|
4
4
|
|
|
5
5
|
[](https://badge.fury.io/rb/still_active)
|
|
6
6
|
|
|
@@ -16,7 +16,7 @@ gem install still_active
|
|
|
16
16
|
|
|
17
17
|
## Usage
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Tokens are read from `GITHUB_TOKEN` and `GITLAB_TOKEN` environment variables by default. Without a GitHub token you will most certainly get rate limited. The GitLab token is optional for public repos but required for private ones. CLI flags override the env vars.
|
|
20
20
|
|
|
21
21
|
```text
|
|
22
22
|
Usage: still_active [options]
|
|
@@ -25,12 +25,16 @@ Usage: still_active [options]
|
|
|
25
25
|
|
|
26
26
|
--gemfile=GEMFILE path to gemfile
|
|
27
27
|
--gems=GEM,GEM2,... Gem(s)
|
|
28
|
-
--
|
|
29
|
-
--
|
|
28
|
+
--terminal Coloured terminal output (default in TTY)
|
|
29
|
+
--markdown Markdown table output
|
|
30
|
+
--json JSON output (default when piped)
|
|
30
31
|
--github-oauth-token=TOKEN GitHub OAuth token to make API calls
|
|
32
|
+
--gitlab-token=TOKEN GitLab personal access token for API calls
|
|
31
33
|
--simultaneous-requests=QTY Number of simultaneous requests made
|
|
32
|
-
--
|
|
33
|
-
--warning-range-end=YEARS maximum
|
|
34
|
+
--safe-range-end=YEARS maximum years since last activity considered safe (no warning)
|
|
35
|
+
--warning-range-end=YEARS maximum years since last activity that triggers a warning (beyond this is critical)
|
|
36
|
+
--fail-if-critical Exit 1 if any gem has critical activity warning
|
|
37
|
+
--fail-if-warning Exit 1 if any gem has warning or critical activity warning
|
|
34
38
|
--critical-warning-emoji=EMOJI
|
|
35
39
|
--futurist-emoji=EMOJI
|
|
36
40
|
--success-emoji=EMOJI
|
|
@@ -49,49 +53,84 @@ still_active --json --gems=rails,nokogiri
|
|
|
49
53
|
Will output:
|
|
50
54
|
|
|
51
55
|
```json
|
|
52
|
-
{
|
|
56
|
+
{
|
|
57
|
+
"rails": {
|
|
58
|
+
"latest_version": "8.1.2",
|
|
59
|
+
"latest_version_release_date": "2026-01-08 20:18:51 UTC",
|
|
60
|
+
"latest_pre_release_version": "8.1.0.rc1",
|
|
61
|
+
"latest_pre_release_version_release_date": "2025-10-15 00:52:14 UTC",
|
|
62
|
+
"repository_url": "https://github.com/rails/rails",
|
|
63
|
+
"last_commit_date": "2026-02-19 09:39:03 UTC",
|
|
64
|
+
"scorecard_score": 5.7,
|
|
65
|
+
"vulnerability_count": 0,
|
|
66
|
+
"ruby_gems_url": "https://rubygems.org/gems/rails"
|
|
67
|
+
},
|
|
68
|
+
"nokogiri": {
|
|
69
|
+
"latest_version": "1.19.1",
|
|
70
|
+
"latest_version_release_date": "2026-02-16 23:31:21 UTC",
|
|
71
|
+
"latest_pre_release_version": "1.18.0.rc1",
|
|
72
|
+
"latest_pre_release_version_release_date": "2024-12-16 17:48:44 UTC",
|
|
73
|
+
"repository_url": "https://github.com/sparklemotion/nokogiri",
|
|
74
|
+
"last_commit_date": "2026-02-17 19:13:22 UTC",
|
|
75
|
+
"scorecard_score": 6.5,
|
|
76
|
+
"vulnerability_count": 0,
|
|
77
|
+
"ruby_gems_url": "https://rubygems.org/gems/nokogiri"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
53
80
|
```
|
|
54
81
|
|
|
55
82
|
```bash
|
|
56
|
-
#
|
|
57
|
-
still_active --
|
|
83
|
+
# run against this gem's own Gemfile
|
|
84
|
+
still_active --markdown
|
|
58
85
|
```
|
|
59
86
|
|
|
60
87
|
Outputs:
|
|
61
88
|
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
| ⚠️
|
|
65
|
-
|
|
|
66
|
-
|
|
|
67
|
-
|
|
|
68
|
-
|
|
|
69
|
-
|
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
|
|
|
74
|
-
|
|
|
75
|
-
|
|
76
|
-
|
|
89
|
+
| activity | up to date? | OpenSSF | vulns | name | version used | latest version | latest pre-release | last commit |
|
|
90
|
+
| -------- | ----------- | ------- | ----- | -------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------------------ |
|
|
91
|
+
| ⚠️ | ✅ | 3.1/10 | ✅ | [code-scanning-rubocop](https://github.com/arthurnn/code-scanning-rubocop) | [0.6.1](https://rubygems.org/gems/code-scanning-rubocop/versions/0.6.1) (2022/02) | [0.6.1](https://rubygems.org/gems/code-scanning-rubocop/versions/0.6.1) (2022/02) | ❓ | [2024/06](https://github.com/arthurnn/code-scanning-rubocop) |
|
|
92
|
+
| | ✅ | 5.2/10 | ✅ | [debug](https://github.com/ruby/debug) | [1.11.1](https://rubygems.org/gems/debug/versions/1.11.1) (2025/12) | [1.11.1](https://rubygems.org/gems/debug/versions/1.11.1) (2025/12) | [1.0.0.rc2](https://rubygems.org/gems/debug/versions/1.0.0.rc2) (2021/09) | [2025/12](https://github.com/ruby/debug) |
|
|
93
|
+
| | ✅ | 7.4/10 | ✅ | [faker](https://github.com/faker-ruby/faker) | [3.6.0](https://rubygems.org/gems/faker/versions/3.6.0) (2026/01) | [3.6.0](https://rubygems.org/gems/faker/versions/3.6.0) (2026/01) | ❓ | [2026/02](https://github.com/faker-ruby/faker) |
|
|
94
|
+
| | ✅ | 5.3/10 | ✅ | [rake](https://github.com/ruby/rake) | [13.3.1](https://rubygems.org/gems/rake/versions/13.3.1) (2025/10) | [13.3.1](https://rubygems.org/gems/rake/versions/13.3.1) (2025/10) | [13.0.0.pre.1](https://rubygems.org/gems/rake/versions/13.0.0.pre.1) (2019/09) | [2026/02](https://github.com/ruby/rake) |
|
|
95
|
+
| | ✅ | 6.9/10 | ✅ | [rspec](https://github.com/rspec/rspec) | [3.13.2](https://rubygems.org/gems/rspec/versions/3.13.2) (2025/10) | [3.13.2](https://rubygems.org/gems/rspec/versions/3.13.2) (2025/10) | [4.0.0.beta1](https://rubygems.org/gems/rspec/versions/4.0.0.beta1) (2026/02) | [2026/02](https://github.com/rspec/rspec) |
|
|
96
|
+
| | ✅ | 5.9/10 | ✅ | [rubocop](https://github.com/rubocop/rubocop) | [1.84.2](https://rubygems.org/gems/rubocop/versions/1.84.2) (2026/02) | [1.84.2](https://rubygems.org/gems/rubocop/versions/1.84.2) (2026/02) | ❓ | [2026/02](https://github.com/rubocop/rubocop) |
|
|
97
|
+
| | ✅ | ❓ | ✅ | [rubocop-performance](https://github.com/rubocop/rubocop-performance) | [1.26.1](https://rubygems.org/gems/rubocop-performance/versions/1.26.1) (2025/10) | [1.26.1](https://rubygems.org/gems/rubocop-performance/versions/1.26.1) (2025/10) | ❓ | [2026/01](https://github.com/rubocop/rubocop-performance) |
|
|
98
|
+
| | ✅ | ❓ | ✅ | [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | [3.9.0](https://rubygems.org/gems/rubocop-rspec/versions/3.9.0) (2026/01) | [3.9.0](https://rubygems.org/gems/rubocop-rspec/versions/3.9.0) (2026/01) | [3.0.0.pre](https://rubygems.org/gems/rubocop-rspec/versions/3.0.0.pre) (2024/06) | [2026/02](https://github.com/rubocop/rubocop-rspec) |
|
|
99
|
+
| | ✅ | ❓ | ✅ | [rubocop-shopify](https://github.com/Shopify/ruby-style-guide) | [2.18.0](https://rubygems.org/gems/rubocop-shopify/versions/2.18.0) (2025/10) | [2.18.0](https://rubygems.org/gems/rubocop-shopify/versions/2.18.0) (2025/10) | ❓ | [2026/01](https://github.com/Shopify/ruby-style-guide) |
|
|
100
|
+
| | ✅ | ❓ | ✅ | [vcr](https://github.com/vcr/vcr) | [6.4.0](https://rubygems.org/gems/vcr/versions/6.4.0) (2025/12) | [6.4.0](https://rubygems.org/gems/vcr/versions/6.4.0) (2025/12) | [2.0.0.rc2](https://rubygems.org/gems/vcr/versions/2.0.0.rc2) (2012/02) | [2026/01](https://github.com/vcr/vcr) |
|
|
101
|
+
| | ✅ | 4.2/10 | ✅ | [webmock](https://github.com/bblimke/webmock) | [3.26.1](https://rubygems.org/gems/webmock/versions/3.26.1) (2025/10) | [3.26.1](https://rubygems.org/gems/webmock/versions/3.26.1) (2025/10) | [2.0.0.beta2](https://rubygems.org/gems/webmock/versions/2.0.0.beta2) (2016/04) | [2026/01](https://github.com/bblimke/webmock) |
|
|
102
|
+
|
|
103
|
+
### CI quality gating
|
|
104
|
+
|
|
105
|
+
Use `--fail-if-critical` or `--fail-if-warning` to fail CI pipelines when dependencies exceed activity thresholds:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
still_active --gemfile=Gemfile --fail-if-warning --json
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Data sources
|
|
112
|
+
|
|
113
|
+
- **Versions and release dates** from [RubyGems.org](https://rubygems.org)
|
|
114
|
+
- **Last commit date** from the [GitHub](https://docs.github.com/en/rest) or [GitLab](https://docs.gitlab.com/ee/api/) API
|
|
115
|
+
- **OpenSSF Scorecard** and **vulnerability counts** from Google's [deps.dev](https://deps.dev) API
|
|
77
116
|
|
|
78
117
|
### Configuration options
|
|
79
118
|
|
|
80
119
|
- `gemfile_path` uses bundler to detect the Gemfile in your working directory
|
|
81
|
-
- `output_format`
|
|
120
|
+
- `output_format` auto-detects: coloured terminal on TTY, JSON when piped. Override with `--terminal`, `--markdown`, or `--json`
|
|
82
121
|
- `critical_warning_emoji` 🚩
|
|
83
122
|
- `futurist_emoji` 🔮
|
|
84
123
|
- `success_emoji` ✅
|
|
85
124
|
- `unsure_emoji` ❓
|
|
86
125
|
- `warning_emoji` ⚠️
|
|
87
|
-
- `
|
|
88
|
-
- `warning_range_end`
|
|
126
|
+
- `safe_range_end` 1 (considered safe if last activity is at most 1 year ago)
|
|
127
|
+
- `warning_range_end` 3 (warns if last activity is between 1 and 3 years ago; beyond 3 is critical)
|
|
89
128
|
|
|
90
129
|
## Development
|
|
91
130
|
|
|
92
131
|
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 that will allow you to experiment.
|
|
93
132
|
|
|
94
|
-
To install this gem onto your local machine, run `bundle exec rake install`.
|
|
133
|
+
To install this gem onto your local machine, run `bundle exec rake install`. New versions are published automatically to [rubygems.org](https://rubygems.org) when a GitHub Release is created (via trusted publishing).
|
|
95
134
|
|
|
96
135
|
## Contributing
|
|
97
136
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"number": "1.3.4",
|
|
4
|
+
"created_at": "2021-10-29T07:21:16.042Z",
|
|
5
|
+
"prerelease": false,
|
|
6
|
+
"metadata": { "source_code_uri": "https://github.com/ruby/debug" }
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"number": "1.3.3",
|
|
10
|
+
"created_at": "2021-10-29T04:48:09.876Z",
|
|
11
|
+
"prerelease": false,
|
|
12
|
+
"metadata": { "source_code_uri": "https://github.com/ruby/debug" }
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"number": "1.0.0",
|
|
16
|
+
"created_at": "2021-09-08T16:25:30.074Z",
|
|
17
|
+
"prerelease": false,
|
|
18
|
+
"metadata": { "source_code_uri": "https://github.com/ruby/debug" }
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"number": "1.0.0.rc2",
|
|
22
|
+
"created_at": "2021-09-03T07:53:40.032Z",
|
|
23
|
+
"prerelease": true,
|
|
24
|
+
"metadata": { "source_code_uri": "https://github.com/ruby/debug" }
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"number": "1.0.0.rc1",
|
|
28
|
+
"created_at": "2021-09-03T05:58:34.505Z",
|
|
29
|
+
"prerelease": true,
|
|
30
|
+
"metadata": { "source_code_uri": "https://github.com/ruby/debug" }
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"number": "0.2.0",
|
|
34
|
+
"created_at": "2021-03-17T04:23:11.571Z",
|
|
35
|
+
"prerelease": false,
|
|
36
|
+
"metadata": { "source_code_uri": "https://github.com/ruby/debug" }
|
|
37
|
+
}
|
|
38
|
+
]
|