git_pre_commit_debugger_points_checker 1.8

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: a9fc7f1c124181436ddb52b71e53789c2b29594e392365715eabdf9e9f22a7ef
4
+ data.tar.gz: a63dbe533d5646f20dfaf39d2df79a8463140d7baa7bc1bb07579724965db5a5
5
+ SHA512:
6
+ metadata.gz: a9c38dff7bcc493397ce5a987488b8a5acb71fdec050f25142991bf78af36e47b812ec166c6941bf6851beba3725a6725598333c7cf284550e33fecba4fbc891
7
+ data.tar.gz: c7e439cc45b1db8b08227da3121508bc1a2c1b588d05a2707e49b2ef3c319fc127dd4199ab5ff5df8e8e16ffb9c785dcb6fe7b6bdb2970aa1972e894f21a2c12
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/setup"
5
+ require "git_pre_commit_debugger_points_checker"
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require "irb"
15
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+ require_relative "lib/git_pre_commit_debugger_points_checker/version"
3
+ # git_pre_commit_debugger_points_checker.gemspec
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "git_pre_commit_debugger_points_checker"
7
+ spec.version = GitPreCommitDebuggerPointsChecker::VERSION
8
+ spec.authors = ["Harish Reddy"]
9
+ spec.email = ["v.harish831@gmail.com"]
10
+ spec.summary = %q{A Git pre-commit hook for checking debugging statements.}
11
+ spec.description = %q{A Git pre-commit hook that checks for debugging statements before allowing a commit.}
12
+ spec.files = [
13
+ "lib/git_pre_commit_debugger_points_checker/version.rb",
14
+ "lib/git_pre_commit_debugger_points_checker.rb",
15
+ "git_pre_commit_debugger_points_checker.gemspec"
16
+ ] + Dir["bin/*"]
17
+ spec.homepage = "https://github.com/harshareddyharish/git_pre_commit_debugger_points_checker"
18
+ spec.license = "MIT"
19
+ spec.add_runtime_dependency "git", "~> 1.5"
20
+ spec.add_development_dependency "bundler", "~> 2.0"
21
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module GitPreCommitDebuggerPointsChecker
4
+ VERSION = "1.8"
5
+ end
@@ -0,0 +1,70 @@
1
+ # lib/git_pre_commit_debugger_points_checker/runner.rb
2
+ module GitPreCommitDebuggerPointsChecker
3
+ class Runner
4
+ def self.enable!
5
+ new.enable
6
+ end
7
+
8
+ def self.disable!
9
+ system('rm -rf ./.git/hooks/pre-commit')
10
+ end
11
+
12
+ def enable
13
+ system('mkdir -p ./.git/hooks')
14
+ write_pre_commit_hook
15
+ create_pre_commit_ignore
16
+ end
17
+
18
+ private
19
+
20
+ def write_pre_commit_hook
21
+ File.open('.git/hooks/pre-commit', 'w') do |file|
22
+ file.puts(pre_commit_script)
23
+ end
24
+ system('chmod +x .git/hooks/pre-commit')
25
+ end
26
+
27
+ def create_pre_commit_ignore
28
+ ignore_file_path = '.pre-commit-ignore'
29
+ unless File.exist?(ignore_file_path)
30
+ File.open(ignore_file_path, 'w') do |file|
31
+ file.puts("# Include files here to ignore git pre-commit checker")
32
+ file.puts("# - filename1.rb")
33
+ file.puts("# - filename2.rb")
34
+ end
35
+ end
36
+ end
37
+
38
+ def pre_commit_script
39
+ <<~SCRIPT
40
+ # hooks/pre-commit
41
+ # This script verifies if a list of "undesired" words are presented in the files you are
42
+ # intended to commit such, debugging information or keys/tokens/passwords.
43
+ LIST="byebug\\|debugger\\|binding.pry"
44
+
45
+ PROJECT_ROOT=$(git rev-parse --show-toplevel)
46
+ IGNORED_FILES="$PROJECT_ROOT/.pre-commit-ignore"
47
+
48
+ if git rev-parse --verify HEAD >/dev/null 2>&1; then
49
+ against=HEAD
50
+ fi
51
+
52
+ for FILE in `git diff-index --name-status --cached $against -- | cut -c3-` ; do
53
+ # Skip checks on any ignored files
54
+ if [[ -f "$IGNORED_FILES" ]]; then
55
+ if grep -q "$FILE" "$IGNORED_FILES"; then
56
+ continue
57
+ fi
58
+ fi
59
+
60
+ # Check if the file contains one of the words in LIST
61
+ if grep -w $LIST $FILE; then
62
+ echo "$FILE has one of the debugging statements that you don't want to commit! Please remove it or run git commit with the --no-verify flag."
63
+ exit 1
64
+ fi
65
+ done
66
+ exit
67
+ SCRIPT
68
+ end
69
+ end
70
+ end
metadata ADDED
@@ -0,0 +1,77 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: git_pre_commit_debugger_points_checker
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.8'
5
+ platform: ruby
6
+ authors:
7
+ - Harish Reddy
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-11-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: git
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.0'
41
+ description: A Git pre-commit hook that checks for debugging statements before allowing
42
+ a commit.
43
+ email:
44
+ - v.harish831@gmail.com
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - bin/console
50
+ - bin/setup
51
+ - git_pre_commit_debugger_points_checker.gemspec
52
+ - lib/git_pre_commit_debugger_points_checker.rb
53
+ - lib/git_pre_commit_debugger_points_checker/version.rb
54
+ homepage: https://github.com/harshareddyharish/git_pre_commit_debugger_points_checker
55
+ licenses:
56
+ - MIT
57
+ metadata: {}
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ requirements: []
73
+ rubygems_version: 3.3.26
74
+ signing_key:
75
+ specification_version: 4
76
+ summary: A Git pre-commit hook for checking debugging statements.
77
+ test_files: []