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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2f9d4db82aaf60ca573623de5e99c72f5518baef3181d8c854b52131ab4abf60
4
- data.tar.gz: 06bb46e9c0c500cfa1d9e3aef672d529d99f70283ed66fd87291c66117205a96
3
+ metadata.gz: 1f4f4363298e91b36384ef61e96ea5c3ff8dfa81ee3c768e60d24349ad2df7ce
4
+ data.tar.gz: cac0bdb7f5bea8b30afca63a9d70ed1c081abf0e5d16101f08fbc9276764698d
5
5
  SHA512:
6
- metadata.gz: 57da7c2b5d0bb5c47fff3b663d9fa9d3465b7eec5d343423148b11f78079224c5d8682692863ec9736fdccbd42cccf3e3127a7b85ce3f2973baa8108421e6ed0
7
- data.tar.gz: be63b6430ab6bf1e4cfab3ee6849355331ccedb340a1fcdf1a4347c254a6c52c1feea88a3f9e67d2c2d3bd1aa734f22b59fca852558e788a5e4353b8f4456572
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 engineering_productivity]+
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>` job"
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:
@@ -28,6 +28,10 @@ module Gitlab
28
28
  @problems = {}
29
29
  end
30
30
 
31
+ def inspect
32
+ "#{self.class}:#{object_id} @commit=#{@commit} @problems=#{@problems}"
33
+ end
34
+
31
35
  def failed?
32
36
  problems.any?
33
37
  end
@@ -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?(SHORT_REFERENCE_REGEX) ||
147
- commit.message.match?(MS_SHORT_REFERENCE_REGEX)
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")
@@ -1,5 +1,5 @@
1
1
  module Gitlab
2
2
  module Dangerfiles
3
- VERSION = "2.2.0"
3
+ VERSION = "2.3.1"
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: 2.2.0
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-07-06 00:00:00.000000000 Z
11
+ date: 2021-09-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: danger-gitlab