gitlab-dangerfiles 2.2.0 → 2.3.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|