overcommit-jeygeethanmedia 0.53.1

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 (226) hide show
  1. checksums.yaml +7 -0
  2. data/bin/overcommit +50 -0
  3. data/config/default.yml +1356 -0
  4. data/config/starter.yml +33 -0
  5. data/lib/overcommit.rb +26 -0
  6. data/lib/overcommit/cli.rb +223 -0
  7. data/lib/overcommit/command_splitter.rb +146 -0
  8. data/lib/overcommit/configuration.rb +350 -0
  9. data/lib/overcommit/configuration_loader.rb +96 -0
  10. data/lib/overcommit/configuration_validator.rb +186 -0
  11. data/lib/overcommit/constants.rb +12 -0
  12. data/lib/overcommit/exceptions.rb +52 -0
  13. data/lib/overcommit/git_config.rb +22 -0
  14. data/lib/overcommit/git_repo.rb +286 -0
  15. data/lib/overcommit/git_version.rb +17 -0
  16. data/lib/overcommit/hook/base.rb +294 -0
  17. data/lib/overcommit/hook/commit_msg/base.rb +14 -0
  18. data/lib/overcommit/hook/commit_msg/capitalized_subject.rb +25 -0
  19. data/lib/overcommit/hook/commit_msg/empty_message.rb +12 -0
  20. data/lib/overcommit/hook/commit_msg/gerrit_change_id.rb +22 -0
  21. data/lib/overcommit/hook/commit_msg/hard_tabs.rb +17 -0
  22. data/lib/overcommit/hook/commit_msg/message_format.rb +31 -0
  23. data/lib/overcommit/hook/commit_msg/russian_novel.rb +16 -0
  24. data/lib/overcommit/hook/commit_msg/single_line_subject.rb +16 -0
  25. data/lib/overcommit/hook/commit_msg/spell_check.rb +45 -0
  26. data/lib/overcommit/hook/commit_msg/text_width.rb +56 -0
  27. data/lib/overcommit/hook/commit_msg/trailing_period.rb +16 -0
  28. data/lib/overcommit/hook/post_checkout/base.rb +22 -0
  29. data/lib/overcommit/hook/post_checkout/bower_install.rb +13 -0
  30. data/lib/overcommit/hook/post_checkout/bundle_install.rb +13 -0
  31. data/lib/overcommit/hook/post_checkout/composer_install.rb +13 -0
  32. data/lib/overcommit/hook/post_checkout/index_tags.rb +12 -0
  33. data/lib/overcommit/hook/post_checkout/npm_install.rb +13 -0
  34. data/lib/overcommit/hook/post_checkout/submodule_status.rb +12 -0
  35. data/lib/overcommit/hook/post_checkout/yarn_install.rb +13 -0
  36. data/lib/overcommit/hook/post_commit/base.rb +12 -0
  37. data/lib/overcommit/hook/post_commit/bower_install.rb +13 -0
  38. data/lib/overcommit/hook/post_commit/bundle_install.rb +13 -0
  39. data/lib/overcommit/hook/post_commit/commitplease.rb +16 -0
  40. data/lib/overcommit/hook/post_commit/composer_install.rb +13 -0
  41. data/lib/overcommit/hook/post_commit/git_guilt.rb +43 -0
  42. data/lib/overcommit/hook/post_commit/index_tags.rb +12 -0
  43. data/lib/overcommit/hook/post_commit/npm_install.rb +13 -0
  44. data/lib/overcommit/hook/post_commit/submodule_status.rb +12 -0
  45. data/lib/overcommit/hook/post_commit/yarn_install.rb +13 -0
  46. data/lib/overcommit/hook/post_merge/base.rb +12 -0
  47. data/lib/overcommit/hook/post_merge/bower_install.rb +13 -0
  48. data/lib/overcommit/hook/post_merge/bundle_install.rb +13 -0
  49. data/lib/overcommit/hook/post_merge/composer_install.rb +13 -0
  50. data/lib/overcommit/hook/post_merge/index_tags.rb +12 -0
  51. data/lib/overcommit/hook/post_merge/npm_install.rb +13 -0
  52. data/lib/overcommit/hook/post_merge/submodule_status.rb +12 -0
  53. data/lib/overcommit/hook/post_merge/yarn_install.rb +13 -0
  54. data/lib/overcommit/hook/post_rewrite/base.rb +12 -0
  55. data/lib/overcommit/hook/post_rewrite/bower_install.rb +13 -0
  56. data/lib/overcommit/hook/post_rewrite/bundle_install.rb +13 -0
  57. data/lib/overcommit/hook/post_rewrite/composer_install.rb +13 -0
  58. data/lib/overcommit/hook/post_rewrite/index_tags.rb +19 -0
  59. data/lib/overcommit/hook/post_rewrite/npm_install.rb +13 -0
  60. data/lib/overcommit/hook/post_rewrite/submodule_status.rb +12 -0
  61. data/lib/overcommit/hook/post_rewrite/yarn_install.rb +13 -0
  62. data/lib/overcommit/hook/pre_commit/author_email.rb +26 -0
  63. data/lib/overcommit/hook/pre_commit/author_name.rb +25 -0
  64. data/lib/overcommit/hook/pre_commit/base.rb +19 -0
  65. data/lib/overcommit/hook/pre_commit/berksfile_check.rb +24 -0
  66. data/lib/overcommit/hook/pre_commit/broken_symlinks.rb +17 -0
  67. data/lib/overcommit/hook/pre_commit/bundle_audit.rb +24 -0
  68. data/lib/overcommit/hook/pre_commit/bundle_check.rb +32 -0
  69. data/lib/overcommit/hook/pre_commit/bundle_outdated.rb +25 -0
  70. data/lib/overcommit/hook/pre_commit/case_conflicts.rb +27 -0
  71. data/lib/overcommit/hook/pre_commit/chamber_compare.rb +43 -0
  72. data/lib/overcommit/hook/pre_commit/chamber_security.rb +15 -0
  73. data/lib/overcommit/hook/pre_commit/chamber_verification.rb +36 -0
  74. data/lib/overcommit/hook/pre_commit/code_spell_check.rb +36 -0
  75. data/lib/overcommit/hook/pre_commit/coffee_lint.rb +35 -0
  76. data/lib/overcommit/hook/pre_commit/cook_style.rb +35 -0
  77. data/lib/overcommit/hook/pre_commit/credo.rb +27 -0
  78. data/lib/overcommit/hook/pre_commit/css_lint.rb +26 -0
  79. data/lib/overcommit/hook/pre_commit/dogma.rb +33 -0
  80. data/lib/overcommit/hook/pre_commit/es_lint.rb +38 -0
  81. data/lib/overcommit/hook/pre_commit/execute_permissions.rb +76 -0
  82. data/lib/overcommit/hook/pre_commit/fasterer.rb +25 -0
  83. data/lib/overcommit/hook/pre_commit/file_size.rb +47 -0
  84. data/lib/overcommit/hook/pre_commit/fix_me.rb +17 -0
  85. data/lib/overcommit/hook/pre_commit/flay.rb +38 -0
  86. data/lib/overcommit/hook/pre_commit/foodcritic.rb +149 -0
  87. data/lib/overcommit/hook/pre_commit/forbidden_branches.rb +26 -0
  88. data/lib/overcommit/hook/pre_commit/ginkgo_focus.rb +23 -0
  89. data/lib/overcommit/hook/pre_commit/go_fmt.rb +17 -0
  90. data/lib/overcommit/hook/pre_commit/go_lint.rb +29 -0
  91. data/lib/overcommit/hook/pre_commit/go_vet.rb +24 -0
  92. data/lib/overcommit/hook/pre_commit/golangci_lint.rb +21 -0
  93. data/lib/overcommit/hook/pre_commit/hadolint.rb +27 -0
  94. data/lib/overcommit/hook/pre_commit/haml_lint.rb +23 -0
  95. data/lib/overcommit/hook/pre_commit/hard_tabs.rb +15 -0
  96. data/lib/overcommit/hook/pre_commit/hlint.rb +34 -0
  97. data/lib/overcommit/hook/pre_commit/html_hint.rb +23 -0
  98. data/lib/overcommit/hook/pre_commit/html_tidy.rb +30 -0
  99. data/lib/overcommit/hook/pre_commit/image_optim.rb +28 -0
  100. data/lib/overcommit/hook/pre_commit/java_checkstyle.rb +27 -0
  101. data/lib/overcommit/hook/pre_commit/js_hint.rb +23 -0
  102. data/lib/overcommit/hook/pre_commit/js_lint.rb +22 -0
  103. data/lib/overcommit/hook/pre_commit/jscs.rb +27 -0
  104. data/lib/overcommit/hook/pre_commit/jsl.rb +28 -0
  105. data/lib/overcommit/hook/pre_commit/json_syntax.rb +21 -0
  106. data/lib/overcommit/hook/pre_commit/kt_lint.rb +19 -0
  107. data/lib/overcommit/hook/pre_commit/license_finder.rb +14 -0
  108. data/lib/overcommit/hook/pre_commit/license_header.rb +48 -0
  109. data/lib/overcommit/hook/pre_commit/line_endings.rb +77 -0
  110. data/lib/overcommit/hook/pre_commit/local_paths_in_gemfile.rb +16 -0
  111. data/lib/overcommit/hook/pre_commit/mdl.rb +29 -0
  112. data/lib/overcommit/hook/pre_commit/merge_conflicts.rb +16 -0
  113. data/lib/overcommit/hook/pre_commit/nginx_test.rb +26 -0
  114. data/lib/overcommit/hook/pre_commit/pep257.rb +23 -0
  115. data/lib/overcommit/hook/pre_commit/pep8.rb +23 -0
  116. data/lib/overcommit/hook/pre_commit/php_cs.rb +43 -0
  117. data/lib/overcommit/hook/pre_commit/php_cs_fixer.rb +57 -0
  118. data/lib/overcommit/hook/pre_commit/php_lint.rb +44 -0
  119. data/lib/overcommit/hook/pre_commit/php_stan.rb +30 -0
  120. data/lib/overcommit/hook/pre_commit/pronto.rb +12 -0
  121. data/lib/overcommit/hook/pre_commit/puppet_lint.rb +26 -0
  122. data/lib/overcommit/hook/pre_commit/puppet_metadata_json_lint.rb +29 -0
  123. data/lib/overcommit/hook/pre_commit/pycodestyle.rb +23 -0
  124. data/lib/overcommit/hook/pre_commit/pydocstyle.rb +23 -0
  125. data/lib/overcommit/hook/pre_commit/pyflakes.rb +32 -0
  126. data/lib/overcommit/hook/pre_commit/pylint.rb +32 -0
  127. data/lib/overcommit/hook/pre_commit/python_flake8.rb +32 -0
  128. data/lib/overcommit/hook/pre_commit/rails_best_practices.rb +34 -0
  129. data/lib/overcommit/hook/pre_commit/rails_schema_up_to_date.rb +58 -0
  130. data/lib/overcommit/hook/pre_commit/rake_target.rb +12 -0
  131. data/lib/overcommit/hook/pre_commit/reek.rb +26 -0
  132. data/lib/overcommit/hook/pre_commit/rst_lint.rb +27 -0
  133. data/lib/overcommit/hook/pre_commit/rubo_cop.rb +35 -0
  134. data/lib/overcommit/hook/pre_commit/ruby_lint.rb +23 -0
  135. data/lib/overcommit/hook/pre_commit/ruby_syntax.rb +27 -0
  136. data/lib/overcommit/hook/pre_commit/scalariform.rb +22 -0
  137. data/lib/overcommit/hook/pre_commit/scalastyle.rb +31 -0
  138. data/lib/overcommit/hook/pre_commit/scss_lint.rb +43 -0
  139. data/lib/overcommit/hook/pre_commit/semi_standard.rb +23 -0
  140. data/lib/overcommit/hook/pre_commit/shell_check.rb +23 -0
  141. data/lib/overcommit/hook/pre_commit/slim_lint.rb +23 -0
  142. data/lib/overcommit/hook/pre_commit/sqlint.rb +26 -0
  143. data/lib/overcommit/hook/pre_commit/standard.rb +23 -0
  144. data/lib/overcommit/hook/pre_commit/stylelint.rb +23 -0
  145. data/lib/overcommit/hook/pre_commit/swift_lint.rb +19 -0
  146. data/lib/overcommit/hook/pre_commit/terraform_format.rb +19 -0
  147. data/lib/overcommit/hook/pre_commit/trailing_whitespace.rb +15 -0
  148. data/lib/overcommit/hook/pre_commit/travis_lint.rb +15 -0
  149. data/lib/overcommit/hook/pre_commit/ts_lint.rb +28 -0
  150. data/lib/overcommit/hook/pre_commit/vint.rb +22 -0
  151. data/lib/overcommit/hook/pre_commit/w3c_css.rb +67 -0
  152. data/lib/overcommit/hook/pre_commit/w3c_html.rb +64 -0
  153. data/lib/overcommit/hook/pre_commit/xml_lint.rb +24 -0
  154. data/lib/overcommit/hook/pre_commit/xml_syntax.rb +21 -0
  155. data/lib/overcommit/hook/pre_commit/yaml_lint.rb +18 -0
  156. data/lib/overcommit/hook/pre_commit/yaml_syntax.rb +20 -0
  157. data/lib/overcommit/hook/pre_commit/yard_coverage.rb +90 -0
  158. data/lib/overcommit/hook/pre_commit/yarn_check.rb +37 -0
  159. data/lib/overcommit/hook/pre_push/base.rb +33 -0
  160. data/lib/overcommit/hook/pre_push/brakeman.rb +15 -0
  161. data/lib/overcommit/hook/pre_push/cargo_test.rb +12 -0
  162. data/lib/overcommit/hook/pre_push/go_test.rb +14 -0
  163. data/lib/overcommit/hook/pre_push/golangci_lint.rb +16 -0
  164. data/lib/overcommit/hook/pre_push/minitest.rb +20 -0
  165. data/lib/overcommit/hook/pre_push/php_unit.rb +16 -0
  166. data/lib/overcommit/hook/pre_push/pronto.rb +12 -0
  167. data/lib/overcommit/hook/pre_push/protected_branches.rb +74 -0
  168. data/lib/overcommit/hook/pre_push/pytest.rb +16 -0
  169. data/lib/overcommit/hook/pre_push/python_nose.rb +16 -0
  170. data/lib/overcommit/hook/pre_push/r_spec.rb +16 -0
  171. data/lib/overcommit/hook/pre_push/rake_target.rb +12 -0
  172. data/lib/overcommit/hook/pre_push/test_unit.rb +16 -0
  173. data/lib/overcommit/hook/pre_rebase/base.rb +14 -0
  174. data/lib/overcommit/hook/pre_rebase/merged_commits.rb +31 -0
  175. data/lib/overcommit/hook/prepare_commit_msg/base.rb +25 -0
  176. data/lib/overcommit/hook/prepare_commit_msg/replace_branch.rb +57 -0
  177. data/lib/overcommit/hook/shared/bower_install.rb +15 -0
  178. data/lib/overcommit/hook/shared/bundle_install.rb +15 -0
  179. data/lib/overcommit/hook/shared/composer_install.rb +15 -0
  180. data/lib/overcommit/hook/shared/index_tags.rb +14 -0
  181. data/lib/overcommit/hook/shared/npm_install.rb +15 -0
  182. data/lib/overcommit/hook/shared/pronto.rb +21 -0
  183. data/lib/overcommit/hook/shared/rake_target.rb +26 -0
  184. data/lib/overcommit/hook/shared/submodule_status.rb +32 -0
  185. data/lib/overcommit/hook/shared/yarn_install.rb +15 -0
  186. data/lib/overcommit/hook_context.rb +19 -0
  187. data/lib/overcommit/hook_context/base.rb +139 -0
  188. data/lib/overcommit/hook_context/commit_msg.rb +48 -0
  189. data/lib/overcommit/hook_context/post_checkout.rb +36 -0
  190. data/lib/overcommit/hook_context/post_commit.rb +33 -0
  191. data/lib/overcommit/hook_context/post_merge.rb +37 -0
  192. data/lib/overcommit/hook_context/post_rewrite.rb +49 -0
  193. data/lib/overcommit/hook_context/pre_commit.rb +212 -0
  194. data/lib/overcommit/hook_context/pre_push.rb +89 -0
  195. data/lib/overcommit/hook_context/pre_rebase.rb +38 -0
  196. data/lib/overcommit/hook_context/prepare_commit_msg.rb +34 -0
  197. data/lib/overcommit/hook_context/run_all.rb +48 -0
  198. data/lib/overcommit/hook_loader/base.rb +48 -0
  199. data/lib/overcommit/hook_loader/built_in_hook_loader.rb +14 -0
  200. data/lib/overcommit/hook_loader/plugin_hook_loader.rb +102 -0
  201. data/lib/overcommit/hook_runner.rb +219 -0
  202. data/lib/overcommit/hook_signer.rb +123 -0
  203. data/lib/overcommit/installer.rb +193 -0
  204. data/lib/overcommit/interrupt_handler.rb +91 -0
  205. data/lib/overcommit/logger.rb +92 -0
  206. data/lib/overcommit/message_processor.rb +148 -0
  207. data/lib/overcommit/os.rb +38 -0
  208. data/lib/overcommit/printer.rb +145 -0
  209. data/lib/overcommit/subprocess.rb +98 -0
  210. data/lib/overcommit/utils.rb +309 -0
  211. data/lib/overcommit/utils/file_utils.rb +71 -0
  212. data/lib/overcommit/utils/messages_utils.rb +77 -0
  213. data/lib/overcommit/version.rb +6 -0
  214. data/libexec/gerrit-change-id +174 -0
  215. data/libexec/index-tags +17 -0
  216. data/template-dir/hooks/commit-msg +116 -0
  217. data/template-dir/hooks/overcommit-hook +116 -0
  218. data/template-dir/hooks/post-checkout +116 -0
  219. data/template-dir/hooks/post-commit +116 -0
  220. data/template-dir/hooks/post-merge +116 -0
  221. data/template-dir/hooks/post-rewrite +116 -0
  222. data/template-dir/hooks/pre-commit +116 -0
  223. data/template-dir/hooks/pre-push +116 -0
  224. data/template-dir/hooks/pre-rebase +116 -0
  225. data/template-dir/hooks/prepare-commit-msg +116 -0
  226. metadata +303 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 5da4259a1cb1af1c2e56198efddd0a7a26ed94d685fa4ac74bc65b30529e4c2d
4
+ data.tar.gz: 4e2d5af70a255d390c6f5b9eac408aefbd7737270b9c6723050acf3ca71e7890
5
+ SHA512:
6
+ metadata.gz: e8b77bd2169b55446f30e726f9be3cf35f24b475a70b1f38c97e7d9567a980f90e46577b72b4b665db1c42c25c66b50f41d9e3becac012136cce75215264e887
7
+ data.tar.gz: 37b94701d16881a6e9def35719c97f1b23181310d62c5d286d9610a508f746ef94f8456ef9e32970e1cdb5a369e212a928b6ea188f584891720ec5c35f42a019
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ # Check if Overcommit should invoke a Bundler context for loading gems
5
+ require 'yaml'
6
+ if gemfile = YAML.load_file('.overcommit.yml')['gemfile'] rescue nil
7
+ ENV['BUNDLE_GEMFILE'] = gemfile
8
+ require 'bundler'
9
+
10
+ begin
11
+ # We need to temporarily silence STDERR to remove annoying Gem specification
12
+ # warnings that ultimately don't matter, e.g.
13
+ # https://github.com/rubygems/rubygems/issues/1070
14
+ old_stderr = $stderr
15
+ begin
16
+ $stderr = File.new(File::NULL, 'w')
17
+ Bundler.setup
18
+ ensure
19
+ $stderr = old_stderr
20
+ end
21
+ rescue Bundler::BundlerError => ex
22
+ puts "Problem loading '#{gemfile}': #{ex.message}"
23
+ puts "Try running:\nbundle install --gemfile=#{gemfile}" if ex.is_a?(Bundler::GemNotFound)
24
+ exit 78 # EX_CONFIG
25
+ rescue Gem::LoadError => ex
26
+ # Handle case where user is executing overcommit without `bundle exec` and
27
+ # whose local Gemfile has a gem requirement that does not match a gem
28
+ # requirement of the installed version of Overcommit.
29
+ raise unless ex.message =~ /already activated/i
30
+ exec('bundle', 'exec', $0, *ARGV)
31
+ end
32
+ end
33
+
34
+ begin
35
+ require 'overcommit/cli'
36
+ rescue LoadError
37
+ if gemfile
38
+ puts 'You have specified the `gemfile` option in your Overcommit ' \
39
+ 'configuration but have not added the `overcommit` gem to ' \
40
+ "#{gemfile}."
41
+ else
42
+ raise
43
+ end
44
+
45
+ exit 64 # EX_USAGE
46
+ end
47
+
48
+ logger = Overcommit::Logger.new(STDOUT)
49
+
50
+ Overcommit::CLI.new(ARGV, STDIN, logger).run
@@ -0,0 +1,1356 @@
1
+ # Default configuration that all Overcommit configurations inherit from.
2
+ #
3
+ # This is an opinionated list of which hooks are valuable to run and what their
4
+ # out-of-the-box settings should be.
5
+ #-------------------------------------------------------------------------------
6
+
7
+ # Loads Bundler context from a Gemfile. If false, does nothing (default).
8
+ #
9
+ # Specifying a Gemfile for Bundler to load allows you to control which gems are
10
+ # available in the load path (i.e. loadable via `require`) within your hook
11
+ # runs. Note that having a Gemfile requires you to include `overcommit` itself
12
+ # in your Gemfile (otherwise Overcommit can't load itself!).
13
+ #
14
+ # This is useful if you want to:
15
+ #
16
+ # - Enforce a specific version of Overcommit to use for all hook runs
17
+ # (or to use a version from the master branch that has not been released yet)
18
+ # - Enforce a specific version or unreleased branch is used for a gem you want
19
+ # to use in your git hooks
20
+ #
21
+ # WARNING: This makes your hook runs slower, but you can work around this!
22
+ #
23
+ # Loading a Bundler context necessarily adds a startup delay to your hook runs
24
+ # as Bundler parses the Gemfile and checks that the dependencies are satisfied.
25
+ # Thus for projects with many gems this can introduce a noticeable delay.
26
+ #
27
+ # The recommended workaround is to create a separate Gemfile in the root of your
28
+ # repository (call it `.overcommit_gems.rb`), and include only the gems that
29
+ # your Overcommit hooks need in order to run. This significantly reduces the
30
+ # startup delay in your hook runs. Make sure to commit both
31
+ # `.overcommit_gems.rb` and the resulting `.overcommit_gems.rb.lock` file to
32
+ # your repository, and then set the `gemfile` option below to the name you gave
33
+ # the file.
34
+ # (Generate lock file by running `bundle install --gemfile=.overcommit_gems.rb`)
35
+ gemfile: false
36
+
37
+ # Where to store hook plugins specific to a repository. These are loaded in
38
+ # addition to the default hooks Overcommit comes with. The location is relative
39
+ # to the root of the repository.
40
+ plugin_directory: '.git-hooks'
41
+
42
+ # Whether to hide hook output by default. This results in completely silent hook
43
+ # runs except in the case of warning or failure.
44
+ quiet: false
45
+
46
+ # Number of hooks that can be run concurrently. Typically this won't need to be
47
+ # adjusted, but if you know that some of your hooks themselves use multiple
48
+ # processors you can lower this value accordingly. You can define
49
+ # single-operator mathematical expressions, e.g. '%{processors} * 2', or
50
+ # '%{processors} / 2'.
51
+ concurrency: '%{processors}'
52
+
53
+ # Whether to check if a hook plugin has changed since Overcommit last ran it.
54
+ # This is a defense mechanism when working with repositories which can contain
55
+ # untrusted code (e.g. when you fetch a pull request from a third party).
56
+ # See https://github.com/brigade/overcommit#security for more information.
57
+ verify_signatures: true
58
+
59
+ # Hooks that are run against every commit message after a user has written it.
60
+ # These hooks are useful for enforcing policies on commit messages written for a
61
+ # project.
62
+ CommitMsg:
63
+ ALL:
64
+ requires_files: false
65
+ quiet: false
66
+
67
+ CapitalizedSubject:
68
+ enabled: true
69
+ description: 'Check subject capitalization'
70
+
71
+ EmptyMessage:
72
+ enabled: true
73
+ description: 'Check for empty commit message'
74
+ quiet: true
75
+
76
+ GerritChangeId:
77
+ enabled: false
78
+ description: 'Ensure Gerrit Change-Id is present'
79
+ required: true
80
+
81
+ HardTabs:
82
+ enabled: false
83
+ description: 'Check for hard tabs'
84
+
85
+ MessageFormat:
86
+ enabled: false
87
+ description: 'Check commit message matches expected pattern'
88
+ pattern: '(.+)[|](.+)[|](.+)'
89
+ expected_pattern_message: '<Issue Id> | <Commit Message Description> | <Developer(s)>'
90
+ sample_message: 'DEFECT-1234 | Refactored Onboarding flow | John Doe'
91
+
92
+ RussianNovel:
93
+ enabled: false
94
+ description: 'Check length of commit message'
95
+ quiet: true
96
+
97
+ SingleLineSubject:
98
+ enabled: true
99
+ description: 'Check subject line'
100
+
101
+ SpellCheck:
102
+ enabled: false
103
+ description: 'Check for misspelled words'
104
+ required_executable: 'hunspell'
105
+ flags: ['-a']
106
+
107
+ TextWidth:
108
+ enabled: true
109
+ description: 'Check text width'
110
+ max_subject_width: 60
111
+ min_subject_width: 0
112
+ max_body_width: 72
113
+
114
+ TrailingPeriod:
115
+ enabled: true
116
+ description: 'Check for trailing periods in subject'
117
+
118
+ # Hooks that are run after `git commit` is executed, before the commit message
119
+ # editor is displayed. These hooks are ideal for syntax checkers, linters, and
120
+ # other checks that you want to run before you allow a commit object to be
121
+ # created.
122
+ PreCommit:
123
+ ALL:
124
+ problem_on_unmodified_line: report
125
+ requires_files: true
126
+ required: false
127
+ quiet: false
128
+
129
+ AuthorEmail:
130
+ enabled: true
131
+ description: 'Check author email'
132
+ requires_files: false
133
+ required: true
134
+ quiet: true
135
+ pattern: '^[^@]+@.*$'
136
+
137
+ AuthorName:
138
+ enabled: true
139
+ description: 'Check for author name'
140
+ requires_files: false
141
+ required: true
142
+ quiet: true
143
+
144
+ BerksfileCheck:
145
+ enabled: false
146
+ description: 'Check Berksfile lock'
147
+ required_executable: 'berks'
148
+ flags: ['list', '--quiet']
149
+ install_command: 'gem install berks'
150
+ include:
151
+ - 'Berksfile'
152
+ - 'Berksfile.lock'
153
+
154
+ BrokenSymlinks:
155
+ enabled: true
156
+ description: 'Check for broken symlinks'
157
+ quiet: true
158
+
159
+ BundleAudit:
160
+ enabled: false
161
+ description: 'Check for vulnerable versions of gems'
162
+ required_executable: 'bundle-audit'
163
+ install_command: 'gem install bundler-audit'
164
+
165
+ BundleCheck:
166
+ enabled: false
167
+ description: 'Check Gemfile dependencies'
168
+ required_executable: 'bundle'
169
+ flags: ['check']
170
+ install_command: 'gem install bundler'
171
+ include:
172
+ - 'Gemfile'
173
+ - 'Gemfile.lock'
174
+ - '*.gemspec'
175
+
176
+ BundleOutdated:
177
+ enabled: false
178
+ description: 'List installed gems with newer versions available'
179
+ required_executable: 'bundle'
180
+ flags: ['outdated', '--strict', '--parseable']
181
+ install_command: 'gem install bundler'
182
+
183
+ CaseConflicts:
184
+ enabled: true
185
+ description: 'Check for case-insensitivity conflicts'
186
+ quiet: true
187
+
188
+ ChamberCompare:
189
+ enabled: false
190
+ description: 'Check that settings are equivalent between namespaces'
191
+ required_executable: 'chamber'
192
+ flags: ['compare']
193
+ install_command: 'gem install chamber'
194
+ namespaces:
195
+ - ['development']
196
+ - ['test']
197
+ - ['production']
198
+ exclusions: []
199
+ include: &chamber_settings_files
200
+ - 'config/settings*.yml'
201
+ - 'config/settings*.yml.erb'
202
+ - 'config/settings/**/*.yml'
203
+ - 'config/settings/**/*.yml.erb'
204
+ - 'settings*.yml'
205
+ - 'settings*.yml.erb'
206
+ - 'settings/**/*.yml'
207
+ - 'settings/**/*.yml.erb'
208
+
209
+ ChamberSecurity:
210
+ enabled: false
211
+ description: 'Check that settings have been secured with Chamber'
212
+ required_executable: 'chamber'
213
+ flags: ['secure', '--files']
214
+ install_command: 'gem install chamber'
215
+ include: *chamber_settings_files
216
+
217
+ ChamberVerification:
218
+ enabled: false
219
+ description: 'Verify that all settings changes have been approved'
220
+ required_executable: 'chamber'
221
+ flags: ['sign', '--verify']
222
+ install_command: 'gem install chamber'
223
+ include: *chamber_settings_files
224
+
225
+ CodeSpellCheck:
226
+ enabled: false
227
+ description: 'Check if all your code is spell-checked correctly'
228
+ command: 'alfonsox'
229
+ install_command: 'gem install alfonsox'
230
+ include:
231
+ - '**/*.rb'
232
+ - '**/*.erb'
233
+
234
+ CoffeeLint:
235
+ enabled: false
236
+ description: 'Analyze with coffeelint'
237
+ required_executable: 'coffeelint'
238
+ flags: ['--reporter=csv']
239
+ install_command: 'npm install -g coffeelint'
240
+ include: '**/*.coffee'
241
+
242
+ CookStyle:
243
+ enabled: false
244
+ description: 'Analyze with CookStyle'
245
+ required_executable: 'cookstyle'
246
+ flags: ['--format=emacs', '--force-exclusion', '--display-cop-names']
247
+ install_command: 'gem install cookstyle'
248
+ include:
249
+ - '**/*.rb'
250
+ - '**/*.erb'
251
+
252
+ Credo:
253
+ enabled: false
254
+ description: 'Analyze with credo'
255
+ required_executable: 'mix'
256
+ flags: ['credo', '--all', '--strict', '--format', 'flycheck']
257
+ include:
258
+ - '**/*.ex'
259
+ - '**/*.exs'
260
+
261
+ CssLint:
262
+ enabled: false
263
+ description: 'Analyze with csslint'
264
+ required_executable: 'csslint'
265
+ flags: ['--quiet', '--format=compact']
266
+ install_command: 'npm install -g csslint'
267
+ include: '**/*.css'
268
+
269
+ Dogma:
270
+ enabled: false
271
+ description: 'Analyze with dogma'
272
+ required_executable: 'mix'
273
+ flags: ['dogma']
274
+ include:
275
+ - '**/*.ex'
276
+ - '**/*.exs'
277
+
278
+ EsLint:
279
+ enabled: false
280
+ description: 'Analyze with ESLint'
281
+ required_executable: 'eslint'
282
+ flags: ['--format=compact']
283
+ install_command: 'npm install -g eslint'
284
+ include: '**/*.js'
285
+
286
+ ExecutePermissions:
287
+ enabled: false
288
+ description: 'Check for file execute permissions'
289
+ quiet: true
290
+
291
+ Fasterer:
292
+ enabled: false
293
+ description: 'Analyzing for potential speed improvements'
294
+ required_executable: 'fasterer'
295
+ install_command: 'gem install fasterer'
296
+ include: '**/*.rb'
297
+
298
+ FixMe:
299
+ enabled: false
300
+ description: 'Check for "token" strings'
301
+ required_executable: 'grep'
302
+ flags: ['-IEHnw']
303
+ keywords: ['BROKEN', 'BUG', 'ERROR', 'FIXME', 'HACK', 'NOTE', 'OPTIMIZE', 'REVIEW', 'TODO', 'WTF', 'XXX']
304
+
305
+ FileSize:
306
+ enabled: false
307
+ description: 'Check for oversized files'
308
+ size_limit_bytes: 1_000_000
309
+
310
+ Flay:
311
+ enabled: false
312
+ description: 'Analyze ruby code for structural similarities with Flay'
313
+ required_executable: 'flay'
314
+ install_command: 'gem install flay'
315
+ mass_threshold: 16
316
+ fuzzy: 1
317
+ liberal: false
318
+ include: '**/*.rb'
319
+
320
+ Foodcritic:
321
+ enabled: false
322
+ description: 'Analyze with Foodcritic'
323
+ required_executable: 'foodcritic'
324
+ flags: ['--epic-fail=any']
325
+ install_command: 'gem install foodcritic'
326
+
327
+ ForbiddenBranches:
328
+ enabled: false
329
+ description: 'Check for commit to forbidden branch'
330
+ quiet: true
331
+ branch_patterns: ['master']
332
+
333
+ GinkgoFocus:
334
+ enabled: false
335
+ description: 'Check for "focused" tests'
336
+ required_executable: 'grep'
337
+ flags: ['-IEHnw']
338
+ keywords: ['FContext','FDescribe','FIt','FMeasure','FSpecify','FWhen']
339
+
340
+ GoFmt:
341
+ enabled: true
342
+ description: 'Fix with go fmt'
343
+ required_executable: 'go'
344
+ command: ['go', 'fmt']
345
+ parallelize: false
346
+ include: '**/*.go'
347
+
348
+ GolangciLint:
349
+ enabled: false
350
+ description: 'Analyze with golangci-lint'
351
+ required_executable: 'golangci-lint'
352
+ install_command: 'go get github.com/golangci/golangci-lint/cmd/golangci-lint'
353
+ flags: ['--out-format=line-number', '--print-issued-lines=false']
354
+ command: ['golangci-lint', 'run']
355
+ include: '**/*.go'
356
+
357
+ GoLint:
358
+ enabled: false
359
+ description: 'Analyze with golint'
360
+ required_executable: 'golint'
361
+ install_command: 'go get github.com/golang/lint/golint'
362
+ include: '**/*.go'
363
+
364
+ GoVet:
365
+ enabled: false
366
+ description: 'Analyze with go vet'
367
+ required_executable: 'go'
368
+ flags: ['tool', 'vet']
369
+ install_command: 'go get golang.org/x/tools/cmd/vet'
370
+ include: '**/*.go'
371
+
372
+ Hadolint:
373
+ enabled: false
374
+ description: 'Analyze with hadolint'
375
+ required_executable: 'hadolint'
376
+ include:
377
+ - '**/Dockerfile*'
378
+
379
+ HamlLint:
380
+ enabled: false
381
+ description: 'Analyze with haml-lint'
382
+ required_executable: 'haml-lint'
383
+ install_command: 'gem install haml-lint'
384
+ flags: ['--no-summary']
385
+ include: '**/*.haml'
386
+
387
+ HardTabs:
388
+ enabled: false
389
+ description: 'Check for hard tabs'
390
+ quiet: true
391
+ required_executable: 'grep'
392
+ flags: ['-IHn', "\t"]
393
+ exclude:
394
+ - '**/Makefile'
395
+ - '**/*.go'
396
+
397
+ Hlint:
398
+ enabled: false
399
+ description: 'Analyze with hlint'
400
+ required_executable: 'hlint'
401
+ install_command: 'cabal install hlint'
402
+ include: '**/*.hs'
403
+
404
+ HtmlHint:
405
+ enabled: false
406
+ description: 'Analyze with HTMLHint'
407
+ required_executable: 'htmlhint'
408
+ install_command: 'npm install -g htmlhint'
409
+ include: '**/*.html'
410
+
411
+ HtmlTidy:
412
+ enabled: false
413
+ description: 'Analyze HTML with tidy'
414
+ required_executable: 'tidy'
415
+ flags: ['-errors', '-quiet', '-utf8']
416
+ include: '**/*.html'
417
+
418
+ ImageOptim:
419
+ enabled: false
420
+ description: 'Check for optimizable images'
421
+ required_executable: 'image_optim'
422
+ install_command: 'gem install image_optim'
423
+ include:
424
+ - '**/*.gif'
425
+ - '**/*.jpeg'
426
+ - '**/*.jpg'
427
+ - '**/*.png'
428
+ - '**/*.svg'
429
+
430
+ JavaCheckstyle:
431
+ enabled: false
432
+ description: 'Analyze with checkstyle'
433
+ required_executable: 'checkstyle'
434
+ flags: ['-c', '/sun_checks.xml']
435
+ include: '**/*.java'
436
+
437
+ Jscs:
438
+ enabled: false
439
+ description: 'Analyze with JSCS'
440
+ required_executable: 'jscs'
441
+ flags: ['--reporter=inline']
442
+ install_command: 'npm install -g jscs'
443
+ include: '**/*.js'
444
+
445
+ JsHint:
446
+ enabled: false
447
+ description: 'Analyze with JSHint'
448
+ required_executable: 'jshint'
449
+ flags: ['--verbose']
450
+ install_command: 'npm install -g jshint'
451
+ include: '**/*.js'
452
+
453
+ JsLint:
454
+ enabled: false
455
+ description: 'Analyze with JSLint'
456
+ required_executable: 'jslint'
457
+ flags: ['--terse']
458
+ install_command: 'npm install -g jslint'
459
+ include: '**/*.js'
460
+
461
+ Jsl:
462
+ enabled: false
463
+ description: 'Analyze with JSL'
464
+ required_executable: 'jsl'
465
+ flags: ['-nologo', '-nofilelisting', '-nocontext', '-nosummary']
466
+ include: '**/*.js'
467
+
468
+ JsonSyntax:
469
+ enabled: false
470
+ description: 'Validate JSON syntax'
471
+ required_library: 'json'
472
+ install_command: 'gem install json'
473
+ include: '**/*.json'
474
+
475
+ KtLint:
476
+ enabled: false
477
+ description: 'Analyze with KtLint'
478
+ required_executable: 'ktlint'
479
+ flags: []
480
+ include: '**/*.kt'
481
+
482
+ LicenseFinder:
483
+ enabled: false
484
+ description: 'Analyze with LicenseFinder'
485
+ required_executable: 'license_finder'
486
+ install_command: 'gem install license_finder'
487
+ include:
488
+ - 'Gemfile'
489
+ - 'requirements.txt'
490
+ - 'package.json'
491
+ - 'pom.xml'
492
+ - 'build.gradle'
493
+ - 'bower.json'
494
+ - 'Podfile'
495
+ - 'rebar.config'
496
+
497
+ LicenseHeader:
498
+ enabled: false
499
+ license_file: 'LICENSE.txt'
500
+ description: 'Check source files for license headers'
501
+
502
+ LocalPathsInGemfile:
503
+ enabled: false
504
+ description: 'Check for local paths in Gemfile'
505
+ required_executable: 'grep'
506
+ flags: ['-IHnE', "^[^#]*((\\bpath:)|(:path[ \t]*=>))"]
507
+ include: '**/Gemfile'
508
+
509
+ Mdl:
510
+ enabled: false
511
+ description: 'Analyze markdown files with mdl'
512
+ required_executable: 'mdl'
513
+ flags: ['--json']
514
+ install_command: 'gem install mdl'
515
+ include: '**/*.md'
516
+
517
+ MergeConflicts:
518
+ enabled: true
519
+ description: 'Check for merge conflicts'
520
+ quiet: true
521
+ required_executable: 'grep'
522
+ flags: ['-IHn', "^<<<<<<<[ \t]"]
523
+
524
+ PuppetMetadataJsonLint:
525
+ enabled: false
526
+ description: 'Checking module metadata'
527
+ flags: ['--strict-license', '--strict-dependencies', '--fail-on-warning']
528
+ include: 'metadata.json'
529
+ required_executable: 'metadata-json-lint'
530
+ install_command: 'gem install metadata-json-lint'
531
+
532
+ NginxTest:
533
+ enabled: false
534
+ description: 'Test nginx configs'
535
+ required_executable: 'nginx'
536
+ flags: ['-t']
537
+ include: '**/nginx.conf'
538
+
539
+ Pep257: # Deprecated – use Pydocstyle instead.
540
+ enabled: false
541
+ description: 'Analyze docstrings with pep257'
542
+ required_executable: 'pep257'
543
+ install_command: 'pip install pep257'
544
+ include: '**/*.py'
545
+
546
+ Pep8: # Deprecated – use Pycodestyle instead.
547
+ enabled: false
548
+ description: 'Analyze with pep8'
549
+ required_executable: 'pep8'
550
+ install_command: 'pip install pep8'
551
+ include: '**/*.py'
552
+
553
+ PhpLint:
554
+ enabled: false
555
+ description: 'Testing with PHP lint'
556
+ required_executable: 'php'
557
+ command: 'php'
558
+ flags: ['-l']
559
+ include: '**/*.php'
560
+
561
+ PhpCs:
562
+ enabled: false
563
+ description: 'Analyze with PHP_CodeSniffer'
564
+ command: 'vendor/bin/phpcs'
565
+ flags: ['--standard=PSR2', '--report=csv']
566
+ include: '**/*.php'
567
+
568
+ PhpCsFixer:
569
+ enabled: false
570
+ description: 'Fix non compliant PHP files'
571
+ required_executable: 'php-cs-fixer'
572
+ command: 'vendor/bin/php-cs-fixer'
573
+ flags: ['fix', '-v', '--path-mode=intersection']
574
+ install_command: 'composer global require friendsofphp/php-cs-fixer'
575
+ include: '**/*.php'
576
+
577
+ PhpStan:
578
+ description: 'Analyze with phpstan'
579
+ enabled: false
580
+ command: 'phpstan'
581
+ flags: ['analyze', '--errorFormat=raw']
582
+ include:
583
+ - '**/*.php'
584
+
585
+ Pronto:
586
+ enabled: false
587
+ description: 'Analyzing with pronto'
588
+ required_executable: 'pronto'
589
+ install_command: 'gem install pronto'
590
+ flags: ['run', '--staged', '--exit-code']
591
+
592
+ PuppetLint:
593
+ enabled: false
594
+ description: 'Analyze with puppet-lint'
595
+ required_executable: 'puppet-lint'
596
+ install_command: 'gem install puppet-lint'
597
+ flags:
598
+ - '--log-format="%{fullpath}:%{line}:%{column}:%{KIND}: %{message} (%{check})"'
599
+ - '--fail-on-warnings'
600
+ - '--error-level=all'
601
+ include: '**/*.pp'
602
+
603
+ Pycodestyle:
604
+ enabled: false
605
+ description: 'Analyze with pycodestyle'
606
+ required_executable: 'pycodestyle'
607
+ install_command: 'pip install pycodestyle'
608
+ include: '**/*.py'
609
+
610
+ Pydocstyle:
611
+ enabled: false
612
+ description: 'Analyze docstrings with pydocstyle'
613
+ required_executable: 'pydocstyle'
614
+ install_command: 'pip install pydocstyle'
615
+ include: '**/*.py'
616
+
617
+ Pyflakes:
618
+ enabled: false
619
+ description: 'Analyze with pyflakes'
620
+ required_executable: 'pyflakes'
621
+ install_command: 'pip install pyflakes'
622
+ include: '**/*.py'
623
+
624
+ Pylint:
625
+ enabled: false
626
+ description: 'Analyze with Pylint'
627
+ required_executable: 'pylint'
628
+ install_command: 'pip install pylint'
629
+ flags:
630
+ - '--msg-template="{path}:{line}:{C}: {msg} ({symbol})"'
631
+ - '--reports=n'
632
+ - '--persistent=n'
633
+ include: '**/*.py'
634
+
635
+ PythonFlake8:
636
+ enabled: false
637
+ description: 'Analyze with flake8'
638
+ required_executable: 'flake8'
639
+ install_command: 'pip install flake8'
640
+ include: '**/*.py'
641
+
642
+ RakeTarget:
643
+ enabled: false
644
+ description: 'Run rake targets'
645
+ # targets:
646
+ # - 'lint'
647
+ # - 'validate'
648
+ # - '...'
649
+ required_executable: 'rake'
650
+ install_command: 'gem install rake'
651
+
652
+ RailsBestPractices:
653
+ enabled: false
654
+ description: 'Analyze with RailsBestPractices'
655
+ required_executable: 'rails_best_practices'
656
+ flags: ['--without-color']
657
+ install_command: 'gem install rails_best_practices'
658
+
659
+ RailsSchemaUpToDate:
660
+ enabled: false
661
+ description: 'Check if database schema is up to date'
662
+ include:
663
+ - 'db/migrate/*.rb'
664
+ - 'db/schema.rb'
665
+ - 'db/structure.sql'
666
+
667
+ Reek:
668
+ enabled: false
669
+ description: 'Analyze with Reek'
670
+ required_executable: 'reek'
671
+ flags: ['--single-line', '--no-color', '--force-exclusion']
672
+ install_command: 'gem install reek'
673
+ include:
674
+ - '**/*.gemspec'
675
+ - '**/*.rake'
676
+ - '**/*.rb'
677
+ - '**/Gemfile'
678
+ - '**/Rakefile'
679
+
680
+ RstLint:
681
+ enabled: false
682
+ description: 'Analyze reStructuredText files with rst-lint'
683
+ required_executable: 'rst-lint'
684
+ install_command: 'pip install restructuredtext_lint'
685
+ include: '**/*.rst'
686
+
687
+ RuboCop:
688
+ enabled: false
689
+ description: 'Analyze with RuboCop'
690
+ required_executable: 'rubocop'
691
+ flags: ['--format=emacs', '--force-exclusion', '--display-cop-names']
692
+ install_command: 'gem install rubocop'
693
+ include:
694
+ - '**/*.gemspec'
695
+ - '**/*.rake'
696
+ - '**/*.rb'
697
+ - '**/*.ru'
698
+ - '**/Gemfile'
699
+ - '**/Rakefile'
700
+
701
+ RubyLint:
702
+ enabled: false
703
+ description: 'Analyze with ruby-lint'
704
+ required_executable: 'ruby-lint'
705
+ flags: ['--presenter=syntastic', '--levels=error,warning']
706
+ install_command: 'gem install ruby-lint'
707
+ include:
708
+ - '**/*.gemspec'
709
+ - '**/*.rb'
710
+
711
+ RubySyntax:
712
+ enabled: false
713
+ description: 'Check ruby syntax'
714
+ required_executable: 'ruby'
715
+ command: [
716
+ 'ruby',
717
+ '-e',
718
+ 'ARGV.each { |applicable_file| ruby_c_output = `ruby -c #{applicable_file}`; puts ruby_c_output unless $?.success? }'
719
+ ]
720
+ include:
721
+ - '**/*.gemspec'
722
+ - '**/*.rb'
723
+
724
+ Scalariform:
725
+ enabled: false
726
+ description: 'Check formatting with Scalariform'
727
+ required_executable: 'scalariform'
728
+ flags: ['--test']
729
+ include: '**/*.scala'
730
+
731
+ Scalastyle:
732
+ enabled: false
733
+ description: 'Analyze with Scalastyle'
734
+ required_executable: 'scalastyle'
735
+ include: '**/*.scala'
736
+
737
+ ScssLint:
738
+ enabled: false
739
+ description: 'Analyze with scss-lint'
740
+ required_library: 'json'
741
+ required_executable: 'scss-lint'
742
+ flags: ['--format', 'JSON']
743
+ install_command: 'gem install scss_lint'
744
+ include: '**/*.scss'
745
+
746
+ SemiStandard:
747
+ enabled: false
748
+ description: 'Analyze with semistandard'
749
+ required_executable: 'semistandard'
750
+ flags: ['--verbose']
751
+ install_command: 'npm install -g semistandard'
752
+ include: '**/*.js'
753
+
754
+ ShellCheck:
755
+ enabled: false
756
+ description: 'Analyze with ShellCheck'
757
+ required_executable: 'shellcheck'
758
+ flags: ['--format=gcc']
759
+ include: '**/*.sh'
760
+
761
+ SlimLint:
762
+ enabled: false
763
+ description: 'Analyze with slim-lint'
764
+ required_executable: 'slim-lint'
765
+ install_command: 'gem install slim_lint'
766
+ include: '**/*.slim'
767
+
768
+ Sqlint:
769
+ enabled: false
770
+ description: 'Analyze with sqlint'
771
+ required_executable: 'sqlint'
772
+ install_command: 'gem install sqlint'
773
+ include: '**/*.sql'
774
+
775
+ Standard:
776
+ enabled: false
777
+ description: 'Analyze with standard'
778
+ required_executable: 'standard'
779
+ flags: ['--verbose']
780
+ install_command: 'npm install -g standard'
781
+ include: '**/*.js'
782
+
783
+ Stylelint:
784
+ enabled: false
785
+ description: 'Check styles with Stylelint'
786
+ required_executable: 'stylelint'
787
+ flags: ['-f', 'compact']
788
+ install_command: 'npm install -g stylelint'
789
+ include:
790
+ - '**/*.scss'
791
+ - '**/*.css'
792
+ - '**/*.less'
793
+
794
+ SwiftLint:
795
+ enabled: false
796
+ description: 'Analyze with SwiftLint'
797
+ required_executable: 'swiftlint'
798
+ flags: ['lint', '--strict']
799
+ install_command: 'brew install swiftlint'
800
+ include: '**/*.swift'
801
+
802
+ TerraformFormat:
803
+ enabled: false
804
+ description: 'Analyze with Terraform'
805
+ required_executable: 'terraform'
806
+ flags: ['fmt', '-check=true', '-diff=false']
807
+ include: '**/*.tf'
808
+
809
+ TsLint:
810
+ enabled: false
811
+ description: 'Analyze with TSLint'
812
+ required_executable: 'tslint'
813
+ install_command: 'npm install -g tslint typescript'
814
+ include: '**/*.ts'
815
+
816
+ TrailingWhitespace:
817
+ enabled: false
818
+ description: 'Check for trailing whitespace'
819
+ required_executable: 'grep'
820
+ flags: ['-IHn', "[ \t]$"]
821
+
822
+ TravisLint:
823
+ enabled: false
824
+ description: 'Check Travis CI configuration'
825
+ required_executable: 'travis'
826
+ flags: ['lint']
827
+ install_command: 'gem install travis'
828
+ include: '.travis.yml'
829
+
830
+ Vint:
831
+ enabled: false
832
+ description: 'Analyze with Vint'
833
+ required_executable: 'vint'
834
+ install_command: 'pip install vim-vint'
835
+ include:
836
+ - '**/*.vim'
837
+ - '**/*.vimrc'
838
+
839
+ W3cCss:
840
+ enabled: false
841
+ description: 'Analyze with W3C CSS validation service'
842
+ required_library: 'w3c_validators'
843
+ install_command: 'gem install w3c_validators'
844
+ validator_uri: 'http://jigsaw.w3.org/css-validator/validator'
845
+ language: 'en'
846
+ profile: 'css3'
847
+ warn_level: 2
848
+ include:
849
+ - '**/*.css'
850
+
851
+ W3cHtml:
852
+ enabled: false
853
+ description: 'Analyze with W3C HTML validation service'
854
+ required_library: 'w3c_validators'
855
+ install_command: 'gem install w3c_validators'
856
+ validator_uri: 'https://validator.w3.org/nu'
857
+ charset: 'utf-8'
858
+ doctype: 'HTML5'
859
+ include:
860
+ - '**/*.html'
861
+
862
+ LineEndings:
863
+ description: 'Check line endings'
864
+ enabled: false
865
+ eol: "\n" # or "\r\n" for Windows-style newlines
866
+
867
+ XmlLint:
868
+ enabled: false
869
+ description: 'Analyze with xmllint'
870
+ required_executable: 'xmllint'
871
+ flags: ['--noout']
872
+ include:
873
+ - '**/*.xml'
874
+ - '**/*.svg'
875
+
876
+ XmlSyntax:
877
+ enabled: false
878
+ description: 'Check XML syntax'
879
+ required_library: 'rexml/document'
880
+ include:
881
+ - '**/*.xml'
882
+ - '**/*.svg'
883
+
884
+ YamlLint:
885
+ enabled: false
886
+ description: 'Analyze with YAMLlint'
887
+ required_executable: 'yamllint'
888
+ flags: ['--format=parsable']
889
+ install_command: 'pip install yamllint'
890
+ include:
891
+ - '**/*.yaml'
892
+ - '**/*.yml'
893
+
894
+ YamlSyntax:
895
+ enabled: false
896
+ description: 'Check YAML syntax'
897
+ required_library: 'yaml'
898
+ include:
899
+ - '**/*.yaml'
900
+ - '**/*.yml'
901
+
902
+ YardCoverage:
903
+ enabled: false
904
+ description: 'Checking for yard coverage'
905
+ command: ['yard', 'stats', '--list-undoc', '--compact']
906
+ flags: ['--private', '--protected']
907
+ required_executable: 'yard'
908
+ install_command: 'gem install yard'
909
+ min_coverage_percentage: 100
910
+ include:
911
+ - '/**/*.rb'
912
+
913
+ YarnCheck:
914
+ enabled: false
915
+ description: 'Check yarn.lock dependencies'
916
+ required_executable: 'yarn'
917
+ flags: ['check', '--silent', '--no-progress', '--non-interactive']
918
+ install_command: 'npm install --global yarn'
919
+ include:
920
+ - 'package.json'
921
+ - 'yarn.lock'
922
+
923
+ # Hooks that run after HEAD changes or a file is explicitly checked out.
924
+ PostCheckout:
925
+ ALL:
926
+ required: false
927
+ quiet: false
928
+ skip_file_checkout: true
929
+
930
+ BowerInstall:
931
+ enabled: false
932
+ description: 'Install bower dependencies'
933
+ requires_files: true
934
+ required_executable: 'bower'
935
+ install_command: 'npm install -g bower'
936
+ flags: ['install']
937
+ include: 'bower.json'
938
+
939
+ BundleInstall:
940
+ enabled: false
941
+ description: 'Install Bundler dependencies'
942
+ requires_files: true
943
+ required_executable: 'bundle'
944
+ install_command: 'gem install bundler'
945
+ flags: ['install']
946
+ include:
947
+ - 'Gemfile'
948
+ - 'Gemfile.lock'
949
+ - '*.gemspec'
950
+
951
+ ComposerInstall:
952
+ enabled: false
953
+ description: 'Install composer dependencies'
954
+ requires_files: true
955
+ required_executable: 'composer'
956
+ install_command: 'curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer'
957
+ flags: ['install']
958
+ include: 'composer.json'
959
+
960
+ GitLfs:
961
+ enabled: false
962
+ description: 'Check status of lockable files tracked by Git LFS'
963
+ required_executable: 'git-lfs'
964
+ install_command: 'brew install git-lfs'
965
+
966
+ IndexTags:
967
+ enabled: false
968
+ description: 'Generate tags file from source'
969
+ quiet: true
970
+ required_executable: 'ctags'
971
+
972
+ NpmInstall:
973
+ enabled: false
974
+ description: 'Install NPM dependencies'
975
+ requires_files: true
976
+ required_executable: 'npm'
977
+ flags: ['install']
978
+ include:
979
+ - 'package.json'
980
+ - 'npm-shrinkwrap.json'
981
+
982
+ SubmoduleStatus:
983
+ enabled: false
984
+ description: 'Check submodule status'
985
+ quiet: true
986
+ recursive: false
987
+
988
+ YarnInstall:
989
+ enabled: false
990
+ description: 'Install Yarn dependencies'
991
+ requires_files: true
992
+ required_executable: 'yarn'
993
+ flags: ['install']
994
+ include:
995
+ - 'package.json'
996
+ - 'yarn.lock'
997
+
998
+ # Hooks that run after a commit is created.
999
+ PostCommit:
1000
+ ALL:
1001
+ requires_files: false
1002
+ required: false
1003
+ quiet: false
1004
+
1005
+ BowerInstall:
1006
+ enabled: false
1007
+ description: 'Install bower dependencies'
1008
+ requires_files: true
1009
+ required_executable: 'bower'
1010
+ install_command: 'npm install -g bower'
1011
+ flags: ['install']
1012
+ include: 'bower.json'
1013
+
1014
+ BundleInstall:
1015
+ enabled: false
1016
+ description: 'Install Bundler dependencies'
1017
+ requires_files: true
1018
+ required_executable: 'bundle'
1019
+ install_command: 'gem install bundler'
1020
+ flags: ['install']
1021
+ include:
1022
+ - 'Gemfile'
1023
+ - 'Gemfile.lock'
1024
+ - '*.gemspec'
1025
+
1026
+ Commitplease:
1027
+ enabled: false
1028
+ description: 'Analyze with Commitplease'
1029
+ required_executable: './node_modules/.bin/commitplease'
1030
+ install_command: 'npm install --save-dev commitplease'
1031
+ flags: ['-1']
1032
+
1033
+ ComposerInstall:
1034
+ enabled: false
1035
+ description: 'Install composer dependencies'
1036
+ requires_files: true
1037
+ required_executable: 'composer'
1038
+ install_command: 'curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer'
1039
+ flags: ['install']
1040
+ include: 'composer.json'
1041
+
1042
+ GitGuilt:
1043
+ enabled: false
1044
+ description: 'Calculate changes in blame since last commit'
1045
+ requires_files: true
1046
+ required_executable: 'git-guilt'
1047
+ flags: ['HEAD~', 'HEAD']
1048
+ install_command: 'npm install -g git-guilt'
1049
+
1050
+ GitLfs:
1051
+ enabled: false
1052
+ description: 'Check status of lockable files tracked by Git LFS'
1053
+ required_executable: 'git-lfs'
1054
+ install_command: 'brew install git-lfs'
1055
+
1056
+ IndexTags:
1057
+ enabled: false
1058
+ description: 'Generate tags file from source'
1059
+ quiet: true
1060
+ required_executable: 'ctags'
1061
+
1062
+ NpmInstall:
1063
+ enabled: false
1064
+ description: 'Install NPM dependencies'
1065
+ requires_files: true
1066
+ required_executable: 'npm'
1067
+ flags: ['install']
1068
+ include:
1069
+ - 'package.json'
1070
+ - 'npm-shrinkwrap.json'
1071
+
1072
+ SubmoduleStatus:
1073
+ enabled: false
1074
+ description: 'Check submodule status'
1075
+ quiet: true
1076
+ recursive: false
1077
+
1078
+ YarnInstall:
1079
+ enabled: false
1080
+ description: 'Install Yarn dependencies'
1081
+ requires_files: true
1082
+ required_executable: 'yarn'
1083
+ flags: ['install']
1084
+ include:
1085
+ - 'package.json'
1086
+ - 'yarn.lock'
1087
+
1088
+ # Hooks that run after `git merge` executes successfully (no merge conflicts).
1089
+ PostMerge:
1090
+ ALL:
1091
+ requires_files: false
1092
+ quiet: false
1093
+
1094
+ BowerInstall:
1095
+ enabled: false
1096
+ description: 'Install bower dependencies'
1097
+ requires_files: true
1098
+ required_executable: 'bower'
1099
+ install_command: 'npm install -g bower'
1100
+ flags: ['install']
1101
+ include: 'bower.json'
1102
+
1103
+ BundleInstall:
1104
+ enabled: false
1105
+ description: 'Install Bundler dependencies'
1106
+ requires_files: true
1107
+ required_executable: 'bundle'
1108
+ install_command: 'gem install bundler'
1109
+ flags: ['install']
1110
+ include:
1111
+ - 'Gemfile'
1112
+ - 'Gemfile.lock'
1113
+ - '*.gemspec'
1114
+
1115
+ ComposerInstall:
1116
+ enabled: false
1117
+ description: 'Install composer dependencies'
1118
+ requires_files: true
1119
+ required_executable: 'composer'
1120
+ install_command: 'curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer'
1121
+ flags: ['install']
1122
+ include: 'composer.json'
1123
+
1124
+ GitLfs:
1125
+ enabled: false
1126
+ description: 'Check status of lockable files tracked by Git LFS'
1127
+ required_executable: 'git-lfs'
1128
+ install_command: 'brew install git-lfs'
1129
+
1130
+ IndexTags:
1131
+ enabled: false
1132
+ description: 'Generate tags file from source'
1133
+ quiet: true
1134
+ required_executable: 'ctags'
1135
+
1136
+ NpmInstall:
1137
+ enabled: false
1138
+ description: 'Install NPM dependencies'
1139
+ requires_files: true
1140
+ required_executable: 'npm'
1141
+ flags: ['install']
1142
+ include:
1143
+ - 'package.json'
1144
+ - 'npm-shrinkwrap.json'
1145
+
1146
+ SubmoduleStatus:
1147
+ enabled: false
1148
+ description: 'Check submodule status'
1149
+ quiet: true
1150
+ recursive: false
1151
+
1152
+ YarnInstall:
1153
+ enabled: false
1154
+ description: 'Install Yarn dependencies'
1155
+ requires_files: true
1156
+ required_executable: 'yarn'
1157
+ flags: ['install']
1158
+ include:
1159
+ - 'package.json'
1160
+ - 'yarn.lock'
1161
+
1162
+ # Hooks that run after a commit is modified by an amend or rebase.
1163
+ PostRewrite:
1164
+ ALL:
1165
+ requires_files: false
1166
+ quiet: false
1167
+
1168
+ BowerInstall:
1169
+ enabled: false
1170
+ description: 'Install bower dependencies'
1171
+ requires_files: true
1172
+ required_executable: 'bower'
1173
+ install_command: 'npm install -g bower'
1174
+ flags: ['install']
1175
+ include: 'bower.json'
1176
+
1177
+ BundleInstall:
1178
+ enabled: false
1179
+ description: 'Install Bundler dependencies'
1180
+ requires_files: true
1181
+ required_executable: 'bundle'
1182
+ install_command: 'gem install bundler'
1183
+ flags: ['install']
1184
+ include:
1185
+ - 'Gemfile'
1186
+ - 'Gemfile.lock'
1187
+ - '*.gemspec'
1188
+
1189
+ ComposerInstall:
1190
+ enabled: false
1191
+ description: 'Install composer dependencies'
1192
+ requires_files: true
1193
+ required_executable: 'composer'
1194
+ install_command: 'curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer'
1195
+ flags: ['install']
1196
+ include: 'composer.json'
1197
+
1198
+ IndexTags:
1199
+ enabled: false
1200
+ description: 'Generate tags file from source'
1201
+ quiet: true
1202
+ required_executable: 'ctags'
1203
+
1204
+ NpmInstall:
1205
+ enabled: false
1206
+ description: 'Install NPM dependencies'
1207
+ requires_files: true
1208
+ required_executable: 'npm'
1209
+ flags: ['install']
1210
+ include:
1211
+ - 'package.json'
1212
+ - 'npm-shrinkwrap.json'
1213
+
1214
+ SubmoduleStatus:
1215
+ enabled: false
1216
+ description: 'Check submodule status'
1217
+ quiet: true
1218
+ recursive: false
1219
+
1220
+ YarnInstall:
1221
+ enabled: false
1222
+ description: 'Install Yarn dependencies'
1223
+ requires_files: true
1224
+ required_executable: 'yarn'
1225
+ flags: ['install']
1226
+ include:
1227
+ - 'package.json'
1228
+ - 'yarn.lock'
1229
+
1230
+ # Hooks that run during the `prepare-commit-msg` hook.
1231
+ PrepareCommitMsg:
1232
+ ALL:
1233
+ requires_files: false
1234
+ required: false
1235
+ quiet: false
1236
+
1237
+ ReplaceBranch:
1238
+ enabled: false
1239
+ description: 'Prepends the commit message with text based on the branch name'
1240
+ branch_pattern: '\A.*\w+[-_](\d+).*\z'
1241
+ replacement_text: '[#\1]'
1242
+ skipped_commit_types: ['message', 'template', 'merge', 'squash']
1243
+ on_fail: warn
1244
+
1245
+ # Hooks that run during `git push`, after remote refs have been updated but
1246
+ # before any objects have been transferred.
1247
+ PrePush:
1248
+ ALL:
1249
+ requires_files: false
1250
+ required: false
1251
+ quiet: false
1252
+
1253
+ Brakeman:
1254
+ enabled: false
1255
+ description: 'Check for security vulnerabilities'
1256
+ required_executable: 'brakeman'
1257
+ flags: ['--exit-on-warn', '--quiet', '--summary']
1258
+ install_command: 'gem install brakeman'
1259
+
1260
+ CargoTest:
1261
+ enabled: false
1262
+ description: 'Run tests with cargo'
1263
+ required_executable: 'cargo'
1264
+ flags: ['test']
1265
+ include: 'src/**/*.rs'
1266
+
1267
+ GitLfs:
1268
+ enabled: false
1269
+ description: 'Upload files tracked by Git LFS'
1270
+ required_executable: 'git-lfs'
1271
+ install_command: 'brew install git-lfs'
1272
+
1273
+ GolangciLint:
1274
+ enabled: false
1275
+ description: 'Analyze with golangci-lint'
1276
+ required_executable: 'golangci-lint'
1277
+ install_command: 'go get github.com/golangci/golangci-lint/cmd/golangci-lint'
1278
+ flags: ['--out-format=line-number', '--print-issued-lines=false']
1279
+ command: ['golangci-lint', 'run']
1280
+
1281
+ GoTest:
1282
+ enabled: false
1283
+ description: 'Run go test suite'
1284
+ required_executable: 'go'
1285
+ command: ['go', 'test', './...']
1286
+
1287
+ Minitest:
1288
+ enabled: false
1289
+ description: 'Run Minitest test suite'
1290
+ command: ['ruby', '-Ilib:test', '-rminitest', "-e 'exit! Minitest.run'"]
1291
+ include: 'test/**/*_test.rb'
1292
+
1293
+ PhpUnit:
1294
+ enabled: false
1295
+ description: 'Run PhpUnit test suite'
1296
+ command: 'vendor/bin/phpunit'
1297
+ flags: ['--bootstrap', 'vendor/autoload.php', 'tests']
1298
+ install_command: 'composer require --dev phpunit/phpunit'
1299
+
1300
+ Pronto:
1301
+ enabled: false
1302
+ description: 'Analyzing with pronto'
1303
+ required_executable: 'pronto'
1304
+ install_command: 'gem install pronto'
1305
+ flags: ['run', '--exit-code']
1306
+
1307
+ ProtectedBranches:
1308
+ enabled: false
1309
+ description: 'Check for illegal pushes to protected branches'
1310
+ destructive_only: true
1311
+ branches: ['master']
1312
+
1313
+ Pytest:
1314
+ enabled: false
1315
+ description: 'Run pytest test suite'
1316
+ required_executable: 'pytest'
1317
+ install_command: 'pip install -U pytest'
1318
+
1319
+ PythonNose:
1320
+ enabled: false
1321
+ description: 'Run nose test suite'
1322
+ required_executable: 'nosetests'
1323
+ install_command: 'pip install -U nose'
1324
+
1325
+ RSpec:
1326
+ enabled: false
1327
+ description: 'Run RSpec test suite'
1328
+ required_executable: 'rspec'
1329
+
1330
+ RakeTarget:
1331
+ enabled: false
1332
+ description: 'Run rake targets'
1333
+ # targets:
1334
+ # - 'lint'
1335
+ # - 'validate'
1336
+ # - '...'
1337
+ required_executable: 'rake'
1338
+ install_command: 'gem install rake'
1339
+
1340
+ TestUnit:
1341
+ enabled: false
1342
+ description: 'Run Test::Unit test suite'
1343
+ command: ['ruby', '-Ilib:test', '-rtest/unit', "-e 'exit! Test::Unit::AutoRunner.run'"]
1344
+
1345
+ # Hooks that run during `git rebase`, before any commits are rebased.
1346
+ # If a hook fails, the rebase is aborted.
1347
+ PreRebase:
1348
+ ALL:
1349
+ requires_files: false
1350
+ required: false
1351
+ quiet: false
1352
+
1353
+ MergedCommits:
1354
+ enabled: false
1355
+ description: 'Check for commits that have already been merged'
1356
+ branches: ['master']