gitlab-dangerfiles 3.6.7 → 3.7.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: e8d0bdb87447c7436d0814db68d0e65423a2d693a2d89abdf59331cff1287253
4
- data.tar.gz: b79304e093b0be5dc9d0609b957c318c4e672b48a49263624bb9b3922885dfe4
3
+ metadata.gz: 2c8b3755415a3a732fc13c70da4176927062a9d5b6452a7d2513d3ef29617c89
4
+ data.tar.gz: 1822e18dcc9e51d93f0ea1f3df574aaf5c1dd5ec1b0fd552bfea34f8b114971d
5
5
  SHA512:
6
- metadata.gz: 3173b6d8ec73814d7b0d3fdcf32270178fc76b38024ab4ba41cf106589f5f7fa4b9f0dfea9cb8fc9213b011c39691a695948caaca58455b80135e6c9af13d071
7
- data.tar.gz: f0922b64b753e15aff30716ca1a6ade6afc6b74bbeda983dfa29190a382990e7d21311175b058f3ef26d7071273426a5ea66e8a8843a57f18411e284f07fe38c
6
+ metadata.gz: d86af6131e0703fcab736fb75f09b62d1e656bec379f76f8bee6223899e99b34a085c86dc94d7c6d99ce88642acbea4d9079050ab50331abbc10d6c47c0fcc76
7
+ data.tar.gz: dc878dcd339bed44e0cb4059ec965cce1f6e0513099002126779640c3f8986417bbfabdbbec1ffd4137729839d682d8f7bc6f69cf1654ee03b9a75007f561f93
data/.rubocop.yml CHANGED
@@ -38,6 +38,10 @@ Style/StringLiterals:
38
38
  Style/TrailingCommaInHashLiteral:
39
39
  EnforcedStyleForMultiline: consistent_comma
40
40
 
41
+ # To respect rufo formatting
42
+ Style/TrailingCommaInArguments:
43
+ Enabled: false
44
+
41
45
  # To respect rufo formatting
42
46
  Layout/MultilineOperationIndentation:
43
47
  Enabled: false
@@ -134,7 +134,7 @@ module Danger
134
134
  def critical_checks
135
135
  check_result = ChangelogCheckResult.empty
136
136
 
137
- check_result.error(modified_text) if git.modified_files.include?("CHANGELOG.md")
137
+ check_result.warning(modified_text) if git.modified_files.include?("CHANGELOG.md")
138
138
 
139
139
  # Help the user to apply the correct labels to skip this danger check in case it's a revert MR
140
140
  check_result.warning(IF_REVERT_MR_TEXT) if helper.revert_mr?
@@ -92,11 +92,46 @@ module Gitlab
92
92
  class UX < Category
93
93
  private
94
94
 
95
+ def has_particular_capability?(teammate)
96
+ if labels.any?("Community contribution")
97
+ can_review_wider_community_contribution?(teammate)
98
+ else
99
+ super
100
+ end
101
+ end
102
+
95
103
  def has_universal_capability?(teammate)
96
- teammate.projects.each_value.find do |capabilities|
104
+ # No universal reviewer for community contribution.
105
+ # If we do, then picking from corresponding group won't be accurate.
106
+ # After solving the following issue, then we can revisit this:
107
+ # https://gitlab.com/gitlab-org/ruby/gems/gitlab-dangerfiles/-/issues/58
108
+ return false if labels.any?("Community contribution")
109
+
110
+ teammate.projects.each_value.any? do |capabilities|
97
111
  capabilities.include?(capability)
98
112
  end
99
113
  end
114
+
115
+ def can_review_wider_community_contribution?(teammate)
116
+ # Pick corresponding group for community contribution
117
+ # Role can be:
118
+ # Product Designer, Create:Source Code
119
+ # Product Designer, Verify:Pipeline Insights, Verify:Runner
120
+ # Product Designer, Release
121
+ # Specialty can be:
122
+ # Source Code
123
+ # [Growth: Activation, Growth: Expansion]
124
+ # Runner
125
+ areas = teammate.role[/Product Designer(?:.*?, (.+))/, 1]&.split(",")
126
+
127
+ group_labels = [*teammate.specialty, *areas].map do |field|
128
+ group = field.strip.sub(/^.+: ?/, "").downcase
129
+
130
+ "group::#{group}"
131
+ end
132
+
133
+ (group_labels & labels).any?
134
+ end
100
135
  end
101
136
  end
102
137
  end
@@ -5,10 +5,10 @@ require_relative "category"
5
5
  module Gitlab
6
6
  module Dangerfiles
7
7
  class Teammate
8
- attr_reader :options, :username, :name, :role, :projects, :available, :hungry, :reduced_capacity, :tz_offset_hours,
8
+ attr_reader :options, :username, :name, :role, :specialty, :projects, :available, :hungry, :reduced_capacity, :tz_offset_hours,
9
9
  :only_maintainer_reviews
10
10
 
11
- # The options data are produced by https://gitlab.com/gitlab-org/gitlab-roulette/-/blob/master/lib/team_member.rb
11
+ # The options data are produced by https://gitlab.com/gitlab-org/gitlab-roulette/-/blob/main/lib/team_member.rb
12
12
  def initialize(options = {})
13
13
  @options = options
14
14
  @username = options["username"]
@@ -16,6 +16,7 @@ module Gitlab
16
16
  @markdown_name = options["markdown_name"] ||
17
17
  default_markdown_name(*options.values_at("username", "name"))
18
18
  @role = options["role"]
19
+ @specialty = options["specialty"]
19
20
  @projects = process_projects(options["projects"])
20
21
  @available = options["available"]
21
22
  @hungry = options["hungry"]
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  module Dangerfiles
3
- VERSION = "3.6.7"
3
+ VERSION = "3.7.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitlab-dangerfiles
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.6.7
4
+ version: 3.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitLab
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-10 00:00:00.000000000 Z
11
+ date: 2023-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake