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.
- checksums.yaml +7 -0
- data/bin/overcommit +50 -0
- data/config/default.yml +1356 -0
- data/config/starter.yml +33 -0
- data/lib/overcommit.rb +26 -0
- data/lib/overcommit/cli.rb +223 -0
- data/lib/overcommit/command_splitter.rb +146 -0
- data/lib/overcommit/configuration.rb +350 -0
- data/lib/overcommit/configuration_loader.rb +96 -0
- data/lib/overcommit/configuration_validator.rb +186 -0
- data/lib/overcommit/constants.rb +12 -0
- data/lib/overcommit/exceptions.rb +52 -0
- data/lib/overcommit/git_config.rb +22 -0
- data/lib/overcommit/git_repo.rb +286 -0
- data/lib/overcommit/git_version.rb +17 -0
- data/lib/overcommit/hook/base.rb +294 -0
- data/lib/overcommit/hook/commit_msg/base.rb +14 -0
- data/lib/overcommit/hook/commit_msg/capitalized_subject.rb +25 -0
- data/lib/overcommit/hook/commit_msg/empty_message.rb +12 -0
- data/lib/overcommit/hook/commit_msg/gerrit_change_id.rb +22 -0
- data/lib/overcommit/hook/commit_msg/hard_tabs.rb +17 -0
- data/lib/overcommit/hook/commit_msg/message_format.rb +31 -0
- data/lib/overcommit/hook/commit_msg/russian_novel.rb +16 -0
- data/lib/overcommit/hook/commit_msg/single_line_subject.rb +16 -0
- data/lib/overcommit/hook/commit_msg/spell_check.rb +45 -0
- data/lib/overcommit/hook/commit_msg/text_width.rb +56 -0
- data/lib/overcommit/hook/commit_msg/trailing_period.rb +16 -0
- data/lib/overcommit/hook/post_checkout/base.rb +22 -0
- data/lib/overcommit/hook/post_checkout/bower_install.rb +13 -0
- data/lib/overcommit/hook/post_checkout/bundle_install.rb +13 -0
- data/lib/overcommit/hook/post_checkout/composer_install.rb +13 -0
- data/lib/overcommit/hook/post_checkout/index_tags.rb +12 -0
- data/lib/overcommit/hook/post_checkout/npm_install.rb +13 -0
- data/lib/overcommit/hook/post_checkout/submodule_status.rb +12 -0
- data/lib/overcommit/hook/post_checkout/yarn_install.rb +13 -0
- data/lib/overcommit/hook/post_commit/base.rb +12 -0
- data/lib/overcommit/hook/post_commit/bower_install.rb +13 -0
- data/lib/overcommit/hook/post_commit/bundle_install.rb +13 -0
- data/lib/overcommit/hook/post_commit/commitplease.rb +16 -0
- data/lib/overcommit/hook/post_commit/composer_install.rb +13 -0
- data/lib/overcommit/hook/post_commit/git_guilt.rb +43 -0
- data/lib/overcommit/hook/post_commit/index_tags.rb +12 -0
- data/lib/overcommit/hook/post_commit/npm_install.rb +13 -0
- data/lib/overcommit/hook/post_commit/submodule_status.rb +12 -0
- data/lib/overcommit/hook/post_commit/yarn_install.rb +13 -0
- data/lib/overcommit/hook/post_merge/base.rb +12 -0
- data/lib/overcommit/hook/post_merge/bower_install.rb +13 -0
- data/lib/overcommit/hook/post_merge/bundle_install.rb +13 -0
- data/lib/overcommit/hook/post_merge/composer_install.rb +13 -0
- data/lib/overcommit/hook/post_merge/index_tags.rb +12 -0
- data/lib/overcommit/hook/post_merge/npm_install.rb +13 -0
- data/lib/overcommit/hook/post_merge/submodule_status.rb +12 -0
- data/lib/overcommit/hook/post_merge/yarn_install.rb +13 -0
- data/lib/overcommit/hook/post_rewrite/base.rb +12 -0
- data/lib/overcommit/hook/post_rewrite/bower_install.rb +13 -0
- data/lib/overcommit/hook/post_rewrite/bundle_install.rb +13 -0
- data/lib/overcommit/hook/post_rewrite/composer_install.rb +13 -0
- data/lib/overcommit/hook/post_rewrite/index_tags.rb +19 -0
- data/lib/overcommit/hook/post_rewrite/npm_install.rb +13 -0
- data/lib/overcommit/hook/post_rewrite/submodule_status.rb +12 -0
- data/lib/overcommit/hook/post_rewrite/yarn_install.rb +13 -0
- data/lib/overcommit/hook/pre_commit/author_email.rb +26 -0
- data/lib/overcommit/hook/pre_commit/author_name.rb +25 -0
- data/lib/overcommit/hook/pre_commit/base.rb +19 -0
- data/lib/overcommit/hook/pre_commit/berksfile_check.rb +24 -0
- data/lib/overcommit/hook/pre_commit/broken_symlinks.rb +17 -0
- data/lib/overcommit/hook/pre_commit/bundle_audit.rb +24 -0
- data/lib/overcommit/hook/pre_commit/bundle_check.rb +32 -0
- data/lib/overcommit/hook/pre_commit/bundle_outdated.rb +25 -0
- data/lib/overcommit/hook/pre_commit/case_conflicts.rb +27 -0
- data/lib/overcommit/hook/pre_commit/chamber_compare.rb +43 -0
- data/lib/overcommit/hook/pre_commit/chamber_security.rb +15 -0
- data/lib/overcommit/hook/pre_commit/chamber_verification.rb +36 -0
- data/lib/overcommit/hook/pre_commit/code_spell_check.rb +36 -0
- data/lib/overcommit/hook/pre_commit/coffee_lint.rb +35 -0
- data/lib/overcommit/hook/pre_commit/cook_style.rb +35 -0
- data/lib/overcommit/hook/pre_commit/credo.rb +27 -0
- data/lib/overcommit/hook/pre_commit/css_lint.rb +26 -0
- data/lib/overcommit/hook/pre_commit/dogma.rb +33 -0
- data/lib/overcommit/hook/pre_commit/es_lint.rb +38 -0
- data/lib/overcommit/hook/pre_commit/execute_permissions.rb +76 -0
- data/lib/overcommit/hook/pre_commit/fasterer.rb +25 -0
- data/lib/overcommit/hook/pre_commit/file_size.rb +47 -0
- data/lib/overcommit/hook/pre_commit/fix_me.rb +17 -0
- data/lib/overcommit/hook/pre_commit/flay.rb +38 -0
- data/lib/overcommit/hook/pre_commit/foodcritic.rb +149 -0
- data/lib/overcommit/hook/pre_commit/forbidden_branches.rb +26 -0
- data/lib/overcommit/hook/pre_commit/ginkgo_focus.rb +23 -0
- data/lib/overcommit/hook/pre_commit/go_fmt.rb +17 -0
- data/lib/overcommit/hook/pre_commit/go_lint.rb +29 -0
- data/lib/overcommit/hook/pre_commit/go_vet.rb +24 -0
- data/lib/overcommit/hook/pre_commit/golangci_lint.rb +21 -0
- data/lib/overcommit/hook/pre_commit/hadolint.rb +27 -0
- data/lib/overcommit/hook/pre_commit/haml_lint.rb +23 -0
- data/lib/overcommit/hook/pre_commit/hard_tabs.rb +15 -0
- data/lib/overcommit/hook/pre_commit/hlint.rb +34 -0
- data/lib/overcommit/hook/pre_commit/html_hint.rb +23 -0
- data/lib/overcommit/hook/pre_commit/html_tidy.rb +30 -0
- data/lib/overcommit/hook/pre_commit/image_optim.rb +28 -0
- data/lib/overcommit/hook/pre_commit/java_checkstyle.rb +27 -0
- data/lib/overcommit/hook/pre_commit/js_hint.rb +23 -0
- data/lib/overcommit/hook/pre_commit/js_lint.rb +22 -0
- data/lib/overcommit/hook/pre_commit/jscs.rb +27 -0
- data/lib/overcommit/hook/pre_commit/jsl.rb +28 -0
- data/lib/overcommit/hook/pre_commit/json_syntax.rb +21 -0
- data/lib/overcommit/hook/pre_commit/kt_lint.rb +19 -0
- data/lib/overcommit/hook/pre_commit/license_finder.rb +14 -0
- data/lib/overcommit/hook/pre_commit/license_header.rb +48 -0
- data/lib/overcommit/hook/pre_commit/line_endings.rb +77 -0
- data/lib/overcommit/hook/pre_commit/local_paths_in_gemfile.rb +16 -0
- data/lib/overcommit/hook/pre_commit/mdl.rb +29 -0
- data/lib/overcommit/hook/pre_commit/merge_conflicts.rb +16 -0
- data/lib/overcommit/hook/pre_commit/nginx_test.rb +26 -0
- data/lib/overcommit/hook/pre_commit/pep257.rb +23 -0
- data/lib/overcommit/hook/pre_commit/pep8.rb +23 -0
- data/lib/overcommit/hook/pre_commit/php_cs.rb +43 -0
- data/lib/overcommit/hook/pre_commit/php_cs_fixer.rb +57 -0
- data/lib/overcommit/hook/pre_commit/php_lint.rb +44 -0
- data/lib/overcommit/hook/pre_commit/php_stan.rb +30 -0
- data/lib/overcommit/hook/pre_commit/pronto.rb +12 -0
- data/lib/overcommit/hook/pre_commit/puppet_lint.rb +26 -0
- data/lib/overcommit/hook/pre_commit/puppet_metadata_json_lint.rb +29 -0
- data/lib/overcommit/hook/pre_commit/pycodestyle.rb +23 -0
- data/lib/overcommit/hook/pre_commit/pydocstyle.rb +23 -0
- data/lib/overcommit/hook/pre_commit/pyflakes.rb +32 -0
- data/lib/overcommit/hook/pre_commit/pylint.rb +32 -0
- data/lib/overcommit/hook/pre_commit/python_flake8.rb +32 -0
- data/lib/overcommit/hook/pre_commit/rails_best_practices.rb +34 -0
- data/lib/overcommit/hook/pre_commit/rails_schema_up_to_date.rb +58 -0
- data/lib/overcommit/hook/pre_commit/rake_target.rb +12 -0
- data/lib/overcommit/hook/pre_commit/reek.rb +26 -0
- data/lib/overcommit/hook/pre_commit/rst_lint.rb +27 -0
- data/lib/overcommit/hook/pre_commit/rubo_cop.rb +35 -0
- data/lib/overcommit/hook/pre_commit/ruby_lint.rb +23 -0
- data/lib/overcommit/hook/pre_commit/ruby_syntax.rb +27 -0
- data/lib/overcommit/hook/pre_commit/scalariform.rb +22 -0
- data/lib/overcommit/hook/pre_commit/scalastyle.rb +31 -0
- data/lib/overcommit/hook/pre_commit/scss_lint.rb +43 -0
- data/lib/overcommit/hook/pre_commit/semi_standard.rb +23 -0
- data/lib/overcommit/hook/pre_commit/shell_check.rb +23 -0
- data/lib/overcommit/hook/pre_commit/slim_lint.rb +23 -0
- data/lib/overcommit/hook/pre_commit/sqlint.rb +26 -0
- data/lib/overcommit/hook/pre_commit/standard.rb +23 -0
- data/lib/overcommit/hook/pre_commit/stylelint.rb +23 -0
- data/lib/overcommit/hook/pre_commit/swift_lint.rb +19 -0
- data/lib/overcommit/hook/pre_commit/terraform_format.rb +19 -0
- data/lib/overcommit/hook/pre_commit/trailing_whitespace.rb +15 -0
- data/lib/overcommit/hook/pre_commit/travis_lint.rb +15 -0
- data/lib/overcommit/hook/pre_commit/ts_lint.rb +28 -0
- data/lib/overcommit/hook/pre_commit/vint.rb +22 -0
- data/lib/overcommit/hook/pre_commit/w3c_css.rb +67 -0
- data/lib/overcommit/hook/pre_commit/w3c_html.rb +64 -0
- data/lib/overcommit/hook/pre_commit/xml_lint.rb +24 -0
- data/lib/overcommit/hook/pre_commit/xml_syntax.rb +21 -0
- data/lib/overcommit/hook/pre_commit/yaml_lint.rb +18 -0
- data/lib/overcommit/hook/pre_commit/yaml_syntax.rb +20 -0
- data/lib/overcommit/hook/pre_commit/yard_coverage.rb +90 -0
- data/lib/overcommit/hook/pre_commit/yarn_check.rb +37 -0
- data/lib/overcommit/hook/pre_push/base.rb +33 -0
- data/lib/overcommit/hook/pre_push/brakeman.rb +15 -0
- data/lib/overcommit/hook/pre_push/cargo_test.rb +12 -0
- data/lib/overcommit/hook/pre_push/go_test.rb +14 -0
- data/lib/overcommit/hook/pre_push/golangci_lint.rb +16 -0
- data/lib/overcommit/hook/pre_push/minitest.rb +20 -0
- data/lib/overcommit/hook/pre_push/php_unit.rb +16 -0
- data/lib/overcommit/hook/pre_push/pronto.rb +12 -0
- data/lib/overcommit/hook/pre_push/protected_branches.rb +74 -0
- data/lib/overcommit/hook/pre_push/pytest.rb +16 -0
- data/lib/overcommit/hook/pre_push/python_nose.rb +16 -0
- data/lib/overcommit/hook/pre_push/r_spec.rb +16 -0
- data/lib/overcommit/hook/pre_push/rake_target.rb +12 -0
- data/lib/overcommit/hook/pre_push/test_unit.rb +16 -0
- data/lib/overcommit/hook/pre_rebase/base.rb +14 -0
- data/lib/overcommit/hook/pre_rebase/merged_commits.rb +31 -0
- data/lib/overcommit/hook/prepare_commit_msg/base.rb +25 -0
- data/lib/overcommit/hook/prepare_commit_msg/replace_branch.rb +57 -0
- data/lib/overcommit/hook/shared/bower_install.rb +15 -0
- data/lib/overcommit/hook/shared/bundle_install.rb +15 -0
- data/lib/overcommit/hook/shared/composer_install.rb +15 -0
- data/lib/overcommit/hook/shared/index_tags.rb +14 -0
- data/lib/overcommit/hook/shared/npm_install.rb +15 -0
- data/lib/overcommit/hook/shared/pronto.rb +21 -0
- data/lib/overcommit/hook/shared/rake_target.rb +26 -0
- data/lib/overcommit/hook/shared/submodule_status.rb +32 -0
- data/lib/overcommit/hook/shared/yarn_install.rb +15 -0
- data/lib/overcommit/hook_context.rb +19 -0
- data/lib/overcommit/hook_context/base.rb +139 -0
- data/lib/overcommit/hook_context/commit_msg.rb +48 -0
- data/lib/overcommit/hook_context/post_checkout.rb +36 -0
- data/lib/overcommit/hook_context/post_commit.rb +33 -0
- data/lib/overcommit/hook_context/post_merge.rb +37 -0
- data/lib/overcommit/hook_context/post_rewrite.rb +49 -0
- data/lib/overcommit/hook_context/pre_commit.rb +212 -0
- data/lib/overcommit/hook_context/pre_push.rb +89 -0
- data/lib/overcommit/hook_context/pre_rebase.rb +38 -0
- data/lib/overcommit/hook_context/prepare_commit_msg.rb +34 -0
- data/lib/overcommit/hook_context/run_all.rb +48 -0
- data/lib/overcommit/hook_loader/base.rb +48 -0
- data/lib/overcommit/hook_loader/built_in_hook_loader.rb +14 -0
- data/lib/overcommit/hook_loader/plugin_hook_loader.rb +102 -0
- data/lib/overcommit/hook_runner.rb +219 -0
- data/lib/overcommit/hook_signer.rb +123 -0
- data/lib/overcommit/installer.rb +193 -0
- data/lib/overcommit/interrupt_handler.rb +91 -0
- data/lib/overcommit/logger.rb +92 -0
- data/lib/overcommit/message_processor.rb +148 -0
- data/lib/overcommit/os.rb +38 -0
- data/lib/overcommit/printer.rb +145 -0
- data/lib/overcommit/subprocess.rb +98 -0
- data/lib/overcommit/utils.rb +309 -0
- data/lib/overcommit/utils/file_utils.rb +71 -0
- data/lib/overcommit/utils/messages_utils.rb +77 -0
- data/lib/overcommit/version.rb +6 -0
- data/libexec/gerrit-change-id +174 -0
- data/libexec/index-tags +17 -0
- data/template-dir/hooks/commit-msg +116 -0
- data/template-dir/hooks/overcommit-hook +116 -0
- data/template-dir/hooks/post-checkout +116 -0
- data/template-dir/hooks/post-commit +116 -0
- data/template-dir/hooks/post-merge +116 -0
- data/template-dir/hooks/post-rewrite +116 -0
- data/template-dir/hooks/pre-commit +116 -0
- data/template-dir/hooks/pre-push +116 -0
- data/template-dir/hooks/pre-rebase +116 -0
- data/template-dir/hooks/prepare-commit-msg +116 -0
- metadata +303 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'overcommit/hook/shared/bower_install'
|
|
4
|
+
|
|
5
|
+
module Overcommit::Hook::PostMerge
|
|
6
|
+
# Runs `bower install` when a change is detected in the repository's
|
|
7
|
+
# dependencies.
|
|
8
|
+
#
|
|
9
|
+
# @see Overcommit::Hook::Shared::BowerInstall
|
|
10
|
+
class BowerInstall < Base
|
|
11
|
+
include Overcommit::Hook::Shared::BowerInstall
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'overcommit/hook/shared/bundle_install'
|
|
4
|
+
|
|
5
|
+
module Overcommit::Hook::PostMerge
|
|
6
|
+
# Runs `bundle install` when a change is detected in the repository's
|
|
7
|
+
# dependencies.
|
|
8
|
+
#
|
|
9
|
+
# @see Overcommit::Hook::Shared::BundleInstall
|
|
10
|
+
class BundleInstall < Base
|
|
11
|
+
include Overcommit::Hook::Shared::BundleInstall
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'overcommit/hook/shared/composer_install'
|
|
4
|
+
|
|
5
|
+
module Overcommit::Hook::PostMerge
|
|
6
|
+
# Runs `composer install` when a change is detected in the repository's
|
|
7
|
+
# dependencies.
|
|
8
|
+
#
|
|
9
|
+
# @see Overcommit::Hook::Shared::ComposerInstall
|
|
10
|
+
class ComposerInstall < Base
|
|
11
|
+
include Overcommit::Hook::Shared::ComposerInstall
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'overcommit/hook/shared/index_tags'
|
|
4
|
+
|
|
5
|
+
module Overcommit::Hook::PostMerge
|
|
6
|
+
# Updates ctags index for all source code in the repository.
|
|
7
|
+
#
|
|
8
|
+
# @see Overcommit::Hook::Shared::IndexTags
|
|
9
|
+
class IndexTags < Base
|
|
10
|
+
include Overcommit::Hook::Shared::IndexTags
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'overcommit/hook/shared/npm_install'
|
|
4
|
+
|
|
5
|
+
module Overcommit::Hook::PostMerge
|
|
6
|
+
# Runs `npm install` when a change is detected in the repository's
|
|
7
|
+
# dependencies.
|
|
8
|
+
#
|
|
9
|
+
# @see Overcommit::Hook::Shared::NpmInstall
|
|
10
|
+
class NpmInstall < Base
|
|
11
|
+
include Overcommit::Hook::Shared::NpmInstall
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'overcommit/hook/shared/submodule_status'
|
|
4
|
+
|
|
5
|
+
module Overcommit::Hook::PostMerge
|
|
6
|
+
# Checks the status of submodules in the current repository and
|
|
7
|
+
# notifies the user if any are uninitialized, out of date with
|
|
8
|
+
# the current index, or contain merge conflicts.
|
|
9
|
+
class SubmoduleStatus < Base
|
|
10
|
+
include Overcommit::Hook::Shared::SubmoduleStatus
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'overcommit/hook/shared/yarn_install'
|
|
4
|
+
|
|
5
|
+
module Overcommit::Hook::PostMerge
|
|
6
|
+
# Runs `yarn install` when a change is detected in the repository's
|
|
7
|
+
# dependencies.
|
|
8
|
+
#
|
|
9
|
+
# @see Overcommit::Hook::Shared::YarnInstall
|
|
10
|
+
class YarnInstall < Base
|
|
11
|
+
include Overcommit::Hook::Shared::YarnInstall
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'forwardable'
|
|
4
|
+
|
|
5
|
+
module Overcommit::Hook::PostRewrite
|
|
6
|
+
# Functionality common to all post-rewrite hooks.
|
|
7
|
+
class Base < Overcommit::Hook::Base
|
|
8
|
+
extend Forwardable
|
|
9
|
+
|
|
10
|
+
def_delegators :@context, :amend?, :rebase?, :rewritten_commits
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'overcommit/hook/shared/bower_install'
|
|
4
|
+
|
|
5
|
+
module Overcommit::Hook::PostRewrite
|
|
6
|
+
# Runs `bower install` when a change is detected in the repository's
|
|
7
|
+
# dependencies.
|
|
8
|
+
#
|
|
9
|
+
# @see Overcommit::Hook::Shared::BowerInstall
|
|
10
|
+
class BowerInstall < Base
|
|
11
|
+
include Overcommit::Hook::Shared::BowerInstall
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'overcommit/hook/shared/bundle_install'
|
|
4
|
+
|
|
5
|
+
module Overcommit::Hook::PostRewrite
|
|
6
|
+
# Runs `bundle install` when a change is detected in the repository's
|
|
7
|
+
# dependencies.
|
|
8
|
+
#
|
|
9
|
+
# @see Overcommit::Hook::Shared::BundleInstall
|
|
10
|
+
class BundleInstall < Base
|
|
11
|
+
include Overcommit::Hook::Shared::BundleInstall
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'overcommit/hook/shared/composer_install'
|
|
4
|
+
|
|
5
|
+
module Overcommit::Hook::PostRewrite
|
|
6
|
+
# Runs `composer install` when a change is detected in the repository's
|
|
7
|
+
# dependencies.
|
|
8
|
+
#
|
|
9
|
+
# @see Overcommit::Hook::Shared::ComposerInstall
|
|
10
|
+
class ComposerInstall < Base
|
|
11
|
+
include Overcommit::Hook::Shared::ComposerInstall
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'overcommit/hook/shared/index_tags'
|
|
4
|
+
|
|
5
|
+
module Overcommit::Hook::PostRewrite
|
|
6
|
+
# Updates ctags index for all source code in the repository.
|
|
7
|
+
#
|
|
8
|
+
# @see Overcommit::Hook::Shared::IndexTags
|
|
9
|
+
class IndexTags < Base
|
|
10
|
+
include Overcommit::Hook::Shared::IndexTags
|
|
11
|
+
|
|
12
|
+
def run
|
|
13
|
+
# Ignore unless this is a rebase (amends are covered by post-commit hook)
|
|
14
|
+
return :pass unless rebase?
|
|
15
|
+
|
|
16
|
+
super
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'overcommit/hook/shared/npm_install'
|
|
4
|
+
|
|
5
|
+
module Overcommit::Hook::PostRewrite
|
|
6
|
+
# Runs `npm install` when a change is detected in the repository's
|
|
7
|
+
# dependencies.
|
|
8
|
+
#
|
|
9
|
+
# @see Overcommit::Hook::Shared::NpmInstall
|
|
10
|
+
class NpmInstall < Base
|
|
11
|
+
include Overcommit::Hook::Shared::NpmInstall
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'overcommit/hook/shared/submodule_status'
|
|
4
|
+
|
|
5
|
+
module Overcommit::Hook::PostRewrite
|
|
6
|
+
# Checks the status of submodules in the current repository and
|
|
7
|
+
# notifies the user if any are uninitialized, out of date with
|
|
8
|
+
# the current index, or contain merge conflicts.
|
|
9
|
+
class SubmoduleStatus < Base
|
|
10
|
+
include Overcommit::Hook::Shared::SubmoduleStatus
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'overcommit/hook/shared/yarn_install'
|
|
4
|
+
|
|
5
|
+
module Overcommit::Hook::PostRewrite
|
|
6
|
+
# Runs `yarn install` when a change is detected in the repository's
|
|
7
|
+
# dependencies.
|
|
8
|
+
#
|
|
9
|
+
# @see Overcommit::Hook::Shared::YarnInstall
|
|
10
|
+
class YarnInstall < Base
|
|
11
|
+
include Overcommit::Hook::Shared::YarnInstall
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Overcommit::Hook::PreCommit
|
|
4
|
+
# Checks the format of an author's email address.
|
|
5
|
+
class AuthorEmail < Base
|
|
6
|
+
def run
|
|
7
|
+
email =
|
|
8
|
+
if ENV.key?('GIT_AUTHOR_EMAIL')
|
|
9
|
+
ENV['GIT_AUTHOR_EMAIL']
|
|
10
|
+
else
|
|
11
|
+
result = execute(%w[git config --get user.email])
|
|
12
|
+
result.stdout.chomp
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
unless email.match?(/#{config['pattern']}/)
|
|
16
|
+
return :fail,
|
|
17
|
+
"Author has an invalid email address: '#{email}'\n" \
|
|
18
|
+
'Set your email with ' \
|
|
19
|
+
'`git config --global user.email your_email@example.com` ' \
|
|
20
|
+
'or via the GIT_AUTHOR_EMAIL environment variable'
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
:pass
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Overcommit::Hook::PreCommit
|
|
4
|
+
# Ensures that a commit author has a name with at least first and last names.
|
|
5
|
+
class AuthorName < Base
|
|
6
|
+
def run
|
|
7
|
+
name =
|
|
8
|
+
if ENV.key?('GIT_AUTHOR_NAME')
|
|
9
|
+
ENV['GIT_AUTHOR_NAME']
|
|
10
|
+
else
|
|
11
|
+
result = execute(%w[git config --get user.name])
|
|
12
|
+
result.stdout.chomp
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
unless name.split(' ').count >= 2
|
|
16
|
+
return :fail,
|
|
17
|
+
"Author must have at least first and last name, but was: #{name}.\n" \
|
|
18
|
+
'Set your name with `git config --global user.name "Your Name"` ' \
|
|
19
|
+
'or via the GIT_AUTHOR_NAME environment variable'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
:pass
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'forwardable'
|
|
4
|
+
require 'overcommit/utils/messages_utils'
|
|
5
|
+
|
|
6
|
+
module Overcommit::Hook::PreCommit
|
|
7
|
+
# Functionality common to all pre-commit hooks.
|
|
8
|
+
class Base < Overcommit::Hook::Base
|
|
9
|
+
extend Forwardable
|
|
10
|
+
|
|
11
|
+
def_delegators :@context, :modified_lines_in_file, :amendment?, :initial_commit?
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
|
|
15
|
+
def extract_messages(*args)
|
|
16
|
+
Overcommit::Utils::MessagesUtils.extract_messages(*args)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Overcommit::Hook::PreCommit
|
|
4
|
+
# Check if local Berksfile.lock matches Berksfile when either changes, unless
|
|
5
|
+
# Berksfile.lock is ignored by git.
|
|
6
|
+
#
|
|
7
|
+
# @see http://berkshelf.com/
|
|
8
|
+
class BerksfileCheck < Base
|
|
9
|
+
LOCK_FILE = 'Berksfile.lock'
|
|
10
|
+
|
|
11
|
+
def run
|
|
12
|
+
# Ignore if Berksfile.lock is not tracked by git
|
|
13
|
+
ignored_files = execute(%w[git ls-files -o -i --exclude-standard]).stdout.split("\n")
|
|
14
|
+
return :pass if ignored_files.include?(LOCK_FILE)
|
|
15
|
+
|
|
16
|
+
result = execute(command)
|
|
17
|
+
unless result.success?
|
|
18
|
+
return :fail, result.stderr
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
:pass
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Overcommit::Hook::PreCommit
|
|
4
|
+
# Checks for broken symlinks.
|
|
5
|
+
class BrokenSymlinks < Base
|
|
6
|
+
def run
|
|
7
|
+
broken_symlinks = applicable_files.
|
|
8
|
+
select { |file| Overcommit::Utils.broken_symlink?(file) }
|
|
9
|
+
|
|
10
|
+
if broken_symlinks.any?
|
|
11
|
+
return :fail, "Broken symlinks detected:\n#{broken_symlinks.join("\n")}"
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
:pass
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Overcommit::Hook::PreCommit
|
|
4
|
+
# Checks for vulnerable versions of gems in Gemfile.lock.
|
|
5
|
+
#
|
|
6
|
+
# @see https://github.com/rubysec/bundler-audit
|
|
7
|
+
class BundleAudit < Base
|
|
8
|
+
LOCK_FILE = 'Gemfile.lock'
|
|
9
|
+
|
|
10
|
+
def run
|
|
11
|
+
# Ignore if Gemfile.lock is not tracked by git
|
|
12
|
+
ignored_files = execute(%W[git ls-files -o -i --exclude-standard -- #{LOCK_FILE}]).
|
|
13
|
+
stdout.split("\n")
|
|
14
|
+
return :pass if ignored_files.include?(LOCK_FILE)
|
|
15
|
+
|
|
16
|
+
result = execute(command)
|
|
17
|
+
if result.success?
|
|
18
|
+
:pass
|
|
19
|
+
else
|
|
20
|
+
return [:warn, result.stdout]
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Overcommit::Hook::PreCommit
|
|
4
|
+
# Check if local Gemfile.lock matches Gemfile when either changes, unless
|
|
5
|
+
# Gemfile.lock is ignored by git.
|
|
6
|
+
#
|
|
7
|
+
# @see http://bundler.io/
|
|
8
|
+
class BundleCheck < Base
|
|
9
|
+
LOCK_FILE = 'Gemfile.lock'
|
|
10
|
+
|
|
11
|
+
def run
|
|
12
|
+
# Ignore if Gemfile.lock is not tracked by git
|
|
13
|
+
ignored_files = execute(%w[git ls-files -o -i --exclude-standard]).stdout.split("\n")
|
|
14
|
+
return :pass if ignored_files.include?(LOCK_FILE)
|
|
15
|
+
|
|
16
|
+
previous_lockfile = File.read(LOCK_FILE) if File.exist?(LOCK_FILE)
|
|
17
|
+
|
|
18
|
+
result = execute(command)
|
|
19
|
+
unless result.success?
|
|
20
|
+
return :fail, result.stdout
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
new_lockfile = File.read(LOCK_FILE) if File.exist?(LOCK_FILE)
|
|
24
|
+
if previous_lockfile != new_lockfile
|
|
25
|
+
return :fail, "#{LOCK_FILE} is not up-to-date -- run \
|
|
26
|
+
`#{command.join(' ')}` or add the Gemfile and/or Gemfile.lock".squeeze
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
:pass
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Overcommit::Hook::PreCommit
|
|
4
|
+
# Check if any gems in Gemfile.lock have newer versions, unless the
|
|
5
|
+
# Gemfile.lock is ignored by Git.
|
|
6
|
+
#
|
|
7
|
+
# @see http://bundler.io/bundle_outdated.html
|
|
8
|
+
class BundleOutdated < Base
|
|
9
|
+
LOCK_FILE = 'Gemfile.lock'
|
|
10
|
+
|
|
11
|
+
def run
|
|
12
|
+
# Ignore if Gemfile.lock is not tracked by git
|
|
13
|
+
ignored_files = execute(%w[git ls-files -o -i --exclude-standard]).stdout.split("\n")
|
|
14
|
+
return :pass if ignored_files.include?(LOCK_FILE)
|
|
15
|
+
|
|
16
|
+
result = execute(command)
|
|
17
|
+
warn_msgs = result.stdout.split("\n").
|
|
18
|
+
reject { |str| str.strip.empty? }.
|
|
19
|
+
reject { |str| (str.strip =~ /^(\[|\()?warning|deprecation/i) }
|
|
20
|
+
warnings = warn_msgs.map { |msg| Overcommit::Hook::Message.new(:warning, nil, nil, msg) }
|
|
21
|
+
|
|
22
|
+
warnings.empty? ? :pass : warnings
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Overcommit::Hook::PreCommit
|
|
4
|
+
# Checks for files that would conflict in case-insensitive filesystems
|
|
5
|
+
# Adapted from https://github.com/pre-commit/pre-commit-hooks
|
|
6
|
+
class CaseConflicts < Base
|
|
7
|
+
def run
|
|
8
|
+
repo_files = Set.new(applicable_files)
|
|
9
|
+
|
|
10
|
+
unless Overcommit::GitRepo.initial_commit?
|
|
11
|
+
paths = repo_files.map { |file| File.dirname(file) + File::SEPARATOR }.uniq
|
|
12
|
+
repo_files += Overcommit::GitRepo.list_files(paths)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
conflict_hash = repo_files.classify(&:downcase).
|
|
16
|
+
select { |_, files| files.size > 1 }
|
|
17
|
+
conflict_files = applicable_files.
|
|
18
|
+
select { |file| conflict_hash.include?(file.downcase) }
|
|
19
|
+
|
|
20
|
+
conflict_files.map do |file|
|
|
21
|
+
conflicts = conflict_hash[file.downcase].map { |f| File.basename(f) }
|
|
22
|
+
msg = "Conflict detected for case-insensitive file systems: #{conflicts.join(', ')}"
|
|
23
|
+
Overcommit::Hook::Message.new(:error, file, nil, msg)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|