dri 0.10.2 → 1.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 +4 -4
- data/.gitlab/changelog_config.yml +13 -0
- data/.gitlab/merge_request_templates/Default.md +27 -0
- data/.gitlab/merge_request_templates/Release.md +8 -23
- data/.gitlab-ci.yml +6 -4
- data/.rubocop.yml +9 -1
- data/.ruby-version +1 -1
- data/.tool-versions +1 -1
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile.lock +58 -32
- data/README.md +88 -113
- data/dri.gemspec +9 -4
- data/exe/dri +2 -1
- data/faq.yaml +7 -7
- data/lefthook.yml +24 -0
- data/lib/dri/api_client.rb +66 -25
- data/lib/dri/cli.rb +2 -11
- data/lib/dri/command.rb +21 -52
- data/lib/dri/commands/add/fast_quarantine.rb +72 -0
- data/lib/dri/commands/add.rb +45 -0
- data/lib/dri/commands/analyze/stack_traces.rb +1 -4
- data/lib/dri/commands/analyze.rb +0 -1
- data/lib/dri/commands/faq.rb +1 -2
- data/lib/dri/commands/fetch/failures.rb +102 -43
- data/lib/dri/commands/fetch/{featureflags.rb → feature_flags.rb} +1 -6
- data/lib/dri/commands/fetch/pipelines.rb +3 -7
- data/lib/dri/commands/fetch/runbooks.rb +1 -3
- data/lib/dri/commands/fetch/testcases.rb +1 -3
- data/lib/dri/commands/fetch/triaged.rb +2 -6
- data/lib/dri/commands/fetch.rb +0 -30
- data/lib/dri/commands/incidents.rb +2 -6
- data/lib/dri/commands/init.rb +1 -3
- data/lib/dri/commands/profile.rb +3 -5
- data/lib/dri/commands/publish/report.rb +24 -26
- data/lib/dri/commands/publish.rb +0 -1
- data/lib/dri/commands/rm/emoji.rb +1 -3
- data/lib/dri/commands/rm/profile.rb +1 -2
- data/lib/dri/commands/rm/reports.rb +1 -2
- data/lib/dri/commands/rm.rb +0 -3
- data/lib/dri/commands/view/fast_quarantine.rb +25 -0
- data/lib/dri/commands/view.rb +22 -0
- data/lib/dri/feature_flag_report.rb +1 -3
- data/lib/dri/refinements/gitlab.rb +22 -0
- data/lib/dri/refinements/string.rb +19 -0
- data/lib/dri/report.rb +13 -55
- data/lib/dri/support/configuration.rb +62 -0
- data/lib/dri/support/influxdb_tools.rb +37 -0
- data/lib/dri/utils/constants.rb +2 -1
- data/lib/dri/utils/helpers.rb +15 -0
- data/lib/dri/version.rb +1 -1
- data/lib/dri.rb +8 -1
- metadata +96 -16
- data/lib/dri/commands/fetch/quarantines.rb +0 -55
- data/lib/dri/gitlab/issues.rb +0 -19
- data/lib/dri/refinements/truncate.rb +0 -15
data/lib/dri/version.rb
CHANGED
data/lib/dri.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dri
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
autorequire:
|
7
|
+
- Test Platform
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '7.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '7.1'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: amatch
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +66,20 @@ dependencies:
|
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: 0.21.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: influxdb-client
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '2.9'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '2.9'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: json
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -248,20 +276,48 @@ dependencies:
|
|
248
276
|
- - "~>"
|
249
277
|
- !ruby/object:Gem::Version
|
250
278
|
version: 0.12.0
|
279
|
+
- !ruby/object:Gem::Dependency
|
280
|
+
name: zeitwerk
|
281
|
+
requirement: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - "~>"
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: '2.6'
|
286
|
+
type: :runtime
|
287
|
+
prerelease: false
|
288
|
+
version_requirements: !ruby/object:Gem::Requirement
|
289
|
+
requirements:
|
290
|
+
- - "~>"
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: '2.6'
|
251
293
|
- !ruby/object:Gem::Dependency
|
252
294
|
name: gitlab-styles
|
253
295
|
requirement: !ruby/object:Gem::Requirement
|
254
296
|
requirements:
|
255
297
|
- - "~>"
|
256
298
|
- !ruby/object:Gem::Version
|
257
|
-
version:
|
299
|
+
version: '10'
|
258
300
|
type: :development
|
259
301
|
prerelease: false
|
260
302
|
version_requirements: !ruby/object:Gem::Requirement
|
261
303
|
requirements:
|
262
304
|
- - "~>"
|
263
305
|
- !ruby/object:Gem::Version
|
264
|
-
version:
|
306
|
+
version: '10'
|
307
|
+
- !ruby/object:Gem::Dependency
|
308
|
+
name: lefthook
|
309
|
+
requirement: !ruby/object:Gem::Requirement
|
310
|
+
requirements:
|
311
|
+
- - "~>"
|
312
|
+
- !ruby/object:Gem::Version
|
313
|
+
version: '1.3'
|
314
|
+
type: :development
|
315
|
+
prerelease: false
|
316
|
+
version_requirements: !ruby/object:Gem::Requirement
|
317
|
+
requirements:
|
318
|
+
- - "~>"
|
319
|
+
- !ruby/object:Gem::Version
|
320
|
+
version: '1.3'
|
265
321
|
- !ruby/object:Gem::Dependency
|
266
322
|
name: pry
|
267
323
|
requirement: !ruby/object:Gem::Requirement
|
@@ -318,6 +374,20 @@ dependencies:
|
|
318
374
|
- - "~>"
|
319
375
|
- !ruby/object:Gem::Version
|
320
376
|
version: 0.9.1
|
377
|
+
- !ruby/object:Gem::Dependency
|
378
|
+
name: vcr
|
379
|
+
requirement: !ruby/object:Gem::Requirement
|
380
|
+
requirements:
|
381
|
+
- - "~>"
|
382
|
+
- !ruby/object:Gem::Version
|
383
|
+
version: 6.2.0
|
384
|
+
type: :development
|
385
|
+
prerelease: false
|
386
|
+
version_requirements: !ruby/object:Gem::Requirement
|
387
|
+
requirements:
|
388
|
+
- - "~>"
|
389
|
+
- !ruby/object:Gem::Version
|
390
|
+
version: 6.2.0
|
321
391
|
- !ruby/object:Gem::Dependency
|
322
392
|
name: webmock
|
323
393
|
requirement: !ruby/object:Gem::Requirement
|
@@ -332,7 +402,7 @@ dependencies:
|
|
332
402
|
- - "~>"
|
333
403
|
- !ruby/object:Gem::Version
|
334
404
|
version: '3.5'
|
335
|
-
description:
|
405
|
+
description:
|
336
406
|
email:
|
337
407
|
- quality+dri@gitlab.com
|
338
408
|
executables:
|
@@ -343,11 +413,14 @@ files:
|
|
343
413
|
- ".editorconfig"
|
344
414
|
- ".gitignore"
|
345
415
|
- ".gitlab-ci.yml"
|
416
|
+
- ".gitlab/changelog_config.yml"
|
417
|
+
- ".gitlab/merge_request_templates/Default.md"
|
346
418
|
- ".gitlab/merge_request_templates/Release.md"
|
347
419
|
- ".rspec"
|
348
420
|
- ".rubocop.yml"
|
349
421
|
- ".ruby-version"
|
350
422
|
- ".tool-versions"
|
423
|
+
- CODE_OF_CONDUCT.md
|
351
424
|
- Gemfile
|
352
425
|
- Gemfile.lock
|
353
426
|
- LICENSE.txt
|
@@ -358,18 +431,20 @@ files:
|
|
358
431
|
- dri.gemspec
|
359
432
|
- exe/dri
|
360
433
|
- faq.yaml
|
434
|
+
- lefthook.yml
|
361
435
|
- lib/dri.rb
|
362
436
|
- lib/dri/api_client.rb
|
363
437
|
- lib/dri/cli.rb
|
364
438
|
- lib/dri/command.rb
|
439
|
+
- lib/dri/commands/add.rb
|
440
|
+
- lib/dri/commands/add/fast_quarantine.rb
|
365
441
|
- lib/dri/commands/analyze.rb
|
366
442
|
- lib/dri/commands/analyze/stack_traces.rb
|
367
443
|
- lib/dri/commands/faq.rb
|
368
444
|
- lib/dri/commands/fetch.rb
|
369
445
|
- lib/dri/commands/fetch/failures.rb
|
370
|
-
- lib/dri/commands/fetch/
|
446
|
+
- lib/dri/commands/fetch/feature_flags.rb
|
371
447
|
- lib/dri/commands/fetch/pipelines.rb
|
372
|
-
- lib/dri/commands/fetch/quarantines.rb
|
373
448
|
- lib/dri/commands/fetch/runbooks.rb
|
374
449
|
- lib/dri/commands/fetch/testcases.rb
|
375
450
|
- lib/dri/commands/fetch/triaged.rb
|
@@ -382,19 +457,24 @@ files:
|
|
382
457
|
- lib/dri/commands/rm/emoji.rb
|
383
458
|
- lib/dri/commands/rm/profile.rb
|
384
459
|
- lib/dri/commands/rm/reports.rb
|
460
|
+
- lib/dri/commands/view.rb
|
461
|
+
- lib/dri/commands/view/fast_quarantine.rb
|
385
462
|
- lib/dri/feature_flag_report.rb
|
386
|
-
- lib/dri/gitlab
|
387
|
-
- lib/dri/refinements/
|
463
|
+
- lib/dri/refinements/gitlab.rb
|
464
|
+
- lib/dri/refinements/string.rb
|
388
465
|
- lib/dri/report.rb
|
466
|
+
- lib/dri/support/configuration.rb
|
467
|
+
- lib/dri/support/influxdb_tools.rb
|
389
468
|
- lib/dri/utils/constants.rb
|
469
|
+
- lib/dri/utils/helpers.rb
|
390
470
|
- lib/dri/utils/markdown_lists.rb
|
391
471
|
- lib/dri/utils/table.rb
|
392
472
|
- lib/dri/version.rb
|
393
|
-
homepage: https://gitlab.com/gitlab-org/
|
473
|
+
homepage: https://gitlab.com/gitlab-org/ruby/gems/dri
|
394
474
|
licenses:
|
395
475
|
- MIT
|
396
476
|
metadata: {}
|
397
|
-
post_install_message:
|
477
|
+
post_install_message:
|
398
478
|
rdoc_options: []
|
399
479
|
require_paths:
|
400
480
|
- lib
|
@@ -402,15 +482,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
402
482
|
requirements:
|
403
483
|
- - ">="
|
404
484
|
- !ruby/object:Gem::Version
|
405
|
-
version:
|
485
|
+
version: 3.0.0
|
406
486
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
407
487
|
requirements:
|
408
488
|
- - ">="
|
409
489
|
- !ruby/object:Gem::Version
|
410
490
|
version: '0'
|
411
491
|
requirements: []
|
412
|
-
rubygems_version: 3.
|
413
|
-
signing_key:
|
492
|
+
rubygems_version: 3.5.22
|
493
|
+
signing_key:
|
414
494
|
specification_version: 4
|
415
495
|
summary: CLI app to help triage GitLab QA pipelines
|
416
496
|
test_files: []
|
@@ -1,55 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative '../../command'
|
4
|
-
require_relative '../../utils/table'
|
5
|
-
require_relative '../../utils/constants'
|
6
|
-
|
7
|
-
module Dri
|
8
|
-
module Commands
|
9
|
-
class Fetch
|
10
|
-
class Quarantines < Dri::Command
|
11
|
-
include Dri::Utils::Table
|
12
|
-
include Dri::Utils::Constants::Triage::Labels
|
13
|
-
using Refinements
|
14
|
-
|
15
|
-
def initialize(options, search: '[QUARANTINE]')
|
16
|
-
@options = options
|
17
|
-
@search = search
|
18
|
-
|
19
|
-
@today_iso_format = Time.now.strftime('%Y-%m-%dT00:00:00Z')
|
20
|
-
end
|
21
|
-
|
22
|
-
def execute(input: $stdin, output: $stdout)
|
23
|
-
verify_config_exists
|
24
|
-
title = add_color('Example name', :bright_yellow)
|
25
|
-
url = add_color('URL', :bright_yellow)
|
26
|
-
|
27
|
-
headers = [title, url]
|
28
|
-
mrs = []
|
29
|
-
|
30
|
-
logger.info "Fetching #{@search} MRs..."
|
31
|
-
|
32
|
-
spinner.run do
|
33
|
-
response = api_client.fetch_mrs(
|
34
|
-
project_id: 'gitlab-org/gitlab',
|
35
|
-
labels: "#{QA},#{QUALITY}",
|
36
|
-
search: @search,
|
37
|
-
in: :title,
|
38
|
-
state: :opened
|
39
|
-
)
|
40
|
-
|
41
|
-
mrs = response.each_with_object([]) do |mr, found_mrs|
|
42
|
-
title = mr.title[13..].truncate(60) # remove the "[QUARANTINE] " prefix
|
43
|
-
url = mr.web_url
|
44
|
-
|
45
|
-
found_mrs << [title, url]
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
print_table(headers, mrs, alignments: [:left, :left])
|
50
|
-
output.puts "Found #{mrs.size} open #{@search} MRs"
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
data/lib/dri/gitlab/issues.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Gitlab gem monkeypatch for related merge requests
|
4
|
-
# TODO: Add method upstream
|
5
|
-
#
|
6
|
-
class Gitlab::Client
|
7
|
-
module Issues
|
8
|
-
# List related merge requests
|
9
|
-
#
|
10
|
-
# @example
|
11
|
-
# Gitlab.related_issue_merge_requests(3, 42)
|
12
|
-
#
|
13
|
-
# @param [Integer, String] project The ID or name of a project.
|
14
|
-
# @param [Integer] id The ID of an issue.
|
15
|
-
def related_issue_merge_requests(project, id)
|
16
|
-
get("/projects/#{url_encode project}/issues/#{id}/related_merge_requests")
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Refinements
|
4
|
-
refine String do
|
5
|
-
# Truncate string to limit of _n_ characters
|
6
|
-
# @param [Integer] limit the limit of characters
|
7
|
-
# @return [String] the resulting string after truncation
|
8
|
-
def truncate(limit = 50)
|
9
|
-
return freeze if size <= limit
|
10
|
-
|
11
|
-
# limit - 3 for the ellipses
|
12
|
-
self[0...(limit - 3)] << '...'
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|