gitlab-dangerfiles 2.2.0 → 2.3.1
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/README.md +3 -1
- data/lib/danger/plugins/helper.rb +3 -1
- data/lib/danger/plugins/roulette.rb +1 -1
- data/lib/danger/rules/commit_messages/Dangerfile +1 -1
- data/lib/gitlab/dangerfiles/base_linter.rb +4 -0
- data/lib/gitlab/dangerfiles/commit_linter.rb +9 -4
- data/lib/gitlab/dangerfiles/spec_helper.rb +1 -1
- data/lib/gitlab/dangerfiles/teammate.rb +1 -1
- data/lib/gitlab/dangerfiles/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f4f4363298e91b36384ef61e96ea5c3ff8dfa81ee3c768e60d24349ad2df7ce
|
4
|
+
data.tar.gz: cac0bdb7f5bea8b30afca63a9d70ed1c081abf0e5d16101f08fbc9276764698d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3b201247f2fa32c72063c18db9533be9a2244b090dfe64bfe825497f298e747f1b511e91f83cfe58c51c79673283c174ccbfc419acd85d766b21b38c321f5e54
|
7
|
+
data.tar.gz: c84b0389e48d61c4c686049a55c94edffb5d30c400195411a829857711110ea3cc98ef53d7c6a37267725e667bc7618ecc17d6264258cef091302bfdf5c4be4c
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@ The goal of this gem is to centralize Danger plugins and rules that to be used b
|
|
7
7
|
Add this line to your application's Gemfile:
|
8
8
|
|
9
9
|
```ruby
|
10
|
-
gem 'gitlab-dangerfiles'
|
10
|
+
gem 'gitlab-dangerfiles', require: false
|
11
11
|
```
|
12
12
|
|
13
13
|
And then execute:
|
@@ -29,6 +29,8 @@ $ gem install gitlab-dangerfiles
|
|
29
29
|
In your project's `Dangerfile`, add the following two line to import the plugins and rules from this gem:
|
30
30
|
|
31
31
|
```ruby
|
32
|
+
require 'gitlab-dangerfiles'
|
33
|
+
|
32
34
|
# Get an instance of Gitlab::Dangerfiles
|
33
35
|
gitlab_dangerfiles = Gitlab::Dangerfiles::Engine.new(self)
|
34
36
|
|
@@ -17,7 +17,9 @@ module Danger
|
|
17
17
|
none: "",
|
18
18
|
qa: "~QA",
|
19
19
|
test: "~test ~Quality for `spec/features/*`",
|
20
|
+
# Deprecated as of 2.3.0 in favor of tooling
|
20
21
|
engineering_productivity: '~"Engineering Productivity" for CI, Danger',
|
22
|
+
tooling: "~tooling for CI, Danger",
|
21
23
|
ci_template: '~"ci::templates"',
|
22
24
|
product_intelligence: '~"product intelligence"',
|
23
25
|
}.freeze
|
@@ -211,7 +213,7 @@ module Danger
|
|
211
213
|
# +filename_regex+ is the regex pattern to match file names. +changes_regex+ is the regex pattern to
|
212
214
|
# match changed lines in files that match +filename_regex+
|
213
215
|
#
|
214
|
-
# @return [Array<Symbol>] the categories a file is in, e.g., +[:frontend]+, +[:backend]+, or +%i[frontend
|
216
|
+
# @return [Array<Symbol>] the categories a file is in, e.g., +[:frontend]+, +[:backend]+, or +%i[frontend tooling]+
|
215
217
|
# using filename regex (+filename_regex+) and specific change regex (+changes_regex+) from the given +categories+ hash.
|
216
218
|
def categories_for_file(filename, categories)
|
217
219
|
_, categories = categories.find do |key, _|
|
@@ -58,7 +58,7 @@ module Danger
|
|
58
58
|
# Fetch an already picked backend reviewer, or pick one otherwise
|
59
59
|
spin.reviewer = backend_spin&.reviewer || spin_for_category(project, :backend, timezone_experiment: including_timezone).reviewer
|
60
60
|
end
|
61
|
-
when :engineering_productivity
|
61
|
+
when :tooling, :engineering_productivity # Deprecated as of 2.3.0 in favor of tooling
|
62
62
|
if spin.maintainer.nil?
|
63
63
|
# Fetch an already picked backend maintainer, or pick one otherwise
|
64
64
|
spin.maintainer = backend_spin&.maintainer || spin_for_category(project, :backend, timezone_experiment: including_timezone).maintainer
|
@@ -5,7 +5,7 @@ require_relative "../../../gitlab/dangerfiles/merge_request_linter"
|
|
5
5
|
|
6
6
|
COMMIT_MESSAGE_GUIDELINES = "https://docs.gitlab.com/ee/development/contributing/merge_request_workflow.html#commit-messages-guidelines"
|
7
7
|
MORE_INFO = "For more information, take a look at our [Commit message guidelines](#{COMMIT_MESSAGE_GUIDELINES})."
|
8
|
-
THE_DANGER_JOB_TEXT = "the `%<job_name
|
8
|
+
THE_DANGER_JOB_TEXT = "the `%<job_name>s` job"
|
9
9
|
MAX_COMMITS_COUNT = helper.config.max_commits_count
|
10
10
|
MAX_COMMITS_COUNT_EXCEEDED_MESSAGE = <<~MSG
|
11
11
|
This merge request includes more than %<max_commits_count>d commits. Each commit should meet the following criteria:
|
@@ -9,9 +9,9 @@ module Gitlab
|
|
9
9
|
MAX_CHANGED_FILES_IN_COMMIT = 3
|
10
10
|
MAX_CHANGED_LINES_IN_COMMIT = 30
|
11
11
|
# Issue, MR, Epic
|
12
|
-
SHORT_REFERENCE_REGEX = %r{([\w\-\/]+)?(?<!`)(#|!|&)\d+(?<!`)}.freeze
|
12
|
+
SHORT_REFERENCE_REGEX = %r{(\S*([\w\-\/]+)?(?<!`)(#|!|&)\d+(?<!`))}.freeze
|
13
13
|
# Milestone
|
14
|
-
MS_SHORT_REFERENCE_REGEX = %r{([\w\-\/]+)?(?<!`)%"?\d{1,3}\.\d{1,3}"?(?<!`)}.freeze
|
14
|
+
MS_SHORT_REFERENCE_REGEX = %r{(\S*([\w\-\/]+)?(?<!`)%"?\d{1,3}\.\d{1,3}"?(?<!`))}.freeze
|
15
15
|
SUGGESTIONS_APPLIED_COMMIT_REGEX = /Apply \d+ suggestion\(s\) to \d+ file\(s\)/.freeze
|
16
16
|
|
17
17
|
def self.problems_mapping
|
@@ -143,8 +143,13 @@ module Gitlab
|
|
143
143
|
end
|
144
144
|
|
145
145
|
def message_contains_short_reference?
|
146
|
-
commit.message.match
|
147
|
-
|
146
|
+
match_data = commit.message.match(SHORT_REFERENCE_REGEX) ||
|
147
|
+
commit.message.match(MS_SHORT_REFERENCE_REGEX)
|
148
|
+
|
149
|
+
return false unless match_data
|
150
|
+
|
151
|
+
# Any URL would include "//". This works for http/https/ftp etc.
|
152
|
+
!match_data[1].include?("//")
|
148
153
|
end
|
149
154
|
|
150
155
|
def emoji_checker
|
@@ -104,7 +104,7 @@ RSpec.shared_context "with dangerfile" do
|
|
104
104
|
end
|
105
105
|
|
106
106
|
let(:fake_git) { double("fake-git", added_files: added_files, modified_files: modified_files, deleted_files: deleted_files, renamed_files: renamed_files) }
|
107
|
-
let(:fake_helper) { double("fake-helper", changes: changes, mr_iid: 1234, mr_title: mr_title, mr_labels: mr_labels) }
|
107
|
+
let(:fake_helper) { double("fake-helper", changes: changes, added_files: added_files, modified_files: modified_files, deleted_files: deleted_files, renamed_files: renamed_files, mr_iid: 1234, mr_title: mr_title, mr_labels: mr_labels) }
|
108
108
|
|
109
109
|
before do
|
110
110
|
allow(dangerfile).to receive(:git).and_return(fake_git)
|
@@ -95,7 +95,7 @@ module Gitlab
|
|
95
95
|
area = role[/Software Engineer in Test(?:.*?, (\w+))/, 1]
|
96
96
|
|
97
97
|
area && labels.any?("devops::#{area.downcase}") if kind == :reviewer
|
98
|
-
when :engineering_productivity
|
98
|
+
when :tooling, :engineering_productivity # Deprecated as of 2.3.0 in favor of tooling
|
99
99
|
return false unless role[/Engineering Productivity/]
|
100
100
|
return true if kind == :reviewer
|
101
101
|
return true if capabilities(project).include?("#{kind} engineering_productivity")
|
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: 2.
|
4
|
+
version: 2.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitLab
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: danger-gitlab
|