Sha256: fefe296d382bf3f9599c691bac44af1cb577bf87ed1bdb8310b7ed7196ac6344

Contents?: true

Size: 684 Bytes

Versions: 31

Compression:

Stored size: 684 Bytes

Contents

# frozen_string_literal: true

module Overcommit::Hook::CommitMsg
  # Ensures commit message subject lines start with a capital letter.
  class CapitalizedSubject < Base
    def run
      return :pass if empty_message?

      # Git treats the first non-empty line as the subject
      subject = commit_message_lines.find { |line| !line.strip.empty? }.to_s
      first_letter = subject.match(/^[[:punct:]]*(.)/)[1]
      unless special_prefix?(subject) || first_letter =~ /[[:upper:]]/
        return :warn, 'Subject should start with a capital letter'
      end

      :pass
    end

    private

    def special_prefix?(subject)
      subject =~ /^(fixup|squash)!/
    end
  end
end

Version data entries

31 entries across 31 versions & 2 rubygems

Version Path
overcommit-0.67.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.66.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.65.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.64.1 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.64.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.63.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.62.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.61.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.60.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.59.1 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.59.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-jeygeethanmedia-0.58.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.58.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.57.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.56.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.55.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.54.1 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-0.54.0 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-jeygeethanmedia-0.53.1.2 lib/overcommit/hook/commit_msg/capitalized_subject.rb
overcommit-jeygeethanmedia-0.53.1.1 lib/overcommit/hook/commit_msg/capitalized_subject.rb