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,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,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: []
|