# frozen_string_literal: true emoji_checker_path = File.expand_path('emoji_checker', __dir__) base_linter_path = File.expand_path('base_linter', __dir__) if defined?(Rails) require_dependency(base_linter_path) require_dependency(emoji_checker_path) else require_relative(base_linter_path) require_relative(emoji_checker_path) end module Gitlab module Danger class CommitLinter < BaseLinter MAX_CHANGED_FILES_IN_COMMIT = 3 MAX_CHANGED_LINES_IN_COMMIT = 30 SHORT_REFERENCE_REGEX = %r{([\w\-\/]+)?(? MAX_CHANGED_FILES_IN_COMMIT && lines_changed > MAX_CHANGED_LINES_IN_COMMIT end def separator message_parts[1] end def details message_parts[2]&.gsub(/^Signed-off-by.*$/, '') end def message_contains_text_emoji? emoji_checker.includes_text_emoji?(commit.message) end def message_contains_unicode_emoji? emoji_checker.includes_unicode_emoji?(commit.message) end def message_contains_short_reference? commit.message.match?(SHORT_REFERENCE_REGEX) end def emoji_checker @emoji_checker ||= Gitlab::Danger::EmojiChecker.new end end end end