class Overcommit::Hook::CommitMsg::MessageFormat

Ensures the commit message follows a specific format.

Public Instance Methods

run() click to toggle source
# File lib/overcommit/hook/commit_msg/message_format.rb, line 6
def run
  error_msg = validate_pattern(commit_message_lines.join("\n"))
  return :fail, error_msg if error_msg

  :pass
end

Private Instance Methods

validate_pattern(message) click to toggle source
# File lib/overcommit/hook/commit_msg/message_format.rb, line 15
def validate_pattern(message)
  pattern = config['pattern']
  return if pattern.empty?

  expected_pattern_message = config['expected_pattern_message']
  sample_message = config['sample_message']

  unless message.match?(/#{pattern}/m)
    [
      'Commit message pattern mismatch.',
      "Expected : #{expected_pattern_message}",
      "Sample : #{sample_message}"
    ].join("\n")
  end
end