dri 0.11.0 → 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/.ruby-version +1 -1
- data/.tool-versions +1 -1
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile.lock +21 -2
- data/README.md +88 -98
- data/dri.gemspec +4 -0
- data/exe/dri +2 -1
- data/lefthook.yml +24 -0
- data/lib/dri/api_client.rb +18 -23
- data/lib/dri/cli.rb +0 -15
- data/lib/dri/command.rb +17 -51
- data/lib/dri/commands/add/fast_quarantine.rb +0 -2
- data/lib/dri/commands/add.rb +0 -1
- data/lib/dri/commands/analyze/stack_traces.rb +0 -3
- data/lib/dri/commands/analyze.rb +0 -1
- data/lib/dri/commands/faq.rb +0 -1
- data/lib/dri/commands/fetch/failures.rb +25 -25
- data/lib/dri/commands/fetch/{featureflags.rb → feature_flags.rb} +0 -5
- data/lib/dri/commands/fetch/pipelines.rb +0 -4
- data/lib/dri/commands/fetch/runbooks.rb +0 -2
- data/lib/dri/commands/fetch/testcases.rb +0 -2
- data/lib/dri/commands/fetch/triaged.rb +1 -5
- data/lib/dri/commands/fetch.rb +0 -6
- data/lib/dri/commands/incidents.rb +1 -5
- data/lib/dri/commands/init.rb +0 -2
- data/lib/dri/commands/profile.rb +0 -2
- data/lib/dri/commands/publish/report.rb +23 -23
- data/lib/dri/commands/publish.rb +0 -1
- data/lib/dri/commands/rm/emoji.rb +0 -2
- data/lib/dri/commands/rm/profile.rb +0 -1
- data/lib/dri/commands/rm/reports.rb +0 -1
- data/lib/dri/commands/rm.rb +0 -3
- data/lib/dri/commands/view/fast_quarantine.rb +0 -2
- data/lib/dri/commands/view.rb +0 -1
- data/lib/dri/feature_flag_report.rb +0 -2
- data/lib/dri/refinements/gitlab.rb +22 -0
- data/lib/dri/refinements/string.rb +19 -0
- data/lib/dri/report.rb +1 -3
- data/lib/dri/support/configuration.rb +62 -0
- data/lib/dri/utils/helpers.rb +15 -0
- data/lib/dri/version.rb +1 -1
- data/lib/dri.rb +8 -1
- metadata +72 -10
- data/lib/dri/gitlab/issues.rb +0 -19
- data/lib/dri/refinements/truncate.rb +0 -15
data/lib/dri/commands/rm.rb
CHANGED
@@ -14,7 +14,6 @@ module Dri
|
|
14
14
|
if options[:help]
|
15
15
|
invoke :help, ['profile']
|
16
16
|
else
|
17
|
-
require_relative 'rm/profile'
|
18
17
|
Dri::Commands::Rm::Profile.new(options).execute
|
19
18
|
end
|
20
19
|
end
|
@@ -26,7 +25,6 @@ module Dri
|
|
26
25
|
if options[:help]
|
27
26
|
invoke :help, ['reports']
|
28
27
|
else
|
29
|
-
require_relative 'rm/reports'
|
30
28
|
Dri::Commands::Rm::Reports.new(options).execute
|
31
29
|
end
|
32
30
|
end
|
@@ -38,7 +36,6 @@ module Dri
|
|
38
36
|
if options[:help]
|
39
37
|
invoke :help, ['emoji']
|
40
38
|
else
|
41
|
-
require_relative 'rm/emoji'
|
42
39
|
Dri::Commands::Rm::Emoji.new(options).execute
|
43
40
|
end
|
44
41
|
end
|
data/lib/dri/commands/view.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Gitlab gem refinement for related merge requests
|
4
|
+
# TODO: Add method upstream (https://github.com/NARKOZ/gitlab/pull/683)
|
5
|
+
module Dri
|
6
|
+
module Refinements
|
7
|
+
module Gitlab
|
8
|
+
refine ::Gitlab::Client::Issues do
|
9
|
+
# List related merge requests
|
10
|
+
#
|
11
|
+
# @example
|
12
|
+
# Gitlab.related_issue_merge_requests(3, 42)
|
13
|
+
#
|
14
|
+
# @param [Integer, String] project The ID or name of a project.
|
15
|
+
# @param [Integer] id The ID of an issue.
|
16
|
+
def related_issue_merge_requests(project, id)
|
17
|
+
get("/projects/#{url_encode project}/issues/#{id}/related_merge_requests")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Dri
|
4
|
+
module Refinements
|
5
|
+
module String
|
6
|
+
refine ::String do
|
7
|
+
# Truncate string to limit of _n_ characters
|
8
|
+
# @param [Integer] limit the limit of characters
|
9
|
+
# @return [String] the resulting string after truncation
|
10
|
+
def truncate(limit = 50)
|
11
|
+
return freeze if size <= limit
|
12
|
+
|
13
|
+
# limit - 3 for the ellipses
|
14
|
+
self[0...(limit - 3)] << '...'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/dri/report.rb
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require_relative './utils/constants'
|
4
|
-
|
5
3
|
module Dri
|
6
4
|
class Report # rubocop:disable Metrics/ClassLength
|
7
5
|
include Dri::Utils::Constants::Triage::Labels
|
8
|
-
using Refinements
|
6
|
+
using Refinements::String
|
9
7
|
|
10
8
|
attr_reader :header, :failures, :labels, :labels_incidents, :incidents
|
11
9
|
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "tzinfo"
|
4
|
+
require "tty-config"
|
5
|
+
|
6
|
+
module Dri
|
7
|
+
module Support
|
8
|
+
class Configuration
|
9
|
+
include Utils::Helpers
|
10
|
+
|
11
|
+
TZ = {
|
12
|
+
"AMER" => "America/New_York",
|
13
|
+
"EMEA" => "Europe/London",
|
14
|
+
"APAC" => "Asia/Tokyo"
|
15
|
+
}.freeze
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
@config = TTY::Config.new do |conf|
|
19
|
+
conf.filename = ".dri_profile"
|
20
|
+
conf.extname = ".yml"
|
21
|
+
conf.append_path Dir.home
|
22
|
+
conf.append_path Dir.pwd
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
attr_reader :config
|
27
|
+
|
28
|
+
def profile
|
29
|
+
@profile ||= config.read
|
30
|
+
end
|
31
|
+
|
32
|
+
def emoji
|
33
|
+
@emoji ||= profile["settings"]["emoji"]
|
34
|
+
end
|
35
|
+
|
36
|
+
def username
|
37
|
+
@username ||= profile["settings"]["user"]
|
38
|
+
end
|
39
|
+
|
40
|
+
def token
|
41
|
+
@token ||= profile["settings"]["token"]
|
42
|
+
end
|
43
|
+
|
44
|
+
def ops_token
|
45
|
+
@ops_token ||= profile["settings"]["ops_token"]
|
46
|
+
end
|
47
|
+
|
48
|
+
def handover_report_path
|
49
|
+
@handover_report_path ||= profile["settings"]["handover_report_path"] || File.join(Dir.home,
|
50
|
+
".handover_reports")
|
51
|
+
end
|
52
|
+
|
53
|
+
def timezone
|
54
|
+
@timezone ||= profile["settings"]["timezone"]
|
55
|
+
end
|
56
|
+
|
57
|
+
def tz
|
58
|
+
@tz ||= TZInfo::Timezone.get(profile["settings"]["tz"] || TZ[timezone])
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
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
7
|
- Test Platform
|
8
|
-
autorequire:
|
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
|
@@ -262,6 +276,20 @@ dependencies:
|
|
262
276
|
- - "~>"
|
263
277
|
- !ruby/object:Gem::Version
|
264
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'
|
265
293
|
- !ruby/object:Gem::Dependency
|
266
294
|
name: gitlab-styles
|
267
295
|
requirement: !ruby/object:Gem::Requirement
|
@@ -276,6 +304,20 @@ dependencies:
|
|
276
304
|
- - "~>"
|
277
305
|
- !ruby/object:Gem::Version
|
278
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'
|
279
321
|
- !ruby/object:Gem::Dependency
|
280
322
|
name: pry
|
281
323
|
requirement: !ruby/object:Gem::Requirement
|
@@ -332,6 +374,20 @@ dependencies:
|
|
332
374
|
- - "~>"
|
333
375
|
- !ruby/object:Gem::Version
|
334
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
|
335
391
|
- !ruby/object:Gem::Dependency
|
336
392
|
name: webmock
|
337
393
|
requirement: !ruby/object:Gem::Requirement
|
@@ -346,7 +402,7 @@ dependencies:
|
|
346
402
|
- - "~>"
|
347
403
|
- !ruby/object:Gem::Version
|
348
404
|
version: '3.5'
|
349
|
-
description:
|
405
|
+
description:
|
350
406
|
email:
|
351
407
|
- quality+dri@gitlab.com
|
352
408
|
executables:
|
@@ -357,11 +413,14 @@ files:
|
|
357
413
|
- ".editorconfig"
|
358
414
|
- ".gitignore"
|
359
415
|
- ".gitlab-ci.yml"
|
416
|
+
- ".gitlab/changelog_config.yml"
|
417
|
+
- ".gitlab/merge_request_templates/Default.md"
|
360
418
|
- ".gitlab/merge_request_templates/Release.md"
|
361
419
|
- ".rspec"
|
362
420
|
- ".rubocop.yml"
|
363
421
|
- ".ruby-version"
|
364
422
|
- ".tool-versions"
|
423
|
+
- CODE_OF_CONDUCT.md
|
365
424
|
- Gemfile
|
366
425
|
- Gemfile.lock
|
367
426
|
- LICENSE.txt
|
@@ -372,6 +431,7 @@ files:
|
|
372
431
|
- dri.gemspec
|
373
432
|
- exe/dri
|
374
433
|
- faq.yaml
|
434
|
+
- lefthook.yml
|
375
435
|
- lib/dri.rb
|
376
436
|
- lib/dri/api_client.rb
|
377
437
|
- lib/dri/cli.rb
|
@@ -383,7 +443,7 @@ files:
|
|
383
443
|
- lib/dri/commands/faq.rb
|
384
444
|
- lib/dri/commands/fetch.rb
|
385
445
|
- lib/dri/commands/fetch/failures.rb
|
386
|
-
- lib/dri/commands/fetch/
|
446
|
+
- lib/dri/commands/fetch/feature_flags.rb
|
387
447
|
- lib/dri/commands/fetch/pipelines.rb
|
388
448
|
- lib/dri/commands/fetch/runbooks.rb
|
389
449
|
- lib/dri/commands/fetch/testcases.rb
|
@@ -400,11 +460,13 @@ files:
|
|
400
460
|
- lib/dri/commands/view.rb
|
401
461
|
- lib/dri/commands/view/fast_quarantine.rb
|
402
462
|
- lib/dri/feature_flag_report.rb
|
403
|
-
- lib/dri/gitlab
|
404
|
-
- lib/dri/refinements/
|
463
|
+
- lib/dri/refinements/gitlab.rb
|
464
|
+
- lib/dri/refinements/string.rb
|
405
465
|
- lib/dri/report.rb
|
466
|
+
- lib/dri/support/configuration.rb
|
406
467
|
- lib/dri/support/influxdb_tools.rb
|
407
468
|
- lib/dri/utils/constants.rb
|
469
|
+
- lib/dri/utils/helpers.rb
|
408
470
|
- lib/dri/utils/markdown_lists.rb
|
409
471
|
- lib/dri/utils/table.rb
|
410
472
|
- lib/dri/version.rb
|
@@ -412,7 +474,7 @@ homepage: https://gitlab.com/gitlab-org/ruby/gems/dri
|
|
412
474
|
licenses:
|
413
475
|
- MIT
|
414
476
|
metadata: {}
|
415
|
-
post_install_message:
|
477
|
+
post_install_message:
|
416
478
|
rdoc_options: []
|
417
479
|
require_paths:
|
418
480
|
- lib
|
@@ -427,8 +489,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
427
489
|
- !ruby/object:Gem::Version
|
428
490
|
version: '0'
|
429
491
|
requirements: []
|
430
|
-
rubygems_version: 3.
|
431
|
-
signing_key:
|
492
|
+
rubygems_version: 3.5.22
|
493
|
+
signing_key:
|
432
494
|
specification_version: 4
|
433
495
|
summary: CLI app to help triage GitLab QA pipelines
|
434
496
|
test_files: []
|
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
|