gitlab-releases 2.0.0 → 2.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e1a866a27b43c0c1ad5c0c7a616ab233637c5d44194c422d6f4eeb350573a45c
4
- data.tar.gz: 416353edd36b23116c8eed1894547e680d3c38705815cc7e03a5e8bbfc55e5a3
3
+ metadata.gz: b97386d7ba2976402a435a6af38d4b14d88cbfb6bfd6b6edc8391c5655ef8894
4
+ data.tar.gz: 9ba0c5dc966401061bd666bf26bc102467a96b275cb66f3f90e7ffc4cc427969
5
5
  SHA512:
6
- metadata.gz: d766ea5fcc99b7a0ef087250c568b0a33e0b316e48c793145e9f988f405838b6165381f2b02763e4436631b41ce1cef4696cddd1036c7c839130ae4b58144801
7
- data.tar.gz: 3d401845ebaa86d003509a23853b719ac2537ade953549818a095e73f2adca792c2b5e42a8b13aaad4857c240d9e728cb5687510900f953473221d60128138b2
6
+ metadata.gz: ff5af29fd641a482e9681ae2ec520a44cb12f59a06d4f26fdb39cbdac1b8b4892102e97fc76dab06b42c3377d08a4bb8e758ae685998e1f1dec85185ff508cb1
7
+ data.tar.gz: 7d28cf94dd3c428dfe6c991cfaf90d31b3ce1383c98c8ebb9f5cf382e01fe4e818b76bee4bbe6d12c14957da7e3fc569ef53bb33b236e485f27b47e09f34d21b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [2.1.0] - 2026-07-30
4
+
5
+ - `RELEASES_GITLAB_READ_TOKEN` is now optional instead of required. The version.gitlab.com API and the `releases.yml` file are both public, so no credential is needed. When the variable is set it is still sent as a `Private-Token` header; when it is unset the header is omitted rather than raising.
6
+
3
7
  ## [2.0.0] - 2026-04-30
4
8
 
5
9
  - Add `GitlabReleases::Error` and `GitlabReleases::ReleasesYmlFetchError` error classes
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gitlab-releases (2.0.0)
4
+ gitlab-releases (2.1.0)
5
5
  activesupport (~> 8.0)
6
6
  gitlab (>= 5.1, < 7.x)
7
+ gitlab-labkit (~> 1.5.1)
7
8
  http (~> 5.2.0, ~> 5.2)
8
9
  retriable (~> 3.1.2)
9
10
  version_sorter (~> 2.3.0)
@@ -11,6 +12,22 @@ PATH
11
12
  GEM
12
13
  remote: https://rubygems.org/
13
14
  specs:
15
+ actionpack (8.0.0)
16
+ actionview (= 8.0.0)
17
+ activesupport (= 8.0.0)
18
+ nokogiri (>= 1.8.5)
19
+ rack (>= 2.2.4)
20
+ rack-session (>= 1.0.1)
21
+ rack-test (>= 0.6.3)
22
+ rails-dom-testing (~> 2.2)
23
+ rails-html-sanitizer (~> 1.6)
24
+ useragent (~> 0.16)
25
+ actionview (8.0.0)
26
+ activesupport (= 8.0.0)
27
+ builder (~> 3.1)
28
+ erubi (~> 1.11)
29
+ rails-dom-testing (~> 2.2)
30
+ rails-html-sanitizer (~> 1.6)
14
31
  activesupport (8.0.0)
15
32
  base64
16
33
  benchmark (>= 0.3)
@@ -32,21 +49,24 @@ GEM
32
49
  bigdecimal (3.1.8)
33
50
  binding_of_caller (1.0.1)
34
51
  debug_inspector (>= 1.2.0)
52
+ builder (3.3.0)
35
53
  coderay (1.1.3)
36
54
  concurrent-ruby (1.3.4)
37
55
  connection_pool (2.4.1)
38
56
  crack (1.0.0)
39
57
  bigdecimal
40
58
  rexml
59
+ crass (1.0.6)
41
60
  csv (3.3.5)
42
61
  debug_inspector (1.2.0)
43
62
  diff-lcs (1.5.1)
44
63
  domain_name (0.6.20240107)
45
64
  drb (2.2.1)
46
- ffi (1.17.0)
47
- ffi (1.17.0-arm64-darwin)
48
- ffi (1.17.0-x86_64-darwin)
49
- ffi (1.17.0-x86_64-linux-gnu)
65
+ erubi (1.13.1)
66
+ ffi (1.17.4)
67
+ ffi (1.17.4-arm64-darwin)
68
+ ffi (1.17.4-x86_64-darwin)
69
+ ffi (1.17.4-x86_64-linux-gnu)
50
70
  ffi-compiler (1.3.2)
51
71
  ffi (>= 1.15.5)
52
72
  rake
@@ -54,6 +74,48 @@ GEM
54
74
  base64 (~> 0.2.0)
55
75
  httparty (~> 0.20)
56
76
  terminal-table (>= 1.5.1)
77
+ gitlab-labkit (1.5.1)
78
+ actionpack (>= 5.0.0, < 8.1.0)
79
+ activesupport (>= 5.0.0, < 8.1.0)
80
+ google-protobuf (>= 3.25, < 5.0)
81
+ grpc (>= 1.75)
82
+ jaeger-client (~> 1.1.0)
83
+ json_schemer (>= 2.3.0, < 3.0)
84
+ openssl (~> 3.3.2)
85
+ opentelemetry-exporter-otlp (~> 0.31.1)
86
+ opentelemetry-instrumentation-all (~> 0.89.1)
87
+ opentelemetry-sdk (~> 1.10)
88
+ opentracing (~> 0.4)
89
+ pg_query (>= 6.1.0, < 7.0)
90
+ prometheus-client-mmap (>= 1.2, < 2.0)
91
+ redis (> 3.0.0, < 6.0.0)
92
+ google-protobuf (4.33.6)
93
+ bigdecimal
94
+ rake (>= 13)
95
+ google-protobuf (4.33.6-arm64-darwin)
96
+ bigdecimal
97
+ rake (>= 13)
98
+ google-protobuf (4.33.6-x86_64-darwin)
99
+ bigdecimal
100
+ rake (>= 13)
101
+ google-protobuf (4.33.6-x86_64-linux-gnu)
102
+ bigdecimal
103
+ rake (>= 13)
104
+ googleapis-common-protos-types (1.23.0)
105
+ google-protobuf (~> 4.26)
106
+ grpc (1.81.0)
107
+ google-protobuf (>= 3.25, < 5.0)
108
+ googleapis-common-protos-types (~> 1.0)
109
+ grpc (1.81.0-arm64-darwin)
110
+ google-protobuf (>= 3.25, < 5.0)
111
+ googleapis-common-protos-types (~> 1.0)
112
+ grpc (1.81.0-x86_64-darwin)
113
+ google-protobuf (>= 3.25, < 5.0)
114
+ googleapis-common-protos-types (~> 1.0)
115
+ grpc (1.81.0-x86_64-linux-gnu)
116
+ google-protobuf (>= 3.25, < 5.0)
117
+ googleapis-common-protos-types (~> 1.0)
118
+ hana (1.3.7)
57
119
  hashdiff (1.1.0)
58
120
  http (5.2.0)
59
121
  addressable (~> 2.8)
@@ -70,32 +132,272 @@ GEM
70
132
  multi_xml (>= 0.5.2)
71
133
  i18n (1.14.6)
72
134
  concurrent-ruby (~> 1.0)
135
+ jaeger-client (1.1.0)
136
+ opentracing (~> 0.3)
137
+ thrift
73
138
  json (2.7.2)
139
+ json_schemer (2.5.0)
140
+ bigdecimal
141
+ hana (~> 1.3)
142
+ regexp_parser (~> 2.0)
143
+ simpleidn (~> 0.2)
74
144
  language_server-protocol (3.17.0.3)
75
145
  llhttp-ffi (0.5.0)
76
146
  ffi-compiler (~> 1.0)
77
147
  rake (~> 13.0)
78
148
  logger (1.6.1)
149
+ loofah (2.25.1)
150
+ crass (~> 1.0.2)
151
+ nokogiri (>= 1.12.0)
79
152
  method_source (1.1.0)
80
153
  mini_mime (1.1.5)
154
+ mini_portile2 (2.8.9)
81
155
  minitest (5.25.1)
82
156
  multi_xml (0.7.2)
83
157
  bigdecimal (~> 3.1)
158
+ nokogiri (1.19.3)
159
+ mini_portile2 (~> 2.8.2)
160
+ racc (~> 1.4)
161
+ nokogiri (1.19.3-arm64-darwin)
162
+ racc (~> 1.4)
163
+ nokogiri (1.19.3-x86_64-darwin)
164
+ racc (~> 1.4)
165
+ nokogiri (1.19.3-x86_64-linux-gnu)
166
+ racc (~> 1.4)
167
+ openssl (3.3.3)
168
+ opentelemetry-api (1.10.0)
169
+ logger
170
+ opentelemetry-common (0.25.0)
171
+ opentelemetry-api (~> 1.0)
172
+ opentelemetry-exporter-otlp (0.31.1)
173
+ google-protobuf (>= 3.18)
174
+ googleapis-common-protos-types (~> 1.3)
175
+ opentelemetry-api (~> 1.1)
176
+ opentelemetry-common (~> 0.20)
177
+ opentelemetry-sdk (~> 1.10)
178
+ opentelemetry-semantic_conventions
179
+ opentelemetry-helpers-mysql (0.6.0)
180
+ opentelemetry-api (~> 1.7)
181
+ opentelemetry-common (~> 0.21)
182
+ opentelemetry-helpers-sql (0.4.0)
183
+ opentelemetry-api (~> 1.7)
184
+ opentelemetry-helpers-sql-processor (0.5.0)
185
+ opentelemetry-api (~> 1.0)
186
+ opentelemetry-common (~> 0.21)
187
+ opentelemetry-instrumentation-action_mailer (0.8.1)
188
+ opentelemetry-instrumentation-active_support (~> 0.10)
189
+ opentelemetry-instrumentation-action_pack (0.18.0)
190
+ opentelemetry-instrumentation-rack (~> 0.29)
191
+ opentelemetry-instrumentation-action_view (0.13.0)
192
+ opentelemetry-instrumentation-active_support (~> 0.10)
193
+ opentelemetry-instrumentation-active_job (0.12.0)
194
+ opentelemetry-instrumentation-base (~> 0.25)
195
+ opentelemetry-instrumentation-active_model_serializers (0.24.0)
196
+ opentelemetry-instrumentation-active_support (>= 0.7.0)
197
+ opentelemetry-instrumentation-active_record (0.13.0)
198
+ opentelemetry-instrumentation-base (~> 0.25)
199
+ opentelemetry-instrumentation-active_storage (0.5.1)
200
+ opentelemetry-instrumentation-active_support (~> 0.10)
201
+ opentelemetry-instrumentation-active_support (0.12.0)
202
+ opentelemetry-instrumentation-base (~> 0.25)
203
+ opentelemetry-instrumentation-all (0.89.1)
204
+ opentelemetry-instrumentation-active_model_serializers (~> 0.24.0)
205
+ opentelemetry-instrumentation-anthropic (~> 0.3.0)
206
+ opentelemetry-instrumentation-aws_lambda (~> 0.6.0)
207
+ opentelemetry-instrumentation-aws_sdk (~> 0.11.0)
208
+ opentelemetry-instrumentation-bunny (~> 0.24.0)
209
+ opentelemetry-instrumentation-concurrent_ruby (~> 0.24.0)
210
+ opentelemetry-instrumentation-dalli (~> 0.29.0)
211
+ opentelemetry-instrumentation-delayed_job (~> 0.25.1)
212
+ opentelemetry-instrumentation-ethon (~> 0.26.0)
213
+ opentelemetry-instrumentation-excon (~> 0.26.0)
214
+ opentelemetry-instrumentation-faraday (~> 0.30.0)
215
+ opentelemetry-instrumentation-grape (~> 0.5.0)
216
+ opentelemetry-instrumentation-graphql (~> 0.31.1)
217
+ opentelemetry-instrumentation-grpc (~> 0.4.1)
218
+ opentelemetry-instrumentation-gruf (~> 0.5.0)
219
+ opentelemetry-instrumentation-http (~> 0.27.0)
220
+ opentelemetry-instrumentation-http_client (~> 0.26.0)
221
+ opentelemetry-instrumentation-httpx (~> 0.5.0)
222
+ opentelemetry-instrumentation-koala (~> 0.23.0)
223
+ opentelemetry-instrumentation-lmdb (~> 0.25.0)
224
+ opentelemetry-instrumentation-mongo (~> 0.25.0)
225
+ opentelemetry-instrumentation-mysql2 (~> 0.32.1)
226
+ opentelemetry-instrumentation-net_http (~> 0.26.0)
227
+ opentelemetry-instrumentation-pg (~> 0.34.1)
228
+ opentelemetry-instrumentation-que (~> 0.12.0)
229
+ opentelemetry-instrumentation-racecar (~> 0.6.0)
230
+ opentelemetry-instrumentation-rack (~> 0.29.0)
231
+ opentelemetry-instrumentation-rails (~> 0.39.1)
232
+ opentelemetry-instrumentation-rake (~> 0.5.0)
233
+ opentelemetry-instrumentation-rdkafka (~> 0.9.0)
234
+ opentelemetry-instrumentation-redis (~> 0.28.0)
235
+ opentelemetry-instrumentation-resque (~> 0.8.0)
236
+ opentelemetry-instrumentation-restclient (~> 0.26.0)
237
+ opentelemetry-instrumentation-ruby_kafka (~> 0.24.0)
238
+ opentelemetry-instrumentation-sidekiq (~> 0.28.1)
239
+ opentelemetry-instrumentation-sinatra (~> 0.28.0)
240
+ opentelemetry-instrumentation-trilogy (~> 0.65.1)
241
+ opentelemetry-instrumentation-anthropic (0.3.0)
242
+ opentelemetry-instrumentation-base (~> 0.25)
243
+ opentelemetry-instrumentation-aws_lambda (0.6.0)
244
+ opentelemetry-instrumentation-base (~> 0.25)
245
+ opentelemetry-instrumentation-aws_sdk (0.11.0)
246
+ opentelemetry-instrumentation-base (~> 0.25)
247
+ opentelemetry-instrumentation-base (0.26.1)
248
+ opentelemetry-api (~> 1.7)
249
+ opentelemetry-common (~> 0.21)
250
+ opentelemetry-registry (~> 0.1)
251
+ opentelemetry-instrumentation-bunny (0.24.0)
252
+ opentelemetry-instrumentation-base (~> 0.25)
253
+ opentelemetry-instrumentation-concurrent_ruby (0.24.0)
254
+ opentelemetry-instrumentation-base (~> 0.25)
255
+ opentelemetry-instrumentation-dalli (0.29.2)
256
+ opentelemetry-instrumentation-base (~> 0.25)
257
+ opentelemetry-instrumentation-delayed_job (0.25.1)
258
+ opentelemetry-instrumentation-base (~> 0.25)
259
+ opentelemetry-instrumentation-ethon (0.26.0)
260
+ opentelemetry-instrumentation-base (~> 0.25)
261
+ opentelemetry-instrumentation-excon (0.26.1)
262
+ opentelemetry-instrumentation-base (~> 0.25)
263
+ opentelemetry-instrumentation-faraday (0.30.1)
264
+ opentelemetry-instrumentation-base (~> 0.25)
265
+ opentelemetry-instrumentation-grape (0.5.1)
266
+ opentelemetry-instrumentation-rack (~> 0.29)
267
+ opentelemetry-instrumentation-graphql (0.31.2)
268
+ opentelemetry-instrumentation-base (~> 0.25)
269
+ opentelemetry-instrumentation-grpc (0.4.1)
270
+ opentelemetry-instrumentation-base (~> 0.25)
271
+ opentelemetry-instrumentation-gruf (0.5.0)
272
+ opentelemetry-instrumentation-base (~> 0.25)
273
+ opentelemetry-instrumentation-http (0.27.1)
274
+ opentelemetry-instrumentation-base (~> 0.25)
275
+ opentelemetry-instrumentation-http_client (0.26.1)
276
+ opentelemetry-instrumentation-base (~> 0.25)
277
+ opentelemetry-instrumentation-httpx (0.5.1)
278
+ opentelemetry-instrumentation-base (~> 0.25)
279
+ opentelemetry-instrumentation-koala (0.23.0)
280
+ opentelemetry-instrumentation-base (~> 0.25)
281
+ opentelemetry-instrumentation-lmdb (0.25.0)
282
+ opentelemetry-instrumentation-base (~> 0.25)
283
+ opentelemetry-instrumentation-mongo (0.25.1)
284
+ opentelemetry-instrumentation-base (~> 0.25)
285
+ opentelemetry-instrumentation-mysql2 (0.32.1)
286
+ opentelemetry-helpers-mysql
287
+ opentelemetry-helpers-sql
288
+ opentelemetry-helpers-sql-processor
289
+ opentelemetry-instrumentation-base (~> 0.25)
290
+ opentelemetry-instrumentation-net_http (0.26.1)
291
+ opentelemetry-instrumentation-base (~> 0.25)
292
+ opentelemetry-instrumentation-pg (0.34.1)
293
+ opentelemetry-helpers-sql
294
+ opentelemetry-helpers-sql-processor
295
+ opentelemetry-instrumentation-base (~> 0.25)
296
+ opentelemetry-instrumentation-que (0.12.0)
297
+ opentelemetry-instrumentation-base (~> 0.25)
298
+ opentelemetry-instrumentation-racecar (0.6.1)
299
+ opentelemetry-instrumentation-base (~> 0.25)
300
+ opentelemetry-instrumentation-rack (0.29.0)
301
+ opentelemetry-instrumentation-base (~> 0.25)
302
+ opentelemetry-instrumentation-rails (0.39.1)
303
+ opentelemetry-instrumentation-action_mailer (~> 0.6)
304
+ opentelemetry-instrumentation-action_pack (~> 0.15)
305
+ opentelemetry-instrumentation-action_view (~> 0.11)
306
+ opentelemetry-instrumentation-active_job (~> 0.10)
307
+ opentelemetry-instrumentation-active_record (~> 0.11)
308
+ opentelemetry-instrumentation-active_storage (~> 0.3)
309
+ opentelemetry-instrumentation-active_support (~> 0.10)
310
+ opentelemetry-instrumentation-concurrent_ruby (~> 0.23)
311
+ opentelemetry-instrumentation-rake (0.5.0)
312
+ opentelemetry-instrumentation-base (~> 0.25)
313
+ opentelemetry-instrumentation-rdkafka (0.9.0)
314
+ opentelemetry-instrumentation-base (~> 0.25)
315
+ opentelemetry-instrumentation-redis (0.28.0)
316
+ opentelemetry-instrumentation-base (~> 0.25)
317
+ opentelemetry-instrumentation-resque (0.8.0)
318
+ opentelemetry-instrumentation-base (~> 0.25)
319
+ opentelemetry-instrumentation-restclient (0.26.0)
320
+ opentelemetry-instrumentation-base (~> 0.25)
321
+ opentelemetry-instrumentation-ruby_kafka (0.24.0)
322
+ opentelemetry-instrumentation-base (~> 0.25)
323
+ opentelemetry-instrumentation-sidekiq (0.28.1)
324
+ opentelemetry-instrumentation-base (~> 0.25)
325
+ opentelemetry-instrumentation-sinatra (0.28.0)
326
+ opentelemetry-instrumentation-rack (~> 0.29)
327
+ opentelemetry-instrumentation-trilogy (0.65.1)
328
+ opentelemetry-helpers-mysql
329
+ opentelemetry-helpers-sql
330
+ opentelemetry-helpers-sql-processor
331
+ opentelemetry-instrumentation-base (~> 0.25)
332
+ opentelemetry-semantic_conventions (>= 1.8.0)
333
+ opentelemetry-registry (0.6.0)
334
+ opentelemetry-api (~> 1.1)
335
+ opentelemetry-sdk (1.12.0)
336
+ logger
337
+ opentelemetry-api (~> 1.1)
338
+ opentelemetry-common (~> 0.20)
339
+ opentelemetry-registry (~> 0.2)
340
+ opentelemetry-semantic_conventions
341
+ opentelemetry-semantic_conventions (1.39.0)
342
+ opentelemetry-api (~> 1.0)
343
+ opentracing (0.5.0)
84
344
  parallel (1.25.1)
85
345
  parser (3.3.3.0)
86
346
  ast (~> 2.4.1)
87
347
  racc
348
+ pg_query (6.2.2)
349
+ google-protobuf (>= 3.25.3)
88
350
  proc_to_ast (0.2.0)
89
351
  parser
90
352
  rouge
91
353
  unparser
354
+ prometheus-client-mmap (1.5.0)
355
+ base64
356
+ bigdecimal
357
+ logger
358
+ rb_sys (~> 0.9.124)
359
+ prometheus-client-mmap (1.5.0-arm64-darwin)
360
+ base64
361
+ bigdecimal
362
+ logger
363
+ rb_sys (~> 0.9.124)
364
+ prometheus-client-mmap (1.5.0-x86_64-darwin)
365
+ base64
366
+ bigdecimal
367
+ logger
368
+ rb_sys (~> 0.9.124)
369
+ prometheus-client-mmap (1.5.0-x86_64-linux-gnu)
370
+ base64
371
+ bigdecimal
372
+ logger
373
+ rb_sys (~> 0.9.124)
92
374
  pry (0.14.2)
93
375
  coderay (~> 1.1)
94
376
  method_source (~> 1.0)
95
377
  public_suffix (5.1.1)
96
378
  racc (1.8.0)
379
+ rack (3.2.6)
380
+ rack-session (2.1.2)
381
+ base64 (>= 0.1.0)
382
+ rack (>= 3.0.0)
383
+ rack-test (2.2.0)
384
+ rack (>= 1.3)
385
+ rails-dom-testing (2.3.0)
386
+ activesupport (>= 5.0.0)
387
+ minitest
388
+ nokogiri (>= 1.6)
389
+ rails-html-sanitizer (1.7.0)
390
+ loofah (~> 2.25)
391
+ nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
97
392
  rainbow (3.1.1)
98
393
  rake (13.2.1)
394
+ rake-compiler-dock (1.12.0)
395
+ rb_sys (0.9.128)
396
+ rake-compiler-dock (= 1.12.0)
397
+ redis (5.4.1)
398
+ redis-client (>= 0.22.0)
399
+ redis-client (0.29.0)
400
+ connection_pool
99
401
  regexp_parser (2.9.2)
100
402
  retriable (3.1.2)
101
403
  rexml (3.3.0)
@@ -140,9 +442,12 @@ GEM
140
442
  parser (>= 3.3.1.0)
141
443
  ruby-progressbar (1.13.0)
142
444
  securerandom (0.3.2)
445
+ simpleidn (0.2.3)
143
446
  strscan (3.1.0)
144
447
  terminal-table (4.0.0)
145
448
  unicode-display_width (>= 1.1.1, < 4)
449
+ thrift (0.23.0)
450
+ logger
146
451
  timecop (0.9.10)
147
452
  tzinfo (2.0.6)
148
453
  concurrent-ruby (~> 1.0)
@@ -151,6 +456,7 @@ GEM
151
456
  diff-lcs (~> 1.3)
152
457
  parser (>= 3.3.0)
153
458
  uri (1.0.2)
459
+ useragent (0.16.11)
154
460
  vcr (6.2.0)
155
461
  version_sorter (2.3.0)
156
462
  webmock (3.18.1)
data/README.md CHANGED
@@ -44,8 +44,6 @@ There are different methods available:
44
44
 
45
45
  To make use of it:
46
46
 
47
- 1. Create a personal access token with `read_api` scope.
48
- 1. Store it in an environment variable called `RELEASES_GITLAB_READ_TOKEN`.
49
47
  1. Open up an irb session:
50
48
 
51
49
  ```ruby
@@ -89,6 +87,13 @@ To make use of it:
89
87
 
90
88
  ```
91
89
 
90
+ ### Authentication
91
+
92
+ No token is needed. Both data sources are public.
93
+
94
+ `RELEASES_GITLAB_READ_TOKEN` is optional: when it is set, its value is sent as a
95
+ `Private-Token` header on requests to [versions.gitlab.com](https://version.gitlab.com/).
96
+
92
97
  ## Contributing
93
98
 
94
99
  Bug reports and feature requests are welcome on the [Delivery team tracker]. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://gitlab.com/gitlab-org/ruby/gems/gitlab-releases/-/blob/main/CODE_OF_CONDUCT.md).
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'gitlab-labkit'
4
+
5
+ module GitlabReleases
6
+ class << self
7
+ def configure
8
+ yield self
9
+ end
10
+
11
+ def logger
12
+ @logger ||= begin
13
+ l = Labkit::Logging::JsonLogger.new(log_output)
14
+ l.level = ::Logger::INFO
15
+ configure_http_logging(l)
16
+ l
17
+ end
18
+ end
19
+
20
+ def logger=(new_logger)
21
+ @logger = new_logger
22
+ configure_http_logging(new_logger) if new_logger
23
+ end
24
+
25
+ def log_output
26
+ @log_output ||= File::NULL
27
+ end
28
+
29
+ def log_output=(output)
30
+ @log_output = output
31
+ @logger = nil
32
+ logger
33
+ end
34
+
35
+ private
36
+
37
+ def configure_http_logging(logger)
38
+ HTTP.default_options = HTTP::Options.new(features: { logging: { logger: logger } })
39
+ ReleaseVersionClient.default_options.update(logger: logger, log_level: :info)
40
+ end
41
+ end
42
+ end
@@ -2,23 +2,27 @@
2
2
 
3
3
  require 'gitlab/request'
4
4
  require 'gitlab'
5
+ require_relative 'logger'
5
6
 
6
7
  class ReleaseVersionClient < Gitlab::Request
7
8
  base_uri 'https://version.gitlab.com'
8
- headers 'Private-Token' => -> { api_token }
9
9
 
10
10
  # Get the latest version information
11
11
  #
12
12
  # Returns an Array of Gitlab::ObjectifiedHash objects
13
13
  def self.versions
14
- get('/api/v1/versions', query: { per_page: 50 })
14
+ get('/api/v1/versions', query: { per_page: 50 }, headers: auth_headers)
15
15
  end
16
16
 
17
- def self.api_token
18
- ENV.fetch('RELEASES_GITLAB_READ_TOKEN') do |name|
19
- raise "Must specify `#{name}` environment variable!"
20
- end
17
+ # The versions endpoint is public, so the token is optional. When set, it is
18
+ # sent so that the gem keeps working if the endpoint starts requiring auth.
19
+ def self.auth_headers
20
+ token = ENV.fetch('RELEASES_GITLAB_READ_TOKEN', nil)
21
+
22
+ return {} if token.to_s.empty?
23
+
24
+ { 'Private-Token' => token }
21
25
  end
22
26
 
23
- private_class_method :api_token
27
+ private_class_method :auth_headers
24
28
  end
@@ -4,6 +4,7 @@ require 'version_sorter'
4
4
  require 'retriable'
5
5
  require 'http'
6
6
  require_relative 'release_version_client'
7
+ require_relative 'logger'
7
8
 
8
9
  # Wrapper to interact with GitLab release versions. Versions are fetched
9
10
  # from two sources:
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GitlabReleases
4
- VERSION = "2.0.0"
4
+ VERSION = "2.1.0"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-releases
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mayra Cabrera
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-05-05 00:00:00.000000000 Z
11
+ date: 2026-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -44,6 +44,20 @@ dependencies:
44
44
  - - "<"
45
45
  - !ruby/object:Gem::Version
46
46
  version: 7.x
47
+ - !ruby/object:Gem::Dependency
48
+ name: gitlab-labkit
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 1.5.1
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 1.5.1
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: http
49
63
  requirement: !ruby/object:Gem::Requirement
@@ -113,6 +127,7 @@ files:
113
127
  - lib/gitlab_releases.rb
114
128
  - lib/gitlab_releases/date_calculator.rb
115
129
  - lib/gitlab_releases/errors.rb
130
+ - lib/gitlab_releases/logger.rb
116
131
  - lib/gitlab_releases/patch_date_calculator.rb
117
132
  - lib/gitlab_releases/release_calculator.rb
118
133
  - lib/gitlab_releases/release_version.rb