Sha256: ea0b3b5b8b06d6af8cf603cbd956cb8a3e3774c292573719004e0b156f80bd82
Contents?: true
Size: 1.2 KB
Versions: 4
Compression:
Stored size: 1.2 KB
Contents
# frozen_string_literal: true module Git module Lint module Analyzers class CommitTrailerCollaboratorKey < Abstract def self.defaults { enabled: true, severity: :error, includes: ["Co-Authored-By"] } end def initialize commit:, settings: self.class.defaults, parser: Parsers::Trailers::Collaborator super commit: commit, settings: settings @parser = parser end def valid? affected_commit_trailers.empty? end def issue return {} if valid? { hint: "Use format: #{filter_list.to_hint}.", lines: affected_commit_trailers } end protected def load_filter_list Kit::FilterList.new settings.fetch :includes end def invalid_line? line collaborator = parser.new line key = collaborator.key collaborator.match? && !key.empty? && !key.match?( /\A#{Regexp.union filter_list.to_regexp}\Z/ ) end private attr_reader :parser end end end end
Version data entries
4 entries across 4 versions & 1 rubygems