gitlab_quality-test_tooling 3.10.1 → 3.11.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: 6c49f987999c6124651b5f1f21de7d588d1940749b91f8527e21b9fcbbb1921b
4
- data.tar.gz: 384d0765fb0d891e373777004ad20a5cecbc2df9b07cc74ca1b70ae30a080641
3
+ metadata.gz: c0f293cc7660b976ec011dc0e44e8f4a636b0170f99206c699bba5e59db989f7
4
+ data.tar.gz: 1205e282fbdbe7faf15c421e9907840ca59662488206ccb2007dfdd96254e934
5
5
  SHA512:
6
- metadata.gz: 4ff2cc394058616512c5c00779772d244d08986e12762a49c17ca9e31065a4af6b79beaeb8ceb7ac35c290efb10410c5888aff363b183d4190bb9b863278a418
7
- data.tar.gz: 8cc8717e64a9c260ca10474897aae319bae9565a1257815e3a83e931049d8d0c61c32fb38d9b66f13976f0f0e1ec4e7d3666f5c3311c5e64cae0c25940ff5da6
6
+ metadata.gz: 49052d3d0eade661c58479770a971ef2e8f5377cf13af619dd4e5cc9a8d6f5759d2b5ab7d41e7ad8aea5da490c8824da39a0c4fb6a45dd9ec6d17931f039faa3
7
+ data.tar.gz: 2bf4dca1ba6d1a34e262058843ecc81d273897a931de180bbe544b956f8568de4ad4e9bd0677f753f667c4fb965639e23e3c6e7af0e0f26f04bd3ea101ac995b
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gitlab_quality-test_tooling (3.10.1)
4
+ gitlab_quality-test_tooling (3.11.0)
5
5
  activesupport (>= 7.0)
6
6
  amatch (~> 0.4.1)
7
7
  fog-google (~> 1.24, >= 1.24.1)
@@ -11,6 +11,14 @@ module GitlabQuality
11
11
  WWW_GITLAB_COM_GROUPS_JSON = "#{WWW_GITLAB_COM_SITE}/groups.json".freeze
12
12
  WWW_GITLAB_COM_CATEGORIES_JSON = "#{WWW_GITLAB_COM_SITE}/categories.json".freeze
13
13
 
14
+ EM_KEYS = {
15
+ all: %w[engineering_managers backend_engineering_managers frontend_engineering_managers fullstack_managers],
16
+ generic: %w[engineering_managers],
17
+ backend: %w[backend_engineering_managers],
18
+ frontend: %w[frontend_engineering_managers],
19
+ fullstack: %w[fullstack_managers]
20
+ }.freeze
21
+
14
22
  def infer_labels_from_product_group(product_group)
15
23
  [groups_mapping.dig(product_group, 'label')].compact.to_set
16
24
  end
@@ -26,8 +34,26 @@ module GitlabQuality
26
34
  categories_mapping.dig(feature_category, 'group')
27
35
  end
28
36
 
37
+ def engineering_managers_from_product_group(product_group, *scopes)
38
+ group_data = groups_mapping[product_group]
39
+ return [] unless group_data
40
+
41
+ default_scope = scopes.empty?
42
+ scopes = [:all] if default_scope
43
+ ems = resolve_ems(group_data, scopes, default_scope)
44
+
45
+ ems.uniq.sort.map { |name| name.start_with?('@') ? name : "@#{name}" }
46
+ end
47
+
29
48
  private
30
49
 
50
+ def resolve_ems(group_data, scopes, default_scope)
51
+ keys = scopes.flat_map { |scope| EM_KEYS.fetch(scope) { [] } }
52
+ ems = group_data.values_at(*keys).flatten.compact
53
+ ems = Array(group_data['engineering_managers']).compact if ems.empty? && default_scope
54
+ ems
55
+ end
56
+
31
57
  def categories_mapping
32
58
  @categories_mapping ||= self.class.fetch_json(WWW_GITLAB_COM_CATEGORIES_JSON)
33
59
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module GitlabQuality
4
4
  module TestTooling
5
- VERSION = "3.10.1"
5
+ VERSION = "3.11.0"
6
6
  end
7
7
  end
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: 3.10.1
4
+ version: 3.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitLab Quality
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-03-19 00:00:00.000000000 Z
11
+ date: 2026-04-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: climate_control