summaryrefslogtreecommitdiff
path: root/danger/pajamas/Dangerfile
diff options
context:
space:
mode:
Diffstat (limited to 'danger/pajamas/Dangerfile')
-rw-r--r--danger/pajamas/Dangerfile65
1 files changed, 54 insertions, 11 deletions
diff --git a/danger/pajamas/Dangerfile b/danger/pajamas/Dangerfile
index 34dcbc21941..36bf7672cbf 100644
--- a/danger/pajamas/Dangerfile
+++ b/danger/pajamas/Dangerfile
@@ -1,15 +1,43 @@
# frozen_string_literal: true
+# rubocop:disable Style/SignalException
PATTERNS = %w[
+ %a.btn.btn-
+ %button.btn.btn-
+ .alert
+ .alert-danger
+ .alert-dismissible
+ .alert-info
+ .alert-link
+ .alert-primary
+ .alert-success
+ .alert-warning
+ .nav-tabs
+ .toolbar-button-icon
+ .tooltip
+ .tooltip-inner
+ <button
+ <tabs
+ bs-callout
createFlash
+ deprecated-modal
gl-deprecated-button
- loading-button
- pagination-button
gl-deprecated-dropdown
gl-deprecated-dropdown-divider
gl-deprecated-dropdown-header
gl-deprecated-dropdown-item
+ has-tooltip
+ has_tooltip
initDeprecatedJQueryDropdown
+ loading-button
+ v-popover
+ v-tooltip
+ with_tooltip
+].freeze
+
+BLOCKING_PATTERNS = %w[
+ pagination-button
+ graphql_pagination
].freeze
def get_added_lines(files)
@@ -25,19 +53,34 @@ changed_vue_haml_files = helper.changed_files(/.vue$|.haml$/)
return if changed_vue_haml_files.empty?
changed_lines_in_mr = get_added_lines(changed_vue_haml_files)
-has_deprecated_components = changed_lines_in_mr.select { |i| i[/#{PATTERNS.join("|")}/] }
-deprecated_components_in_mr = PATTERNS.select { |s| has_deprecated_components.join(" ")[s] }
-
-return if deprecated_components_in_mr.empty?
+deprecated_components_in_mr = PATTERNS.select { |pattern| changed_lines_in_mr.any? { |line| line[pattern] } }
+blocking_components_in_mr = BLOCKING_PATTERNS.select { |pattern| changed_lines_in_mr.any? { |line| line[pattern] } }
-warn "This merge request contains deprecated components. Please consider using Pajamas components instead."
+return if (deprecated_components_in_mr + blocking_components_in_mr).empty?
markdown(<<~MARKDOWN)
## Deprecated components
- The following components are deprecated:
+MARKDOWN
- * #{deprecated_components_in_mr.join("\n* ")}
+if blocking_components_in_mr.any?
+ markdown(<<~MARKDOWN)
+ These deprecated components have already been migrated and can no longer be used. Please use [Pajamas components](https://design.gitlab.com/components/status/) instead.
- Please consider using [Pajamas components](https://design.gitlab.com/components/status/) instead.
-MARKDOWN
+ * #{blocking_components_in_mr.join("\n* ")}
+
+ MARKDOWN
+
+ fail "This merge request contains deprecated components that have been migrated and can no longer be used. Please use Pajamas components instead."
+end
+
+if deprecated_components_in_mr.any?
+ markdown(<<~MARKDOWN)
+ These deprecated components are in the process of being migrated. Please consider using [Pajamas components](https://design.gitlab.com/components/status/) instead.
+
+ * #{deprecated_components_in_mr.join("\n* ")}
+
+ MARKDOWN
+
+ warn "This merge request contains deprecated components. Please consider using Pajamas components instead."
+end