gitlab-dangerfiles 0.1.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/danger/helper.rb +155 -113
- data/lib/danger/roulette.rb +68 -36
- data/lib/gitlab/dangerfiles.rb +0 -34
- data/lib/gitlab/dangerfiles/base_linter.rb +96 -0
- data/lib/gitlab/dangerfiles/commit_linter.rb +25 -103
- data/lib/gitlab/dangerfiles/merge_request_linter.rb +30 -0
- data/lib/gitlab/dangerfiles/teammate.rb +23 -9
- data/lib/gitlab/dangerfiles/title_linting.rb +38 -0
- data/lib/gitlab/dangerfiles/version.rb +1 -1
- data/lib/gitlab/dangerfiles/weightage.rb +10 -0
- data/lib/gitlab/dangerfiles/weightage/maintainers.rb +33 -0
- data/lib/gitlab/dangerfiles/weightage/reviewers.rb +65 -0
- metadata +9 -25
- data/lib/danger/changelog.rb +0 -39
- data/lib/danger/sidekiq_queues.rb +0 -37
- data/lib/gitlab/dangerfiles/bundle_size/Dangerfile +0 -38
- data/lib/gitlab/dangerfiles/ce_ee_vue_templates/Dangerfile +0 -56
- data/lib/gitlab/dangerfiles/changelog/Dangerfile +0 -90
- data/lib/gitlab/dangerfiles/changes_size/Dangerfile +0 -17
- data/lib/gitlab/dangerfiles/commit_messages/Dangerfile +0 -135
- data/lib/gitlab/dangerfiles/database/Dangerfile +0 -67
- data/lib/gitlab/dangerfiles/documentation/Dangerfile +0 -29
- data/lib/gitlab/dangerfiles/duplicate_yarn_dependencies/Dangerfile +0 -29
- data/lib/gitlab/dangerfiles/eslint/Dangerfile +0 -31
- data/lib/gitlab/dangerfiles/frozen_string/Dangerfile +0 -28
- data/lib/gitlab/dangerfiles/karma/Dangerfile +0 -51
- data/lib/gitlab/dangerfiles/metadata/Dangerfile +0 -50
- data/lib/gitlab/dangerfiles/popen.rb +0 -55
- data/lib/gitlab/dangerfiles/prettier/Dangerfile +0 -41
- data/lib/gitlab/dangerfiles/roulette/Dangerfile +0 -97
- data/lib/gitlab/dangerfiles/sidekiq_queues/Dangerfile +0 -27
- data/lib/gitlab/dangerfiles/specs/Dangerfile +0 -42
- data/lib/gitlab/dangerfiles/tasks.rb +0 -19
- data/lib/gitlab/dangerfiles/telemetry/Dangerfile +0 -32
- data/lib/gitlab/dangerfiles/utility_css/Dangerfile +0 -51
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../weightage"
|
4
|
+
|
5
|
+
module Gitlab
|
6
|
+
module Dangerfiles
|
7
|
+
module Weightage
|
8
|
+
class Maintainers
|
9
|
+
def initialize(maintainers)
|
10
|
+
@maintainers = maintainers
|
11
|
+
end
|
12
|
+
|
13
|
+
def execute
|
14
|
+
maintainers.each_with_object([]) do |maintainer, weighted_maintainers|
|
15
|
+
add_weighted_reviewer(weighted_maintainers, maintainer, Gitlab::Dangerfiles::Weightage::BASE_REVIEWER_WEIGHT)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
attr_reader :maintainers
|
22
|
+
|
23
|
+
def add_weighted_reviewer(reviewers, reviewer, weight)
|
24
|
+
if reviewer.reduced_capacity
|
25
|
+
reviewers.fill(reviewer, reviewers.size, weight)
|
26
|
+
else
|
27
|
+
reviewers.fill(reviewer, reviewers.size, weight * Gitlab::Dangerfiles::Weightage::CAPACITY_MULTIPLIER)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "../weightage"
|
4
|
+
|
5
|
+
module Gitlab
|
6
|
+
module Dangerfiles
|
7
|
+
module Weightage
|
8
|
+
# Weights after (current multiplier of 2)
|
9
|
+
#
|
10
|
+
# +------------------------------+--------------------------------+
|
11
|
+
# | reviewer type | weight(times in reviewer pool) |
|
12
|
+
# +------------------------------+--------------------------------+
|
13
|
+
# | reduced capacity reviewer | 1 |
|
14
|
+
# | reviewer | 2 |
|
15
|
+
# | hungry reviewer | 4 |
|
16
|
+
# | reduced capacity traintainer | 3 |
|
17
|
+
# | traintainer | 6 |
|
18
|
+
# | hungry traintainer | 8 |
|
19
|
+
# +------------------------------+--------------------------------+
|
20
|
+
#
|
21
|
+
class Reviewers
|
22
|
+
DEFAULT_REVIEWER_WEIGHT = Gitlab::Dangerfiles::Weightage::CAPACITY_MULTIPLIER * Gitlab::Dangerfiles::Weightage::BASE_REVIEWER_WEIGHT
|
23
|
+
TRAINTAINER_WEIGHT = 3
|
24
|
+
|
25
|
+
def initialize(reviewers, traintainers)
|
26
|
+
@reviewers = reviewers
|
27
|
+
@traintainers = traintainers
|
28
|
+
end
|
29
|
+
|
30
|
+
def execute
|
31
|
+
# TODO: take CODEOWNERS into account?
|
32
|
+
# https://gitlab.com/gitlab-org/gitlab/issues/26723
|
33
|
+
|
34
|
+
weighted_reviewers + weighted_traintainers
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
attr_reader :reviewers, :traintainers
|
40
|
+
|
41
|
+
def weighted_reviewers
|
42
|
+
reviewers.each_with_object([]) do |reviewer, total_reviewers|
|
43
|
+
add_weighted_reviewer(total_reviewers, reviewer, Gitlab::Dangerfiles::Weightage::BASE_REVIEWER_WEIGHT)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def weighted_traintainers
|
48
|
+
traintainers.each_with_object([]) do |reviewer, total_traintainers|
|
49
|
+
add_weighted_reviewer(total_traintainers, reviewer, TRAINTAINER_WEIGHT)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def add_weighted_reviewer(reviewers, reviewer, weight)
|
54
|
+
if reviewer.reduced_capacity
|
55
|
+
reviewers.fill(reviewer, reviewers.size, weight)
|
56
|
+
elsif reviewer.hungry
|
57
|
+
reviewers.fill(reviewer, reviewers.size, weight * Gitlab::Dangerfiles::Weightage::CAPACITY_MULTIPLIER + DEFAULT_REVIEWER_WEIGHT)
|
58
|
+
else
|
59
|
+
reviewers.fill(reviewer, reviewers.size, weight * Gitlab::Dangerfiles::Weightage::CAPACITY_MULTIPLIER)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
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.6.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:
|
11
|
+
date: 2021-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: danger
|
@@ -130,37 +130,21 @@ files:
|
|
130
130
|
- fixtures/emojis/aliases.json
|
131
131
|
- fixtures/emojis/digests.json
|
132
132
|
- gitlab-dangerfiles.gemspec
|
133
|
-
- lib/danger/changelog.rb
|
134
133
|
- lib/danger/helper.rb
|
135
134
|
- lib/danger/roulette.rb
|
136
|
-
- lib/danger/sidekiq_queues.rb
|
137
135
|
- lib/gitlab-dangerfiles.rb
|
138
136
|
- lib/gitlab/Dangerfile
|
139
137
|
- lib/gitlab/dangerfiles.rb
|
140
|
-
- lib/gitlab/dangerfiles/
|
141
|
-
- lib/gitlab/dangerfiles/ce_ee_vue_templates/Dangerfile
|
142
|
-
- lib/gitlab/dangerfiles/changelog/Dangerfile
|
143
|
-
- lib/gitlab/dangerfiles/changes_size/Dangerfile
|
138
|
+
- lib/gitlab/dangerfiles/base_linter.rb
|
144
139
|
- lib/gitlab/dangerfiles/commit_linter.rb
|
145
|
-
- lib/gitlab/dangerfiles/commit_messages/Dangerfile
|
146
|
-
- lib/gitlab/dangerfiles/database/Dangerfile
|
147
|
-
- lib/gitlab/dangerfiles/documentation/Dangerfile
|
148
|
-
- lib/gitlab/dangerfiles/duplicate_yarn_dependencies/Dangerfile
|
149
140
|
- lib/gitlab/dangerfiles/emoji_checker.rb
|
150
|
-
- lib/gitlab/dangerfiles/
|
151
|
-
- lib/gitlab/dangerfiles/frozen_string/Dangerfile
|
152
|
-
- lib/gitlab/dangerfiles/karma/Dangerfile
|
153
|
-
- lib/gitlab/dangerfiles/metadata/Dangerfile
|
154
|
-
- lib/gitlab/dangerfiles/popen.rb
|
155
|
-
- lib/gitlab/dangerfiles/prettier/Dangerfile
|
156
|
-
- lib/gitlab/dangerfiles/roulette/Dangerfile
|
157
|
-
- lib/gitlab/dangerfiles/sidekiq_queues/Dangerfile
|
158
|
-
- lib/gitlab/dangerfiles/specs/Dangerfile
|
159
|
-
- lib/gitlab/dangerfiles/tasks.rb
|
141
|
+
- lib/gitlab/dangerfiles/merge_request_linter.rb
|
160
142
|
- lib/gitlab/dangerfiles/teammate.rb
|
161
|
-
- lib/gitlab/dangerfiles/
|
162
|
-
- lib/gitlab/dangerfiles/utility_css/Dangerfile
|
143
|
+
- lib/gitlab/dangerfiles/title_linting.rb
|
163
144
|
- lib/gitlab/dangerfiles/version.rb
|
145
|
+
- lib/gitlab/dangerfiles/weightage.rb
|
146
|
+
- lib/gitlab/dangerfiles/weightage/maintainers.rb
|
147
|
+
- lib/gitlab/dangerfiles/weightage/reviewers.rb
|
164
148
|
homepage: https://gitlab.com/gitlab-org/gitlab-dangerfiles
|
165
149
|
licenses:
|
166
150
|
- MIT
|
@@ -184,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
168
|
- !ruby/object:Gem::Version
|
185
169
|
version: '0'
|
186
170
|
requirements: []
|
187
|
-
rubygems_version: 3.1.
|
171
|
+
rubygems_version: 3.1.4
|
188
172
|
signing_key:
|
189
173
|
specification_version: 4
|
190
174
|
summary: This gem provides common Dangerfile and plugins for GitLab projects.
|
data/lib/danger/changelog.rb
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Danger
|
4
|
-
# Common helper functions for our danger scripts. See Danger::Helper
|
5
|
-
# for more details
|
6
|
-
class Changelog < Danger::Plugin
|
7
|
-
NO_CHANGELOG_LABELS = [
|
8
|
-
"backstage", # To be removed by https://gitlab.com/gitlab-org/gitlab/-/issues/222360.
|
9
|
-
"tooling",
|
10
|
-
"tooling::pipelines",
|
11
|
-
"tooling::workflow",
|
12
|
-
"ci-build",
|
13
|
-
"meta",
|
14
|
-
].freeze
|
15
|
-
NO_CHANGELOG_CATEGORIES = %i[docs none].freeze
|
16
|
-
|
17
|
-
def needed?
|
18
|
-
categories_need_changelog? && (gitlab.mr_labels & NO_CHANGELOG_LABELS).empty?
|
19
|
-
end
|
20
|
-
|
21
|
-
def found
|
22
|
-
@found ||= git.added_files.find { |path| path =~ %r{\A(ee/)?(changelogs/unreleased)(-ee)?/} }
|
23
|
-
end
|
24
|
-
|
25
|
-
def sanitized_mr_title
|
26
|
-
gitlab.mr_json["title"].gsub(/^WIP: */, "").gsub(/`/, '\\\`')
|
27
|
-
end
|
28
|
-
|
29
|
-
def ee_changelog?
|
30
|
-
found.start_with?("ee/")
|
31
|
-
end
|
32
|
-
|
33
|
-
private
|
34
|
-
|
35
|
-
def categories_need_changelog?
|
36
|
-
(helper.changes_by_category.keys - NO_CHANGELOG_CATEGORIES).any?
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Danger
|
4
|
-
# Common helper functions for our danger scripts. See Danger::Helper
|
5
|
-
# for more details
|
6
|
-
class SidekiqQueues < Danger::Plugin
|
7
|
-
def changed_queue_files
|
8
|
-
@changed_queue_files ||= git.modified_files.grep(%r{\A(ee/)?app/workers/all_queues\.yml})
|
9
|
-
end
|
10
|
-
|
11
|
-
def added_queue_names
|
12
|
-
@added_queue_names ||= new_queues.keys - old_queues.keys
|
13
|
-
end
|
14
|
-
|
15
|
-
def changed_queue_names
|
16
|
-
@changed_queue_names ||=
|
17
|
-
(new_queues.values_at(*old_queues.keys) - old_queues.values)
|
18
|
-
.compact.map { |queue| queue[:name] }
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def old_queues
|
24
|
-
@old_queues ||= queues_for(gitlab.base_commit)
|
25
|
-
end
|
26
|
-
|
27
|
-
def new_queues
|
28
|
-
@new_queues ||= queues_for(gitlab.head_commit)
|
29
|
-
end
|
30
|
-
|
31
|
-
def queues_for(branch)
|
32
|
-
changed_queue_files
|
33
|
-
.flat_map { |file| YAML.safe_load(`git show #{branch}:#{file}`, permitted_classes: [Symbol]) }
|
34
|
-
.to_h { |queue| [queue[:name], queue] }
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
analysis_result = "./bundle-size-review/analysis.json"
|
4
|
-
markdown_result = "./bundle-size-review/comparison.md"
|
5
|
-
|
6
|
-
# Executing the webpack-entry-point-analyser
|
7
|
-
# We would like to do that in the CI file directly,
|
8
|
-
# but unfortunately the head_commit SHA is not available
|
9
|
-
# as a CI variable due to our merge into master simulation
|
10
|
-
analyze_cmd = [
|
11
|
-
"webpack-entry-point-analyser",
|
12
|
-
"--from-file ./webpack-report/stats.json",
|
13
|
-
"--json #{analysis_result}",
|
14
|
-
" --sha #{gitlab&.head_commit}"
|
15
|
-
].join(" ")
|
16
|
-
|
17
|
-
# execute analysis
|
18
|
-
`#{analyze_cmd}`
|
19
|
-
|
20
|
-
# We are executing the comparison by comparing the start_sha
|
21
|
-
# to the current pipeline result. The start_sha is the commit
|
22
|
-
# from master that was merged into for the merged pipeline.
|
23
|
-
comparison_cmd = [
|
24
|
-
"webpack-compare-reports",
|
25
|
-
"--job #{ENV["CI_JOB_ID"]}",
|
26
|
-
"--to-file #{analysis_result}",
|
27
|
-
"--html ./bundle-size-review/comparison.html",
|
28
|
-
"--markdown #{markdown_result}"
|
29
|
-
].join(" ")
|
30
|
-
|
31
|
-
# execute comparison
|
32
|
-
`#{comparison_cmd}`
|
33
|
-
|
34
|
-
comment = `cat #{markdown_result}`
|
35
|
-
|
36
|
-
markdown(<<~MARKDOWN)
|
37
|
-
#{comment}
|
38
|
-
MARKDOWN
|
@@ -1,56 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'cgi'
|
3
|
-
|
4
|
-
def get_vue_files_with_ce_and_ee_versions(files)
|
5
|
-
files.select do |file|
|
6
|
-
if file.end_with?('.vue')
|
7
|
-
counterpart_path = if file.start_with?('ee/')
|
8
|
-
file.delete_prefix('ee/')
|
9
|
-
else
|
10
|
-
"ee/#{file}"
|
11
|
-
end
|
12
|
-
|
13
|
-
escaped_path = CGI.escape(counterpart_path)
|
14
|
-
api_endpoint = "https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab-ee/repository/files/#{escaped_path}?ref=master"
|
15
|
-
response = HTTParty.get(api_endpoint) # rubocop:disable Gitlab/HTTParty
|
16
|
-
response.code != 404
|
17
|
-
else
|
18
|
-
false
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
vue_candidates = get_vue_files_with_ce_and_ee_versions(helper.all_changed_files)
|
24
|
-
|
25
|
-
return if vue_candidates.empty?
|
26
|
-
|
27
|
-
message 'This merge request includes changes to Vue files that have both CE and EE versions.'
|
28
|
-
|
29
|
-
markdown(<<~MARKDOWN)
|
30
|
-
## Vue `<template>` in CE and EE
|
31
|
-
|
32
|
-
Some Vue files in CE have a counterpart in EE.
|
33
|
-
(For example, `path/to/file.vue` and `ee/path/to/file.vue`.)
|
34
|
-
|
35
|
-
When run in the context of CE, the `<template>` of the CE Vue file is used.
|
36
|
-
When run in the context of EE, the `<template>` of the EE Vue file is used.
|
37
|
-
|
38
|
-
It's easy to accidentally make a change to a CE `<template>` that _should_
|
39
|
-
appear in both CE and EE without making the change in both places.
|
40
|
-
When this happens, the change only takes effect in CE.
|
41
|
-
|
42
|
-
The following Vue files were changed as part of this merge request that
|
43
|
-
include both a CE and EE version of the file:
|
44
|
-
|
45
|
-
* #{vue_candidates.map { |path| "`#{path}`" }.join("\n* ")}
|
46
|
-
|
47
|
-
If you made a change to the `<template>` of any of these Vue files that
|
48
|
-
should be visible in both CE and EE, please ensure you have made your
|
49
|
-
change to both versions of the file.
|
50
|
-
|
51
|
-
### A better alternative
|
52
|
-
|
53
|
-
An even _better_ alternative is to refactor this component to only use
|
54
|
-
a single template for both CE and EE. More info on this approach here:
|
55
|
-
https://docs.gitlab.com/ee/development/ee_features.html#template-tag
|
56
|
-
MARKDOWN
|
@@ -1,90 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
# rubocop:disable Style/SignalException
|
3
|
-
|
4
|
-
require 'yaml'
|
5
|
-
|
6
|
-
SEE_DOC = "See the [changelog documentation](https://docs.gitlab.com/ee/development/changelog.html)."
|
7
|
-
CREATE_CHANGELOG_MESSAGE = <<~MSG
|
8
|
-
If you want to create a changelog entry for GitLab FOSS, run the following:
|
9
|
-
|
10
|
-
```
|
11
|
-
bin/changelog -m %<mr_iid>s "%<mr_title>s"
|
12
|
-
```
|
13
|
-
|
14
|
-
If you want to create a changelog entry for GitLab EE, run the following instead:
|
15
|
-
|
16
|
-
```
|
17
|
-
bin/changelog --ee -m %<mr_iid>s "%<mr_title>s"
|
18
|
-
```
|
19
|
-
|
20
|
-
If this merge request [doesn't need a CHANGELOG entry](https://docs.gitlab.com/ee/development/changelog.html#what-warrants-a-changelog-entry), feel free to ignore this message.
|
21
|
-
MSG
|
22
|
-
|
23
|
-
SUGGEST_MR_COMMENT = <<~SUGGEST_COMMENT
|
24
|
-
```suggestion
|
25
|
-
merge_request: %<mr_iid>s
|
26
|
-
```
|
27
|
-
|
28
|
-
#{SEE_DOC}
|
29
|
-
SUGGEST_COMMENT
|
30
|
-
|
31
|
-
def check_changelog_yaml(path)
|
32
|
-
raw_file = File.read(path)
|
33
|
-
yaml = YAML.safe_load(raw_file)
|
34
|
-
|
35
|
-
fail "`title` should be set, in #{helper.html_link(path)}! #{SEE_DOC}" if yaml["title"].nil?
|
36
|
-
fail "`type` should be set, in #{helper.html_link(path)}! #{SEE_DOC}" if yaml["type"].nil?
|
37
|
-
|
38
|
-
return if helper.security_mr?
|
39
|
-
|
40
|
-
cherry_pick_against_stable_branch = helper.cherry_pick_mr? && helper.stable_branch?
|
41
|
-
|
42
|
-
if yaml["merge_request"].nil?
|
43
|
-
mr_line = raw_file.lines.find_index("merge_request:\n")
|
44
|
-
|
45
|
-
if mr_line
|
46
|
-
markdown(format(SUGGEST_MR_COMMENT, mr_iid: gitlab.mr_json["iid"]), file: path, line: mr_line.succ)
|
47
|
-
else
|
48
|
-
message "Consider setting `merge_request` to #{gitlab.mr_json["iid"]} in #{helper.html_link(path)}. #{SEE_DOC}"
|
49
|
-
end
|
50
|
-
elsif yaml["merge_request"] != gitlab.mr_json["iid"] && !cherry_pick_against_stable_branch
|
51
|
-
fail "Merge request ID was not set to #{gitlab.mr_json["iid"]}! #{SEE_DOC}"
|
52
|
-
end
|
53
|
-
rescue Psych::SyntaxError, Psych::DisallowedClass, Psych::BadAlias
|
54
|
-
# YAML could not be parsed, fail the build.
|
55
|
-
fail "#{helper.html_link(path)} isn't valid YAML! #{SEE_DOC}"
|
56
|
-
rescue StandardError => e
|
57
|
-
warn "There was a problem trying to check the Changelog. Exception: #{e.class.name} - #{e.message}"
|
58
|
-
end
|
59
|
-
|
60
|
-
def check_changelog_path(path)
|
61
|
-
ee_changes = helper.all_ee_changes.dup
|
62
|
-
ee_changes.delete(path)
|
63
|
-
|
64
|
-
if ee_changes.any? && !changelog.ee_changelog?
|
65
|
-
warn "This MR has a Changelog file outside `ee/`, but code changes in `ee/`. Consider moving the Changelog file into `ee/`."
|
66
|
-
end
|
67
|
-
|
68
|
-
if ee_changes.empty? && changelog.ee_changelog?
|
69
|
-
warn "This MR has a Changelog file in `ee/`, but no code changes in `ee/`. Consider moving the Changelog file outside `ee/`."
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
def sanitized_mr_title
|
74
|
-
helper.sanitize_mr_title(gitlab.mr_json["title"])
|
75
|
-
end
|
76
|
-
|
77
|
-
if git.modified_files.include?("CHANGELOG.md")
|
78
|
-
fail "**CHANGELOG.md was edited.** Please remove the additions and create a CHANGELOG entry.\n\n" +
|
79
|
-
format(CREATE_CHANGELOG_MESSAGE, mr_iid: gitlab.mr_json["iid"], mr_title: sanitized_mr_title)
|
80
|
-
end
|
81
|
-
|
82
|
-
changelog_found = changelog.found
|
83
|
-
|
84
|
-
if changelog_found
|
85
|
-
check_changelog_yaml(changelog_found)
|
86
|
-
check_changelog_path(changelog_found)
|
87
|
-
elsif changelog.needed?
|
88
|
-
message "**[CHANGELOG missing](https://docs.gitlab.com/ee/development/changelog.html)**:\n\n" +
|
89
|
-
format(CREATE_CHANGELOG_MESSAGE, mr_iid: gitlab.mr_json["iid"], mr_title: sanitized_mr_title)
|
90
|
-
end
|