overcommit 0.46.0 → 0.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. checksums.yaml +4 -4
  2. data/bin/overcommit +1 -0
  3. data/config/default.yml +53 -7
  4. data/lib/overcommit.rb +2 -0
  5. data/lib/overcommit/command_splitter.rb +2 -0
  6. data/lib/overcommit/configuration.rb +6 -4
  7. data/lib/overcommit/configuration_loader.rb +1 -1
  8. data/lib/overcommit/configuration_validator.rb +22 -14
  9. data/lib/overcommit/exceptions.rb +2 -0
  10. data/lib/overcommit/git_config.rb +2 -0
  11. data/lib/overcommit/git_repo.rb +2 -0
  12. data/lib/overcommit/git_version.rb +2 -0
  13. data/lib/overcommit/hook/base.rb +6 -4
  14. data/lib/overcommit/hook/commit_msg/base.rb +2 -0
  15. data/lib/overcommit/hook/commit_msg/capitalized_subject.rb +2 -0
  16. data/lib/overcommit/hook/commit_msg/empty_message.rb +2 -0
  17. data/lib/overcommit/hook/commit_msg/gerrit_change_id.rb +2 -0
  18. data/lib/overcommit/hook/commit_msg/hard_tabs.rb +2 -0
  19. data/lib/overcommit/hook/commit_msg/message_format.rb +2 -0
  20. data/lib/overcommit/hook/commit_msg/russian_novel.rb +2 -0
  21. data/lib/overcommit/hook/commit_msg/single_line_subject.rb +2 -0
  22. data/lib/overcommit/hook/commit_msg/spell_check.rb +2 -0
  23. data/lib/overcommit/hook/commit_msg/text_width.rb +2 -0
  24. data/lib/overcommit/hook/commit_msg/trailing_period.rb +2 -0
  25. data/lib/overcommit/hook/post_checkout/base.rb +2 -0
  26. data/lib/overcommit/hook/post_checkout/bower_install.rb +2 -0
  27. data/lib/overcommit/hook/post_checkout/bundle_install.rb +2 -0
  28. data/lib/overcommit/hook/post_checkout/composer_install.rb +2 -0
  29. data/lib/overcommit/hook/post_checkout/index_tags.rb +2 -0
  30. data/lib/overcommit/hook/post_checkout/npm_install.rb +2 -0
  31. data/lib/overcommit/hook/post_checkout/submodule_status.rb +2 -0
  32. data/lib/overcommit/hook/post_checkout/yarn_install.rb +2 -0
  33. data/lib/overcommit/hook/post_commit/base.rb +2 -0
  34. data/lib/overcommit/hook/post_commit/bower_install.rb +2 -0
  35. data/lib/overcommit/hook/post_commit/bundle_install.rb +2 -0
  36. data/lib/overcommit/hook/post_commit/commitplease.rb +2 -0
  37. data/lib/overcommit/hook/post_commit/composer_install.rb +2 -0
  38. data/lib/overcommit/hook/post_commit/git_guilt.rb +2 -0
  39. data/lib/overcommit/hook/post_commit/index_tags.rb +2 -0
  40. data/lib/overcommit/hook/post_commit/npm_install.rb +2 -0
  41. data/lib/overcommit/hook/post_commit/submodule_status.rb +2 -0
  42. data/lib/overcommit/hook/post_commit/yarn_install.rb +2 -0
  43. data/lib/overcommit/hook/post_merge/base.rb +2 -0
  44. data/lib/overcommit/hook/post_merge/bower_install.rb +2 -0
  45. data/lib/overcommit/hook/post_merge/bundle_install.rb +2 -0
  46. data/lib/overcommit/hook/post_merge/composer_install.rb +2 -0
  47. data/lib/overcommit/hook/post_merge/index_tags.rb +2 -0
  48. data/lib/overcommit/hook/post_merge/npm_install.rb +2 -0
  49. data/lib/overcommit/hook/post_merge/submodule_status.rb +2 -0
  50. data/lib/overcommit/hook/post_merge/yarn_install.rb +2 -0
  51. data/lib/overcommit/hook/post_rewrite/base.rb +2 -0
  52. data/lib/overcommit/hook/post_rewrite/bower_install.rb +2 -0
  53. data/lib/overcommit/hook/post_rewrite/bundle_install.rb +2 -0
  54. data/lib/overcommit/hook/post_rewrite/composer_install.rb +2 -0
  55. data/lib/overcommit/hook/post_rewrite/index_tags.rb +2 -0
  56. data/lib/overcommit/hook/post_rewrite/npm_install.rb +2 -0
  57. data/lib/overcommit/hook/post_rewrite/submodule_status.rb +2 -0
  58. data/lib/overcommit/hook/post_rewrite/yarn_install.rb +2 -0
  59. data/lib/overcommit/hook/pre_commit/author_email.rb +2 -0
  60. data/lib/overcommit/hook/pre_commit/author_name.rb +2 -0
  61. data/lib/overcommit/hook/pre_commit/base.rb +2 -0
  62. data/lib/overcommit/hook/pre_commit/broken_symlinks.rb +2 -0
  63. data/lib/overcommit/hook/pre_commit/bundle_audit.rb +2 -0
  64. data/lib/overcommit/hook/pre_commit/bundle_check.rb +2 -1
  65. data/lib/overcommit/hook/pre_commit/bundle_outdated.rb +2 -0
  66. data/lib/overcommit/hook/pre_commit/case_conflicts.rb +2 -0
  67. data/lib/overcommit/hook/pre_commit/chamber_compare.rb +2 -0
  68. data/lib/overcommit/hook/pre_commit/chamber_security.rb +2 -0
  69. data/lib/overcommit/hook/pre_commit/chamber_verification.rb +3 -1
  70. data/lib/overcommit/hook/pre_commit/coffee_lint.rb +2 -0
  71. data/lib/overcommit/hook/pre_commit/cook_style.rb +35 -0
  72. data/lib/overcommit/hook/pre_commit/credo.rb +2 -0
  73. data/lib/overcommit/hook/pre_commit/css_lint.rb +2 -0
  74. data/lib/overcommit/hook/pre_commit/dogma.rb +2 -0
  75. data/lib/overcommit/hook/pre_commit/es_lint.rb +2 -0
  76. data/lib/overcommit/hook/pre_commit/execute_permissions.rb +2 -0
  77. data/lib/overcommit/hook/pre_commit/fasterer.rb +2 -0
  78. data/lib/overcommit/hook/pre_commit/fix_me.rb +2 -0
  79. data/lib/overcommit/hook/pre_commit/flay.rb +2 -0
  80. data/lib/overcommit/hook/pre_commit/foodcritic.rb +2 -0
  81. data/lib/overcommit/hook/pre_commit/forbidden_branches.rb +2 -0
  82. data/lib/overcommit/hook/pre_commit/go_lint.rb +2 -0
  83. data/lib/overcommit/hook/pre_commit/go_vet.rb +2 -0
  84. data/lib/overcommit/hook/pre_commit/hadolint.rb +2 -0
  85. data/lib/overcommit/hook/pre_commit/haml_lint.rb +2 -0
  86. data/lib/overcommit/hook/pre_commit/hard_tabs.rb +2 -0
  87. data/lib/overcommit/hook/pre_commit/hlint.rb +2 -0
  88. data/lib/overcommit/hook/pre_commit/html_hint.rb +2 -0
  89. data/lib/overcommit/hook/pre_commit/html_tidy.rb +2 -0
  90. data/lib/overcommit/hook/pre_commit/image_optim.rb +2 -0
  91. data/lib/overcommit/hook/pre_commit/java_checkstyle.rb +2 -0
  92. data/lib/overcommit/hook/pre_commit/js_hint.rb +2 -0
  93. data/lib/overcommit/hook/pre_commit/js_lint.rb +2 -0
  94. data/lib/overcommit/hook/pre_commit/jscs.rb +2 -0
  95. data/lib/overcommit/hook/pre_commit/jsl.rb +2 -0
  96. data/lib/overcommit/hook/pre_commit/json_syntax.rb +2 -0
  97. data/lib/overcommit/hook/pre_commit/kt_lint.rb +19 -0
  98. data/lib/overcommit/hook/pre_commit/license_finder.rb +2 -0
  99. data/lib/overcommit/hook/pre_commit/license_header.rb +2 -0
  100. data/lib/overcommit/hook/pre_commit/line_endings.rb +2 -0
  101. data/lib/overcommit/hook/pre_commit/local_paths_in_gemfile.rb +2 -0
  102. data/lib/overcommit/hook/pre_commit/mdl.rb +2 -0
  103. data/lib/overcommit/hook/pre_commit/merge_conflicts.rb +2 -0
  104. data/lib/overcommit/hook/pre_commit/nginx_test.rb +2 -0
  105. data/lib/overcommit/hook/pre_commit/pep257.rb +2 -0
  106. data/lib/overcommit/hook/pre_commit/pep8.rb +2 -0
  107. data/lib/overcommit/hook/pre_commit/php_cs.rb +2 -0
  108. data/lib/overcommit/hook/pre_commit/php_cs_fixer.rb +2 -0
  109. data/lib/overcommit/hook/pre_commit/php_lint.rb +2 -0
  110. data/lib/overcommit/hook/pre_commit/php_stan.rb +2 -0
  111. data/lib/overcommit/hook/pre_commit/pronto.rb +2 -0
  112. data/lib/overcommit/hook/pre_commit/puppet_lint.rb +2 -0
  113. data/lib/overcommit/hook/pre_commit/puppet_metadata_json_lint.rb +2 -0
  114. data/lib/overcommit/hook/pre_commit/pycodestyle.rb +2 -0
  115. data/lib/overcommit/hook/pre_commit/pydocstyle.rb +2 -0
  116. data/lib/overcommit/hook/pre_commit/pyflakes.rb +2 -0
  117. data/lib/overcommit/hook/pre_commit/pylint.rb +2 -0
  118. data/lib/overcommit/hook/pre_commit/python_flake8.rb +2 -0
  119. data/lib/overcommit/hook/pre_commit/rails_best_practices.rb +2 -0
  120. data/lib/overcommit/hook/pre_commit/rails_schema_up_to_date.rb +2 -0
  121. data/lib/overcommit/hook/pre_commit/rake_target.rb +2 -0
  122. data/lib/overcommit/hook/pre_commit/reek.rb +2 -0
  123. data/lib/overcommit/hook/pre_commit/rst_lint.rb +2 -0
  124. data/lib/overcommit/hook/pre_commit/rubo_cop.rb +2 -0
  125. data/lib/overcommit/hook/pre_commit/ruby_lint.rb +2 -0
  126. data/lib/overcommit/hook/pre_commit/scalariform.rb +2 -0
  127. data/lib/overcommit/hook/pre_commit/scalastyle.rb +2 -0
  128. data/lib/overcommit/hook/pre_commit/scss_lint.rb +2 -0
  129. data/lib/overcommit/hook/pre_commit/semi_standard.rb +2 -0
  130. data/lib/overcommit/hook/pre_commit/shell_check.rb +2 -0
  131. data/lib/overcommit/hook/pre_commit/slim_lint.rb +2 -0
  132. data/lib/overcommit/hook/pre_commit/sqlint.rb +2 -0
  133. data/lib/overcommit/hook/pre_commit/standard.rb +2 -0
  134. data/lib/overcommit/hook/pre_commit/stylelint.rb +2 -0
  135. data/lib/overcommit/hook/pre_commit/swift_lint.rb +19 -0
  136. data/lib/overcommit/hook/pre_commit/terraform_format.rb +19 -0
  137. data/lib/overcommit/hook/pre_commit/trailing_whitespace.rb +2 -0
  138. data/lib/overcommit/hook/pre_commit/travis_lint.rb +2 -0
  139. data/lib/overcommit/hook/pre_commit/ts_lint.rb +14 -4
  140. data/lib/overcommit/hook/pre_commit/vint.rb +2 -0
  141. data/lib/overcommit/hook/pre_commit/w3c_css.rb +2 -0
  142. data/lib/overcommit/hook/pre_commit/w3c_html.rb +2 -0
  143. data/lib/overcommit/hook/pre_commit/xml_lint.rb +2 -0
  144. data/lib/overcommit/hook/pre_commit/xml_syntax.rb +2 -0
  145. data/lib/overcommit/hook/pre_commit/yaml_lint.rb +2 -0
  146. data/lib/overcommit/hook/pre_commit/yaml_syntax.rb +2 -0
  147. data/lib/overcommit/hook/pre_commit/yard_coverage.rb +2 -0
  148. data/lib/overcommit/hook/pre_commit/yarn_check.rb +1 -1
  149. data/lib/overcommit/hook/pre_push/base.rb +2 -0
  150. data/lib/overcommit/hook/pre_push/brakeman.rb +2 -0
  151. data/lib/overcommit/hook/pre_push/cargo_test.rb +2 -0
  152. data/lib/overcommit/hook/pre_push/minitest.rb +2 -0
  153. data/lib/overcommit/hook/pre_push/php_unit.rb +2 -0
  154. data/lib/overcommit/hook/pre_push/protected_branches.rb +2 -0
  155. data/lib/overcommit/hook/pre_push/pytest.rb +2 -0
  156. data/lib/overcommit/hook/pre_push/python_nose.rb +2 -0
  157. data/lib/overcommit/hook/pre_push/r_spec.rb +2 -0
  158. data/lib/overcommit/hook/pre_push/rake_target.rb +2 -0
  159. data/lib/overcommit/hook/pre_push/test_unit.rb +2 -0
  160. data/lib/overcommit/hook/pre_rebase/base.rb +2 -0
  161. data/lib/overcommit/hook/pre_rebase/merged_commits.rb +2 -0
  162. data/lib/overcommit/hook/prepare_commit_msg/base.rb +25 -0
  163. data/lib/overcommit/hook/prepare_commit_msg/replace_branch.rb +52 -0
  164. data/lib/overcommit/hook/shared/bower_install.rb +2 -0
  165. data/lib/overcommit/hook/shared/bundle_install.rb +2 -0
  166. data/lib/overcommit/hook/shared/composer_install.rb +2 -0
  167. data/lib/overcommit/hook/shared/index_tags.rb +2 -0
  168. data/lib/overcommit/hook/shared/npm_install.rb +2 -0
  169. data/lib/overcommit/hook/shared/rake_target.rb +2 -0
  170. data/lib/overcommit/hook/shared/submodule_status.rb +2 -0
  171. data/lib/overcommit/hook/shared/yarn_install.rb +2 -0
  172. data/lib/overcommit/hook_context.rb +2 -0
  173. data/lib/overcommit/hook_context/base.rb +2 -0
  174. data/lib/overcommit/hook_context/commit_msg.rb +2 -0
  175. data/lib/overcommit/hook_context/post_checkout.rb +2 -0
  176. data/lib/overcommit/hook_context/post_commit.rb +2 -0
  177. data/lib/overcommit/hook_context/post_merge.rb +2 -0
  178. data/lib/overcommit/hook_context/post_rewrite.rb +2 -0
  179. data/lib/overcommit/hook_context/pre_commit.rb +4 -1
  180. data/lib/overcommit/hook_context/pre_push.rb +2 -0
  181. data/lib/overcommit/hook_context/pre_rebase.rb +2 -0
  182. data/lib/overcommit/hook_context/prepare_commit_msg.rb +34 -0
  183. data/lib/overcommit/hook_context/run_all.rb +2 -0
  184. data/lib/overcommit/hook_loader/base.rb +2 -0
  185. data/lib/overcommit/hook_loader/built_in_hook_loader.rb +2 -0
  186. data/lib/overcommit/hook_loader/plugin_hook_loader.rb +2 -0
  187. data/lib/overcommit/hook_runner.rb +2 -0
  188. data/lib/overcommit/hook_signer.rb +2 -0
  189. data/lib/overcommit/installer.rb +2 -0
  190. data/lib/overcommit/interrupt_handler.rb +2 -0
  191. data/lib/overcommit/logger.rb +3 -1
  192. data/lib/overcommit/os.rb +2 -0
  193. data/lib/overcommit/printer.rb +2 -0
  194. data/lib/overcommit/subprocess.rb +2 -0
  195. data/lib/overcommit/utils.rb +3 -1
  196. data/lib/overcommit/utils/file_utils.rb +2 -0
  197. data/lib/overcommit/utils/messages_utils.rb +2 -0
  198. data/lib/overcommit/version.rb +1 -1
  199. data/template-dir/hooks/commit-msg +1 -0
  200. data/template-dir/hooks/overcommit-hook +1 -0
  201. data/template-dir/hooks/post-checkout +1 -0
  202. data/template-dir/hooks/post-commit +1 -0
  203. data/template-dir/hooks/post-merge +1 -0
  204. data/template-dir/hooks/post-rewrite +1 -0
  205. data/template-dir/hooks/pre-commit +1 -0
  206. data/template-dir/hooks/pre-push +1 -0
  207. data/template-dir/hooks/pre-rebase +1 -0
  208. data/template-dir/hooks/prepare-commit-msg +116 -0
  209. metadata +11 -4
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PreCommit
2
4
  # Runs `vint` against any modified Vim script files.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PreCommit
2
4
  # Runs `w3c_validators` against any modified CSS files.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PreCommit
2
4
  # Runs `w3c_validators` against any modified HTML files.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PreCommit
2
4
  # Runs `xmllint` against any modified XML files.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PreCommit
2
4
  # Checks the syntax of any modified XML files.
3
5
  class XmlSyntax < Base
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PreCommit
2
4
  # Runs `YAMLLint` against any modified YAML files.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PreCommit
2
4
  # Checks the syntax of any modified YAML files.
3
5
  class YamlSyntax < Base
@@ -1,4 +1,6 @@
1
1
 
2
+ # frozen_string_literal: true
3
+
2
4
  module Overcommit::Hook::PreCommit
3
5
  # Class to check yard documentation coverage.
4
6
  #
@@ -12,7 +12,7 @@ module Overcommit::Hook::PreCommit
12
12
  # (are caused by bad package specification, in the hands of the upstream maintainer)
13
13
  # So limit reporting to errors the developer can do something about
14
14
  ACTIONABLE_ERRORS = [
15
- 'Lockfile does not contain pattern'.freeze,
15
+ 'Lockfile does not contain pattern',
16
16
  ].freeze
17
17
 
18
18
  def run
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'forwardable'
2
4
 
3
5
  module Overcommit::Hook::PrePush
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PrePush
2
4
  # Runs `brakeman` whenever Ruby/Rails files change.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PrePush
2
4
  # Runs `cargo test` before push if Rust files changed
3
5
  class CargoTest < Base
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PrePush
2
4
  # Runs `minitest` test suite before push
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PrePush
2
4
  # Runs `phpunit` test suite before push
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PrePush
2
4
  # Prevents destructive updates to specified branches.
3
5
  class ProtectedBranches < Base
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PrePush
2
4
  # Runs `pytest` test suite before push
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PrePush
2
4
  # Runs `nose` test suite before push
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PrePush
2
4
  # Runs `rspec` test suite before push
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'overcommit/hook/shared/rake_target'
2
4
 
3
5
  module Overcommit::Hook::PrePush
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PrePush
2
4
  # Runs `test-unit` test suite before push
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'forwardable'
2
4
 
3
5
  module Overcommit::Hook::PreRebase
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::PreRebase
2
4
  # Prevents rebasing commits that have already been merged into one of
3
5
  # a specified set of branches.
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'forwardable'
4
+
5
+ module Overcommit::Hook::PrepareCommitMsg
6
+ # Functionality common to all prepare-commit-msg hooks.
7
+ class Base < Overcommit::Hook::Base
8
+ extend Forwardable
9
+
10
+ def_delegators :@context,
11
+ :commit_message_filename, :commit_message_source, :commit, :lock
12
+
13
+ def modify_commit_message
14
+ raise 'This expects a block!' unless block_given?
15
+ # NOTE: this assumes all the hooks of the same type share the context's
16
+ # memory. If that's not the case, this won't work.
17
+ lock.synchronize do
18
+ contents = File.read(commit_message_filename)
19
+ File.open(commit_message_filename, 'w') do |f|
20
+ f << (yield contents)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Overcommit::Hook::PrepareCommitMsg
4
+ # Prepends the commit message with a message based on the branch name.
5
+ # It's possible to reference parts of the branch name through the captures in
6
+ # the `branch_pattern` regex.
7
+ class ReplaceBranch < Base
8
+ def run
9
+ return :pass unless !commit_message_source ||
10
+ commit_message_source == :commit # NOTE: avoid 'merge' and 'rebase'
11
+ Overcommit::Utils.log.debug(
12
+ "Checking if '#{Overcommit::GitRepo.current_branch}' matches #{branch_pattern}"
13
+ )
14
+ if branch_pattern.match(Overcommit::GitRepo.current_branch)
15
+ Overcommit::Utils.log.debug("Writing #{commit_message_filename} with #{new_template}")
16
+ modify_commit_message do |old_contents|
17
+ "#{new_template}\n#{old_contents}"
18
+ end
19
+ :pass
20
+ else
21
+ :warn
22
+ end
23
+ end
24
+
25
+ def new_template
26
+ @new_template ||= Overcommit::GitRepo.current_branch.gsub(branch_pattern, replacement_text)
27
+ end
28
+
29
+ def branch_pattern
30
+ @branch_pattern ||=
31
+ begin
32
+ pattern = config['branch_pattern']
33
+ Regexp.new((pattern || '').empty? ? '\A.*\w+[-_](\d+).*\z' : pattern)
34
+ end
35
+ end
36
+
37
+ def replacement_text
38
+ @replacement_text ||=
39
+ begin
40
+ if File.exist?(replacement_text_config)
41
+ File.read(replacement_text_config)
42
+ else
43
+ replacement_text_config
44
+ end
45
+ end
46
+ end
47
+
48
+ def replacement_text_config
49
+ @replacement_text_config ||= config['replacement_text']
50
+ end
51
+ end
52
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::Shared
2
4
  # Shared code used by all BowerInstall hooks. Runs `bower install` when a
3
5
  # change is detected in the repository's dependencies.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::Shared
2
4
  # Shared code used by all BundleInstall hooks. Runs `bundle install` when a
3
5
  # change is detected in the repository's dependencies.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::Shared
2
4
  # Shared code used by all ComposerInstall hooks. Runs `composer install` when
3
5
  # a change is detected in the repository's dependencies.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::Shared
2
4
  # Shared code used by all IndexTags hooks. It runs ctags in the background so
3
5
  # your tag definitions are up-to-date.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::Shared
2
4
  # Shared code used by all NpmInstall hooks. Runs `npm install` when a change
3
5
  # is detected in the repository's dependencies.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::Shared
2
4
  # runs specified rake targets. It fails on the first non-
3
5
  # successfull exit.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::Shared
2
4
  # Shared code used by all `SubmoduleStatus` hooks to notify the user if any
3
5
  # submodules are uninitialized, out of date with the current index, or contain
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::Hook::Shared
2
4
  # Shared code used by all YarnInstall hooks. Runs `yarn install` when a change
3
5
  # is detected in the repository's dependencies.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Utility module which manages the creation of {HookContext}s.
2
4
  module Overcommit::HookContext
3
5
  def self.create(hook_type, config, args, input)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::HookContext
2
4
  # Contains helpers related to the context with which a hook is being run.
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::HookContext
2
4
  # Contains helpers related to contextual information used by commit-msg hooks.
3
5
  class CommitMsg < Base
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::HookContext
2
4
  # Contains helpers related to contextual information used by post-checkout
3
5
  # hooks.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::HookContext
2
4
  # Contains helpers related to contextual information used by post-commit
3
5
  # hooks.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::HookContext
2
4
  # Contains helpers related to contextual information used by post-merge
3
5
  # hooks.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::HookContext
2
4
  # Contains helpers for contextual information used by post-rewrite hooks.
3
5
  class PostRewrite < Base
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'fileutils'
2
4
  require 'set'
3
5
 
@@ -19,7 +21,8 @@ module Overcommit::HookContext
19
21
  # containing unicode characters, we replace the offending characters,
20
22
  # since the pattern we're looking for will consist of ASCII characters
21
23
  unless cmd.valid_encoding?
22
- cmd.encode!('UTF-16be', invalid: :replace, replace: '?').encode!('UTF-8')
24
+ cmd = Overcommit::Utils.parent_command.encode('UTF-16be', invalid: :replace, replace: '?').
25
+ encode('UTF-8')
23
26
  end
24
27
 
25
28
  return @amendment if
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::HookContext
2
4
  # Contains helpers related to contextual information used by pre-push hooks.
3
5
  class PrePush < Base
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::HookContext
2
4
  # Contains helpers related to contextual information used by pre-rebase
3
5
  # hooks.
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Overcommit::HookContext
4
+ # Contains helpers related to contextual information used by prepare-commit-msg
5
+ # hooks.
6
+ class PrepareCommitMsg < Base
7
+ # Returns the name of the file that contains the commit log message
8
+ def commit_message_filename
9
+ @args[0]
10
+ end
11
+
12
+ # Returns the source of the commit message, and can be: message (if a -m or
13
+ # -F option was given); template (if a -t option was given or the
14
+ # configuration option commit.template is set); merge (if the commit is a
15
+ # merge or a .git/MERGE_MSG file exists); squash (if a .git/SQUASH_MSG file
16
+ # exists); or commit, followed by a commit SHA-1 (if a -c, -C or --amend
17
+ # option was given)
18
+ def commit_message_source
19
+ @args[1].to_sym if @args[1]
20
+ end
21
+
22
+ # Returns the commit's SHA-1.
23
+ # If commit_message_source is :commit, it's passed through the command-line.
24
+ def commit_message_source_ref
25
+ @args[2] || `git rev-parse HEAD`
26
+ end
27
+
28
+ # Lock for the pre_commit_message file. Should be shared by all
29
+ # prepare-commit-message hooks
30
+ def lock
31
+ @lock ||= Monitor.new
32
+ end
33
+ end
34
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'set'
2
4
 
3
5
  module Overcommit::HookContext
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::HookLoader
2
4
  # Responsible for loading hooks from a file.
3
5
  class Base
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Overcommit::HookLoader
2
4
  # Responsible for loading hooks that ship with Overcommit.
3
5
  class BuiltInHookLoader < Base
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'digest'
2
4
 
3
5
  module Overcommit::HookLoader