gitlab-dangerfiles 0.6.1 → 0.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 +4 -4
- data/lib/danger/helper.rb +8 -53
- data/lib/gitlab/dangerfiles/changes.rb +53 -0
- data/lib/gitlab/dangerfiles/spec_helper.rb +66 -0
- data/lib/gitlab/dangerfiles/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d8a22cec902c95d63352af51b2b0460e7cb761ddda7ee7ab2833077686ee5428
|
4
|
+
data.tar.gz: 1eb6288e842695e9811d6f8ba88cf43d8c75caa1c441a3419aed3f5988c11864
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81214e30c00e1b8c3f164a8b3bdfbc135902b5292a1064a8f4acbcd26ef5f9d9b0e83ebea83c51621e1742b2b6df13af1e81732fb4c9256bb254cac153370170
|
7
|
+
data.tar.gz: dd5be048537a4604d21774622effdb3e02d82aa3aefaaecb5bdcf598a96efcbff9ade89100c753cb26cff12b85b7cded1fdde71bbae10035ea341717b9704c67
|
data/lib/danger/helper.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require "net/http"
|
4
4
|
require "json"
|
5
5
|
require "danger"
|
6
|
+
require_relative "../gitlab/dangerfiles/changes"
|
6
7
|
require_relative "../gitlab/dangerfiles/teammate"
|
7
8
|
require_relative "../gitlab/dangerfiles/title_linting"
|
8
9
|
|
@@ -22,52 +23,6 @@ module Danger
|
|
22
23
|
|
23
24
|
HTTPError = Class.new(StandardError)
|
24
25
|
|
25
|
-
Change = Struct.new(:file, :change_type, :category)
|
26
|
-
|
27
|
-
class Changes < ::SimpleDelegator
|
28
|
-
def added
|
29
|
-
select_by_change_type(:added)
|
30
|
-
end
|
31
|
-
|
32
|
-
def modified
|
33
|
-
select_by_change_type(:modified)
|
34
|
-
end
|
35
|
-
|
36
|
-
def deleted
|
37
|
-
select_by_change_type(:deleted)
|
38
|
-
end
|
39
|
-
|
40
|
-
def renamed_before
|
41
|
-
select_by_change_type(:renamed_before)
|
42
|
-
end
|
43
|
-
|
44
|
-
def renamed_after
|
45
|
-
select_by_change_type(:renamed_after)
|
46
|
-
end
|
47
|
-
|
48
|
-
def has_category?(category)
|
49
|
-
any? { |change| change.category == category }
|
50
|
-
end
|
51
|
-
|
52
|
-
def by_category(category)
|
53
|
-
Changes.new(select { |change| change.category == category })
|
54
|
-
end
|
55
|
-
|
56
|
-
def categories
|
57
|
-
map(&:category).uniq
|
58
|
-
end
|
59
|
-
|
60
|
-
def files
|
61
|
-
map(&:file)
|
62
|
-
end
|
63
|
-
|
64
|
-
private
|
65
|
-
|
66
|
-
def select_by_change_type(change_type)
|
67
|
-
Changes.new(select { |change| change.change_type == change_type })
|
68
|
-
end
|
69
|
-
end
|
70
|
-
|
71
26
|
def gitlab_helper
|
72
27
|
# Unfortunately the following does not work:
|
73
28
|
# - respond_to?(:gitlab)
|
@@ -159,27 +114,27 @@ module Danger
|
|
159
114
|
end
|
160
115
|
end
|
161
116
|
|
162
|
-
# @return [Changes]
|
117
|
+
# @return [Gitlab::Dangerfiles::Changes]
|
163
118
|
def changes(categories)
|
164
|
-
Changes.new([]).tap do |changes|
|
119
|
+
Gitlab::Dangerfiles::Changes.new([]).tap do |changes|
|
165
120
|
git.added_files.each do |file|
|
166
|
-
categories_for_file(file, categories).each { |category| changes << Change.new(file, :added, category) }
|
121
|
+
categories_for_file(file, categories).each { |category| changes << Gitlab::Dangerfiles::Change.new(file, :added, category) }
|
167
122
|
end
|
168
123
|
|
169
124
|
git.modified_files.each do |file|
|
170
|
-
categories_for_file(file, categories).each { |category| changes << Change.new(file, :modified, category) }
|
125
|
+
categories_for_file(file, categories).each { |category| changes << Gitlab::Dangerfiles::Change.new(file, :modified, category) }
|
171
126
|
end
|
172
127
|
|
173
128
|
git.deleted_files.each do |file|
|
174
|
-
categories_for_file(file, categories).each { |category| changes << Change.new(file, :deleted, category) }
|
129
|
+
categories_for_file(file, categories).each { |category| changes << Gitlab::Dangerfiles::Change.new(file, :deleted, category) }
|
175
130
|
end
|
176
131
|
|
177
132
|
git.renamed_files.map { |x| x[:before] }.each do |file|
|
178
|
-
categories_for_file(file, categories).each { |category| changes << Change.new(file, :renamed_before, category) }
|
133
|
+
categories_for_file(file, categories).each { |category| changes << Gitlab::Dangerfiles::Change.new(file, :renamed_before, category) }
|
179
134
|
end
|
180
135
|
|
181
136
|
git.renamed_files.map { |x| x[:after] }.each do |file|
|
182
|
-
categories_for_file(file, categories).each { |category| changes << Change.new(file, :renamed_after, category) }
|
137
|
+
categories_for_file(file, categories).each { |category| changes << Gitlab::Dangerfiles::Change.new(file, :renamed_after, category) }
|
183
138
|
end
|
184
139
|
end
|
185
140
|
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "title_linting"
|
4
|
+
|
5
|
+
module Gitlab
|
6
|
+
module Dangerfiles
|
7
|
+
Change = Struct.new(:file, :change_type, :category)
|
8
|
+
|
9
|
+
class Changes < ::SimpleDelegator
|
10
|
+
def added
|
11
|
+
select_by_change_type(:added)
|
12
|
+
end
|
13
|
+
|
14
|
+
def modified
|
15
|
+
select_by_change_type(:modified)
|
16
|
+
end
|
17
|
+
|
18
|
+
def deleted
|
19
|
+
select_by_change_type(:deleted)
|
20
|
+
end
|
21
|
+
|
22
|
+
def renamed_before
|
23
|
+
select_by_change_type(:renamed_before)
|
24
|
+
end
|
25
|
+
|
26
|
+
def renamed_after
|
27
|
+
select_by_change_type(:renamed_after)
|
28
|
+
end
|
29
|
+
|
30
|
+
def has_category?(category)
|
31
|
+
any? { |change| change.category == category }
|
32
|
+
end
|
33
|
+
|
34
|
+
def by_category(category)
|
35
|
+
Changes.new(select { |change| change.category == category })
|
36
|
+
end
|
37
|
+
|
38
|
+
def categories
|
39
|
+
map(&:category).uniq
|
40
|
+
end
|
41
|
+
|
42
|
+
def files
|
43
|
+
map(&:file)
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def select_by_change_type(change_type)
|
49
|
+
Changes.new(select { |change| change.change_type == change_type })
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require "danger"
|
2
|
+
require "gitlab/dangerfiles/changes"
|
3
|
+
|
4
|
+
module DangerSpecHelper
|
5
|
+
# These functions are a subset of https://github.com/danger/danger/blob/master/spec/spec_helper.rb
|
6
|
+
# If you are expanding these files, see if it's already been done ^.
|
7
|
+
|
8
|
+
# A silent version of the user interface
|
9
|
+
def self.testing_ui
|
10
|
+
Cork::Board.new(silent: true)
|
11
|
+
end
|
12
|
+
|
13
|
+
# Example environment (ENV) that would come from
|
14
|
+
# running a PR on TravisCI
|
15
|
+
def self.testing_env
|
16
|
+
{
|
17
|
+
"GITLAB_CI" => "true",
|
18
|
+
"DANGER_GITLAB_HOST" => "gitlab.example.com",
|
19
|
+
"CI_MERGE_REQUEST_IID" => 28_493,
|
20
|
+
"DANGER_GITLAB_API_TOKEN" => "123sbdq54erfsd3422gdfio",
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
# A stubbed out Dangerfile for use in tests
|
25
|
+
def self.testing_dangerfile
|
26
|
+
env = Danger::EnvironmentManager.new(testing_env)
|
27
|
+
Danger::Dangerfile.new(env, testing_ui)
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.fake_danger
|
31
|
+
Class.new do
|
32
|
+
attr_reader :git, :gitlab, :helper
|
33
|
+
|
34
|
+
# rubocop:disable Gitlab/ModuleWithInstanceVariables
|
35
|
+
def initialize(git: nil, gitlab: nil, helper: nil)
|
36
|
+
@git = git
|
37
|
+
@gitlab = gitlab
|
38
|
+
@helper = helper
|
39
|
+
end
|
40
|
+
|
41
|
+
# rubocop:enable Gitlab/ModuleWithInstanceVariables
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
RSpec.shared_context "with dangerfile" do
|
47
|
+
let(:dangerfile) { DangerSpecHelper.testing_dangerfile }
|
48
|
+
let(:added_files) { %w[added1] }
|
49
|
+
let(:modified_files) { %w[modified1] }
|
50
|
+
let(:deleted_files) { %w[deleted1] }
|
51
|
+
let(:renamed_before_file) { "renamed_before" }
|
52
|
+
let(:renamed_after_file) { "renamed_after" }
|
53
|
+
let(:renamed_files) { [{ before: renamed_before_file, after: renamed_after_file }] }
|
54
|
+
let(:change_class) { Gitlab::Dangerfiles::Change }
|
55
|
+
let(:changes_class) { Gitlab::Dangerfiles::Changes }
|
56
|
+
let(:changes) { changes_class.new([]) }
|
57
|
+
let(:mr_title) { "Fake Title" }
|
58
|
+
let(:mr_labels) { [] }
|
59
|
+
|
60
|
+
let(:fake_git) { double("fake-git", added_files: added_files, modified_files: modified_files, deleted_files: deleted_files, renamed_files: renamed_files) }
|
61
|
+
let(:fake_helper) { double("fake-helper", changes: changes, mr_iid: 1234, mr_title: mr_title, mr_labels: mr_labels) }
|
62
|
+
|
63
|
+
before do
|
64
|
+
allow(dangerfile).to receive(:git).and_return(fake_git)
|
65
|
+
end
|
66
|
+
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: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rémy Coutable
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: danger
|
@@ -136,9 +136,11 @@ files:
|
|
136
136
|
- lib/gitlab/Dangerfile
|
137
137
|
- lib/gitlab/dangerfiles.rb
|
138
138
|
- lib/gitlab/dangerfiles/base_linter.rb
|
139
|
+
- lib/gitlab/dangerfiles/changes.rb
|
139
140
|
- lib/gitlab/dangerfiles/commit_linter.rb
|
140
141
|
- lib/gitlab/dangerfiles/emoji_checker.rb
|
141
142
|
- lib/gitlab/dangerfiles/merge_request_linter.rb
|
143
|
+
- lib/gitlab/dangerfiles/spec_helper.rb
|
142
144
|
- lib/gitlab/dangerfiles/teammate.rb
|
143
145
|
- lib/gitlab/dangerfiles/title_linting.rb
|
144
146
|
- lib/gitlab/dangerfiles/version.rb
|