gitlab_quality-test_tooling 1.11.0 → 1.17.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.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +93 -68
  3. data/README.md +35 -2
  4. data/exe/flaky-test-issues +7 -2
  5. data/exe/knapsack-report-issues +54 -0
  6. data/exe/update-test-meta +70 -0
  7. data/lefthook.yml +13 -0
  8. data/lib/gitlab_quality/test_tooling/concerns/find_set_dri.rb +47 -0
  9. data/lib/gitlab_quality/test_tooling/gitlab_client/branches_client.rb +18 -0
  10. data/lib/gitlab_quality/test_tooling/gitlab_client/branches_dry_client.rb +15 -0
  11. data/lib/gitlab_quality/test_tooling/gitlab_client/commits_client.rb +20 -0
  12. data/lib/gitlab_quality/test_tooling/gitlab_client/commits_dry_client.rb +14 -0
  13. data/lib/gitlab_quality/test_tooling/gitlab_client/gitlab_client.rb +12 -13
  14. data/lib/gitlab_quality/test_tooling/gitlab_client/issues_client.rb +6 -6
  15. data/lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb +18 -10
  16. data/lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_dry_client.rb +4 -2
  17. data/lib/gitlab_quality/test_tooling/gitlab_client/repository_files_client.rb +23 -0
  18. data/lib/gitlab_quality/test_tooling/knapsack_reports/spec_run_time.rb +85 -0
  19. data/lib/gitlab_quality/test_tooling/knapsack_reports/spec_run_time_report.rb +60 -0
  20. data/lib/gitlab_quality/test_tooling/report/concerns/issue_reports.rb +41 -28
  21. data/lib/gitlab_quality/test_tooling/report/concerns/utils.rb +23 -1
  22. data/lib/gitlab_quality/test_tooling/report/flaky_test_issue.rb +89 -44
  23. data/lib/gitlab_quality/test_tooling/report/generate_test_session.rb +1 -4
  24. data/lib/gitlab_quality/test_tooling/report/knapsack_report_issue.rb +139 -0
  25. data/lib/gitlab_quality/test_tooling/report/relate_failure_issue.rb +6 -12
  26. data/lib/gitlab_quality/test_tooling/report/report_as_issue.rb +16 -5
  27. data/lib/gitlab_quality/test_tooling/report/slow_test_issue.rb +71 -80
  28. data/lib/gitlab_quality/test_tooling/runtime/env.rb +5 -1
  29. data/lib/gitlab_quality/test_tooling/slack/post_to_slack_dry.rb +14 -0
  30. data/lib/gitlab_quality/test_tooling/test_meta/processor/add_to_blocking_processor.rb +143 -0
  31. data/lib/gitlab_quality/test_tooling/test_meta/processor/add_to_quarantine_processor.rb +199 -0
  32. data/lib/gitlab_quality/test_tooling/test_meta/processor/meta_processor.rb +44 -0
  33. data/lib/gitlab_quality/test_tooling/test_meta/test_meta_updater.rb +313 -0
  34. data/lib/gitlab_quality/test_tooling/version.rb +1 -1
  35. metadata +40 -9
  36. data/lib/gitlab_quality/test_tooling/report/concerns/find_set_dri.rb +0 -49
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab_quality-test_tooling
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.0
4
+ version: 1.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitLab Quality
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-01-08 00:00:00.000000000 Z
11
+ date: 2024-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control
@@ -201,7 +201,7 @@ dependencies:
201
201
  version: '6.1'
202
202
  - - "<"
203
203
  - !ruby/object:Gem::Version
204
- version: '7.2'
204
+ version: '7.1'
205
205
  type: :runtime
206
206
  prerelease: false
207
207
  version_requirements: !ruby/object:Gem::Requirement
@@ -211,7 +211,7 @@ dependencies:
211
211
  version: '6.1'
212
212
  - - "<"
213
213
  - !ruby/object:Gem::Version
214
- version: '7.2'
214
+ version: '7.1'
215
215
  - !ruby/object:Gem::Dependency
216
216
  name: amatch
217
217
  requirement: !ruby/object:Gem::Requirement
@@ -342,12 +342,27 @@ dependencies:
342
342
  - - "<"
343
343
  - !ruby/object:Gem::Version
344
344
  version: '3'
345
+ - !ruby/object:Gem::Dependency
346
+ name: rspec-parameterized
347
+ requirement: !ruby/object:Gem::Requirement
348
+ requirements:
349
+ - - "~>"
350
+ - !ruby/object:Gem::Version
351
+ version: 1.0.0
352
+ type: :runtime
353
+ prerelease: false
354
+ version_requirements: !ruby/object:Gem::Requirement
355
+ requirements:
356
+ - - "~>"
357
+ - !ruby/object:Gem::Version
358
+ version: 1.0.0
345
359
  description: A collection of test-related tools.
346
360
  email:
347
361
  - quality@gitlab.com
348
362
  executables:
349
363
  - flaky-test-issues
350
364
  - generate-test-session
365
+ - knapsack-report-issues
351
366
  - post-to-slack
352
367
  - prepare-stage-reports
353
368
  - relate-failure-issue
@@ -355,6 +370,7 @@ executables:
355
370
  - slow-test-issues
356
371
  - slow-test-merge-request-report-note
357
372
  - update-screenshot-paths
373
+ - update-test-meta
358
374
  extensions: []
359
375
  extra_rdoc_files: []
360
376
  files:
@@ -374,6 +390,7 @@ files:
374
390
  - Rakefile
375
391
  - exe/flaky-test-issues
376
392
  - exe/generate-test-session
393
+ - exe/knapsack-report-issues
377
394
  - exe/post-to-slack
378
395
  - exe/prepare-stage-reports
379
396
  - exe/relate-failure-issue
@@ -381,17 +398,25 @@ files:
381
398
  - exe/slow-test-issues
382
399
  - exe/slow-test-merge-request-report-note
383
400
  - exe/update-screenshot-paths
401
+ - exe/update-test-meta
384
402
  - lefthook.yml
385
403
  - lib/gitlab_quality/test_tooling.rb
404
+ - lib/gitlab_quality/test_tooling/concerns/find_set_dri.rb
386
405
  - lib/gitlab_quality/test_tooling/failed_jobs_table.rb
406
+ - lib/gitlab_quality/test_tooling/gitlab_client/branches_client.rb
407
+ - lib/gitlab_quality/test_tooling/gitlab_client/branches_dry_client.rb
408
+ - lib/gitlab_quality/test_tooling/gitlab_client/commits_client.rb
409
+ - lib/gitlab_quality/test_tooling/gitlab_client/commits_dry_client.rb
387
410
  - lib/gitlab_quality/test_tooling/gitlab_client/gitlab_client.rb
388
411
  - lib/gitlab_quality/test_tooling/gitlab_client/issues_client.rb
389
412
  - lib/gitlab_quality/test_tooling/gitlab_client/issues_dry_client.rb
390
413
  - lib/gitlab_quality/test_tooling/gitlab_client/jobs_client.rb
391
414
  - lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_client.rb
392
415
  - lib/gitlab_quality/test_tooling/gitlab_client/merge_requests_dry_client.rb
416
+ - lib/gitlab_quality/test_tooling/gitlab_client/repository_files_client.rb
417
+ - lib/gitlab_quality/test_tooling/knapsack_reports/spec_run_time.rb
418
+ - lib/gitlab_quality/test_tooling/knapsack_reports/spec_run_time_report.rb
393
419
  - lib/gitlab_quality/test_tooling/labels_inference.rb
394
- - lib/gitlab_quality/test_tooling/report/concerns/find_set_dri.rb
395
420
  - lib/gitlab_quality/test_tooling/report/concerns/group_and_category_labels.rb
396
421
  - lib/gitlab_quality/test_tooling/report/concerns/issue_reports.rb
397
422
  - lib/gitlab_quality/test_tooling/report/concerns/results_reporter.rb
@@ -399,6 +424,7 @@ files:
399
424
  - lib/gitlab_quality/test_tooling/report/flaky_test_issue.rb
400
425
  - lib/gitlab_quality/test_tooling/report/generate_test_session.rb
401
426
  - lib/gitlab_quality/test_tooling/report/issue_logger.rb
427
+ - lib/gitlab_quality/test_tooling/report/knapsack_report_issue.rb
402
428
  - lib/gitlab_quality/test_tooling/report/merge_request_slow_tests_report.rb
403
429
  - lib/gitlab_quality/test_tooling/report/prepare_stage_reports.rb
404
430
  - lib/gitlab_quality/test_tooling/report/relate_failure_issue.rb
@@ -411,6 +437,7 @@ files:
411
437
  - lib/gitlab_quality/test_tooling/runtime/env.rb
412
438
  - lib/gitlab_quality/test_tooling/runtime/logger.rb
413
439
  - lib/gitlab_quality/test_tooling/slack/post_to_slack.rb
440
+ - lib/gitlab_quality/test_tooling/slack/post_to_slack_dry.rb
414
441
  - lib/gitlab_quality/test_tooling/summary_table.rb
415
442
  - lib/gitlab_quality/test_tooling/support/http_request.rb
416
443
  - lib/gitlab_quality/test_tooling/system_logs/finders/json_log_finder.rb
@@ -425,6 +452,10 @@ files:
425
452
  - lib/gitlab_quality/test_tooling/system_logs/log_types/rails/graphql_log.rb
426
453
  - lib/gitlab_quality/test_tooling/system_logs/shared_fields.rb
427
454
  - lib/gitlab_quality/test_tooling/system_logs/system_logs_formatter.rb
455
+ - lib/gitlab_quality/test_tooling/test_meta/processor/add_to_blocking_processor.rb
456
+ - lib/gitlab_quality/test_tooling/test_meta/processor/add_to_quarantine_processor.rb
457
+ - lib/gitlab_quality/test_tooling/test_meta/processor/meta_processor.rb
458
+ - lib/gitlab_quality/test_tooling/test_meta/test_meta_updater.rb
428
459
  - lib/gitlab_quality/test_tooling/test_metric/json_test_metric.rb
429
460
  - lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
430
461
  - lib/gitlab_quality/test_tooling/test_result/base_test_result.rb
@@ -443,7 +474,7 @@ metadata:
443
474
  homepage_uri: https://gitlab.com/gitlab-org/ruby/gems/gitlab_quality-test_tooling
444
475
  source_code_uri: https://gitlab.com/gitlab-org/ruby/gems/gitlab_quality-test_tooling
445
476
  changelog_uri: https://gitlab.com/gitlab-org/ruby/gems/gitlab_quality-test_tooling/-/releases
446
- post_install_message:
477
+ post_install_message:
447
478
  rdoc_options: []
448
479
  require_paths:
449
480
  - lib
@@ -458,8 +489,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
458
489
  - !ruby/object:Gem::Version
459
490
  version: '0'
460
491
  requirements: []
461
- rubygems_version: 3.1.6
462
- signing_key:
492
+ rubygems_version: 3.3.26
493
+ signing_key:
463
494
  specification_version: 4
464
495
  summary: A collection of test-related tools.
465
496
  test_files: []
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'json'
4
-
5
- module GitlabQuality
6
- module TestTooling
7
- module Report
8
- module Concerns
9
- module FindSetDri
10
- def set_dri_via_group(product_group, test)
11
- parse_json_with_sets
12
- fetch_stage_sets(test)
13
-
14
- return @sets.sample['username'] if @stage_sets.empty?
15
-
16
- fetch_group_sets(product_group)
17
-
18
- if @group_sets.empty?
19
- @stage_sets.sample['username']
20
- else
21
- @group_sets.sample['username']
22
- end
23
- end
24
-
25
- private
26
-
27
- def parse_json_with_sets
28
- response = Support::HttpRequest.make_http_request(
29
- url: 'https://gitlab-org.gitlab.io/gitlab-roulette/roulette.json'
30
- )
31
- @sets = JSON.parse(response.body).select { |user| user['role'].include?('software-engineer-in-test') }
32
- end
33
-
34
- def fetch_stage_sets(test)
35
- @stage_sets = @sets.select do |user|
36
- user['role'].include?(test.stage.split("_").map(&:capitalize).join(" "))
37
- end
38
- end
39
-
40
- def fetch_group_sets(product_group)
41
- @group_sets = @stage_sets.select do |user|
42
- user['role'].downcase.tr(' ', '_').include?(product_group)
43
- end
44
- end
45
- end
46
- end
47
- end
48
- end
49
- end