git-commit-notifier 0.9.2 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +9 -0
- data/README.md +125 -0
- data/Rakefile +0 -6
- data/VERSION +1 -1
- data/config/git-notifier-config.yml.sample +8 -2
- data/git-commit-notifier.gemspec +3 -5
- data/lib/git_commit_notifier/commit_hook.rb +23 -19
- data/lib/git_commit_notifier/diff_to_html.rb +175 -97
- data/lib/git_commit_notifier/emailer.rb +7 -0
- data/lib/git_commit_notifier/executor.rb +5 -5
- data/lib/git_commit_notifier/git.rb +15 -3
- data/spec/fixtures/git_log_name_status +4 -0
- data/spec/lib/git_commit_notifier/commit_hook_spec.rb +4 -1
- data/spec/lib/git_commit_notifier/diff_to_html_spec.rb +45 -15
- data/spec/lib/git_commit_notifier/git_spec.rb +18 -3
- data/spec/spec_helper.rb +5 -0
- metadata +129 -125
- data/README.textile +0 -111
@@ -52,6 +52,12 @@ class GitCommitNotifier::Emailer
|
|
52
52
|
IO.read(stylesheet)
|
53
53
|
end
|
54
54
|
|
55
|
+
def perform_delivery_debug(content)
|
56
|
+
content.each do |line|
|
57
|
+
puts line
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
55
61
|
def perform_delivery_smtp(content, smtp_settings)
|
56
62
|
settings = { }
|
57
63
|
%w(address port domain user_name password authentication enable_tls).each do |key|
|
@@ -128,6 +134,7 @@ class GitCommitNotifier::Emailer
|
|
128
134
|
case config['delivery_method'].to_sym
|
129
135
|
when :smtp then perform_delivery_smtp(content, config['smtp_server'])
|
130
136
|
when :nntp then perform_delivery_nntp(content, config['nntp_settings'])
|
137
|
+
when :debug then perform_delivery_debug(content)
|
131
138
|
else # sendmail
|
132
139
|
perform_delivery_sendmail(content, @config['sendmail_options'])
|
133
140
|
end
|
@@ -7,17 +7,17 @@ module GitCommitNotifier
|
|
7
7
|
def self.run!(args)
|
8
8
|
case args.length
|
9
9
|
when 0
|
10
|
-
CommitHook.show_error("You have to add a path to the config file for git-commit-notifier")
|
10
|
+
GitCommitNotifier::CommitHook.show_error("You have to add a path to the config file for git-commit-notifier")
|
11
11
|
puts "Usage: git-commit-notifier config-script [oldrev newrev [ref]]"
|
12
12
|
when 1
|
13
13
|
oldrev, newrev, ref = $stdin.gets.strip.split
|
14
|
-
CommitHook.run args.first, oldrev, newrev, ref
|
14
|
+
GitCommitNotifier::CommitHook.run args.first, oldrev, newrev, ref
|
15
15
|
when 2
|
16
|
-
CommitHook.run args.first, args.last, args.last, ""
|
16
|
+
GitCommitNotifier::CommitHook.run args.first, args.last, args.last, ""
|
17
17
|
when 3
|
18
|
-
CommitHook.run args.first, args[1], args.last, ""
|
18
|
+
GitCommitNotifier::CommitHook.run args.first, args[1], args.last, ""
|
19
19
|
else
|
20
|
-
CommitHook.run args.first, args[1], args[2], args[3]
|
20
|
+
GitCommitNotifier::CommitHook.run args.first, args[1], args[2], args[3]
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
@@ -1,17 +1,29 @@
|
|
1
1
|
class GitCommitNotifier::Git
|
2
2
|
class << self
|
3
3
|
def from_shell(cmd)
|
4
|
-
`#{cmd}`
|
4
|
+
r = `#{cmd}`
|
5
|
+
raise ArgumentError.new("#{cmd} failed") unless $?.exitstatus.zero?
|
6
|
+
r
|
5
7
|
end
|
6
8
|
|
7
|
-
def show(rev)
|
8
|
-
|
9
|
+
def show(rev, ignore_whitespace)
|
10
|
+
gitopt = ""
|
11
|
+
gitopt += " -w" if ignore_whitespace
|
12
|
+
from_shell("git show #{rev.strip}#{gitopt}")
|
9
13
|
end
|
10
14
|
|
11
15
|
def log(rev1, rev2)
|
12
16
|
from_shell("git log #{rev1}..#{rev2}").strip
|
13
17
|
end
|
14
18
|
|
19
|
+
def changed_files(rev1, rev2)
|
20
|
+
output = ""
|
21
|
+
lines = from_shell("git log #{rev1}..#{rev2} --name-status --oneline")
|
22
|
+
lines = lines.lines if lines.respond_to?(:lines)
|
23
|
+
lines = lines.select {|line| line =~ /^\w{1}\s+\w+/} # grep out only filenames
|
24
|
+
lines.uniq
|
25
|
+
end
|
26
|
+
|
15
27
|
def branch_commits(treeish)
|
16
28
|
args = branch_heads - [ branch_head(treeish) ]
|
17
29
|
args.map! { |tree| "^#{tree}" }
|
@@ -49,6 +49,7 @@ describe GitCommitNotifier::CommitHook do
|
|
49
49
|
|
50
50
|
def run_and_reject(config,times,branch)
|
51
51
|
mock(GitCommitNotifier::Git).mailing_list_address { 'recipient@test.com' }
|
52
|
+
mock(GitCommitNotifier::Git).repo_name { 'testproject' }
|
52
53
|
|
53
54
|
emailer = mock!.send.times(times).subject
|
54
55
|
mock(GitCommitNotifier::Emailer).new(anything, anything).times(times)
|
@@ -71,8 +72,10 @@ describe GitCommitNotifier::CommitHook do
|
|
71
72
|
def expect_repository_access
|
72
73
|
mock(GitCommitNotifier::Git).log(REVISIONS.first, REVISIONS.last) { IO.read(FIXTURES_PATH + 'git_log') }
|
73
74
|
mock(GitCommitNotifier::Git).mailing_list_address { 'recipient@test.com' }
|
75
|
+
mock(GitCommitNotifier::Git).repo_name { 'testproject' }
|
76
|
+
mock(GitCommitNotifier::Git).changed_files('7e4f6b4', '4f13525') { [] }
|
74
77
|
REVISIONS.each do |rev|
|
75
|
-
mock(GitCommitNotifier::Git).show(rev) { IO.read(FIXTURES_PATH + "git_show_#{rev}") }
|
78
|
+
mock(GitCommitNotifier::Git).show(rev, true) { IO.read(FIXTURES_PATH + "git_show_#{rev}") }
|
76
79
|
end
|
77
80
|
end
|
78
81
|
|
@@ -1,72 +1,100 @@
|
|
1
1
|
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
require 'tempfile'
|
2
3
|
require 'nokogiri'
|
3
4
|
require 'git_commit_notifier'
|
4
5
|
|
5
6
|
describe GitCommitNotifier::DiffToHtml do
|
6
7
|
|
8
|
+
describe :new_file_rights do
|
9
|
+
before(:all) do
|
10
|
+
@diff_to_html = GitCommitNotifier::DiffToHtml.new
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should be DEFAULT_NEW_FILE_RIGHTS unless get stats of git config file" do
|
14
|
+
mock(File).stat(File.expand_path(GitCommitNotifier::DiffToHtml::GIT_CONFIG_FILE, '.')) { raise Errno::ENOENT.new('') }
|
15
|
+
@diff_to_html.new_file_rights.should == GitCommitNotifier::DiffToHtml::DEFAULT_NEW_FILE_RIGHTS
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should be rights of git config file if exists" do
|
19
|
+
stats = mock!.mode { 0444 }.subject
|
20
|
+
mock(File).stat(File.expand_path(GitCommitNotifier::DiffToHtml::GIT_CONFIG_FILE, '.')) { stats }
|
21
|
+
@diff_to_html.new_file_rights.should == 0444
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe :chmod do
|
26
|
+
it "should not raise anything and set mode from stats mode" do
|
27
|
+
file = Tempfile.new('stattest')
|
28
|
+
file.close
|
29
|
+
lambda do
|
30
|
+
File.chmod(File.stat(file.path).mode, file.path)
|
31
|
+
end.should_not raise_error
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
7
35
|
describe :lines_are_sequential? do
|
8
36
|
before(:all) do
|
9
37
|
@diff_to_html = GitCommitNotifier::DiffToHtml.new
|
10
38
|
end
|
11
39
|
|
12
40
|
it "should be true if left line numbers are sequential" do
|
13
|
-
@diff_to_html.
|
41
|
+
@diff_to_html.should be_lines_are_sequential({
|
14
42
|
:added => 2,
|
15
43
|
:removed => 2
|
16
44
|
}, {
|
17
45
|
:added => 3,
|
18
46
|
:removed => 6
|
19
|
-
})
|
47
|
+
})
|
20
48
|
end
|
21
49
|
|
22
50
|
it "should be true if right line numbers are sequential" do
|
23
|
-
@diff_to_html.
|
51
|
+
@diff_to_html.should be_lines_are_sequential({
|
24
52
|
:added => 2,
|
25
53
|
:removed => 2
|
26
54
|
}, {
|
27
55
|
:added => 7,
|
28
56
|
:removed => 3
|
29
|
-
})
|
57
|
+
})
|
30
58
|
end
|
31
59
|
|
32
60
|
it "should be false unless line numbers are sequential" do
|
33
|
-
@diff_to_html.
|
61
|
+
@diff_to_html.should_not be_lines_are_sequential({
|
34
62
|
:added => 2,
|
35
63
|
:removed => 2
|
36
64
|
}, {
|
37
65
|
:added => 4,
|
38
66
|
:removed => 6
|
39
|
-
})
|
67
|
+
})
|
40
68
|
end
|
41
69
|
|
42
70
|
it "should be true if left line numbers are sequential (right are nil)" do
|
43
|
-
@diff_to_html.
|
71
|
+
@diff_to_html.should be_lines_are_sequential({
|
44
72
|
:added => 2,
|
45
73
|
:removed => 2
|
46
74
|
}, {
|
47
75
|
:added => 3,
|
48
76
|
:removed => nil
|
49
|
-
})
|
77
|
+
})
|
50
78
|
end
|
51
79
|
|
52
80
|
it "should be true if right line numbers are sequential (left are nil)" do
|
53
|
-
@diff_to_html.
|
81
|
+
@diff_to_html.should be_lines_are_sequential({
|
54
82
|
:added => nil,
|
55
83
|
:removed => 2
|
56
84
|
}, {
|
57
85
|
:added => 7,
|
58
86
|
:removed => 3
|
59
|
-
})
|
87
|
+
})
|
60
88
|
end
|
61
89
|
|
62
90
|
it "should be false unless line numbers are sequential (nils)" do
|
63
|
-
@diff_to_html.
|
91
|
+
@diff_to_html.should_not be_lines_are_sequential({
|
64
92
|
:added => nil,
|
65
93
|
:removed => nil
|
66
94
|
}, {
|
67
95
|
:added => 4,
|
68
96
|
:removed => 6
|
69
|
-
})
|
97
|
+
})
|
70
98
|
end
|
71
99
|
end
|
72
100
|
|
@@ -98,9 +126,10 @@ describe GitCommitNotifier::DiffToHtml do
|
|
98
126
|
end
|
99
127
|
|
100
128
|
it "multiple commits" do
|
129
|
+
mock(GitCommitNotifier::Git).changed_files('7e4f6b4', '4f13525') { [] }
|
101
130
|
mock(GitCommitNotifier::Git).log(REVISIONS.first, REVISIONS.last) { IO.read(FIXTURES_PATH + 'git_log') }
|
102
131
|
REVISIONS.each do |rev|
|
103
|
-
mock(GitCommitNotifier::Git).show(rev) { IO.read(FIXTURES_PATH + 'git_show_' + rev) }
|
132
|
+
mock(GitCommitNotifier::Git).show(rev, true) { IO.read(FIXTURES_PATH + 'git_show_' + rev) }
|
104
133
|
end
|
105
134
|
|
106
135
|
diff = GitCommitNotifier::DiffToHtml.new
|
@@ -131,7 +160,8 @@ describe GitCommitNotifier::DiffToHtml do
|
|
131
160
|
|
132
161
|
# third commit - dce6ade4cdc2833b53bd600ef10f9bce83c7102d
|
133
162
|
hp = Nokogiri::HTML diff.result[2][:html_content]
|
134
|
-
(hp/"
|
163
|
+
(hp/"h2").should have(6).headers # 6 files in commit
|
164
|
+
(hp/"table").should have(4).tables # 4 files updated
|
135
165
|
(hp/"h2")[1].inner_text.should == 'Added binary file railties/doc/guides/source/images/icons/callouts/11.png'
|
136
166
|
(hp/"h2")[2].inner_text.should == 'Deleted binary file railties/doc/guides/source/icons/up.png'
|
137
167
|
(hp/"h2")[3].inner_text.should == 'Deleted file railties/doc/guides/source/icons/README'
|
@@ -152,7 +182,7 @@ describe GitCommitNotifier::DiffToHtml do
|
|
152
182
|
first_rev, last_rev = %w[ 0000000000000000000000000000000000000000 9b15cebcc5434e27c00a4a2acea43509f9faea21 ]
|
153
183
|
mock(GitCommitNotifier::Git).branch_commits('rvm') { %w[ ff037a73fc1094455e7bbf506171a3f3cf873ae6 ] }
|
154
184
|
%w[ ff037a73fc1094455e7bbf506171a3f3cf873ae6 ].each do |rev|
|
155
|
-
mock(GitCommitNotifier::Git).show(rev) { IO.read(FIXTURES_PATH + 'git_show_' + rev) }
|
185
|
+
mock(GitCommitNotifier::Git).show(rev, true) { IO.read(FIXTURES_PATH + 'git_show_' + rev) }
|
156
186
|
end
|
157
187
|
diff = GitCommitNotifier::DiffToHtml.new
|
158
188
|
mock(diff).check_handled_commits(anything) { |commits| commits }
|
@@ -12,15 +12,21 @@ describe GitCommitNotifier::Git do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
describe :show do
|
15
|
-
it "should get data from shell: git show" do
|
15
|
+
it "should get data from shell: git show without whitespaces" do
|
16
16
|
expected = 'some data from git show'
|
17
17
|
mock(GitCommitNotifier::Git).from_shell("git show #{SAMPLE_REV} -w") { expected }
|
18
|
-
GitCommitNotifier::Git.show(SAMPLE_REV).should == expected
|
18
|
+
GitCommitNotifier::Git.show(SAMPLE_REV, true).should == expected
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should get data from shell: git show with whitespaces" do
|
22
|
+
expected = 'some data from git show'
|
23
|
+
mock(GitCommitNotifier::Git).from_shell("git show #{SAMPLE_REV}") { expected }
|
24
|
+
GitCommitNotifier::Git.show(SAMPLE_REV, false).should == expected
|
19
25
|
end
|
20
26
|
|
21
27
|
it "should strip given revision" do
|
22
28
|
mock(GitCommitNotifier::Git).from_shell("git show #{SAMPLE_REV} -w")
|
23
|
-
GitCommitNotifier::Git.show("#{SAMPLE_REV}\n")
|
29
|
+
GitCommitNotifier::Git.show("#{SAMPLE_REV}\n", true)
|
24
30
|
end
|
25
31
|
end
|
26
32
|
|
@@ -86,4 +92,13 @@ describe GitCommitNotifier::Git do
|
|
86
92
|
end
|
87
93
|
end
|
88
94
|
|
95
|
+
describe :changed_files do
|
96
|
+
it "should run git log --name-status --oneline with given args and strip out the result" do
|
97
|
+
files = ["M README.rdoc\n",
|
98
|
+
"D git_commit_notifier/Rakefile\n",
|
99
|
+
"M post-receive\n"]
|
100
|
+
mock(GitCommitNotifier::Git).from_shell("git log #{SAMPLE_REV}..#{SAMPLE_REV_2} --name-status --oneline" ) { IO.read(FIXTURES_PATH + 'git_log_name_status') }
|
101
|
+
GitCommitNotifier::Git.changed_files(SAMPLE_REV, SAMPLE_REV_2).should == files
|
102
|
+
end
|
103
|
+
end
|
89
104
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,164 +1,166 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: git-commit-notifier
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.10.0
|
4
5
|
prerelease:
|
5
|
-
version: 0.9.2
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Bodo Tasche
|
9
|
+
- Akzhan Abdulin
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
13
|
+
date: 2011-09-03 00:00:00.000000000 +02:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
16
17
|
name: diff-lcs
|
17
|
-
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
18
|
+
requirement: &70356965199120 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
|
-
requirements:
|
21
|
-
- -
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version:
|
20
|
+
requirements:
|
21
|
+
- - ! '>='
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '0'
|
24
24
|
type: :runtime
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: nntp
|
28
25
|
prerelease: false
|
29
|
-
|
26
|
+
version_requirements: *70356965199120
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: nntp
|
29
|
+
requirement: &70356965198640 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version:
|
31
|
+
requirements:
|
32
|
+
- - ! '>='
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
35
|
type: :runtime
|
36
|
-
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: premailer
|
39
36
|
prerelease: false
|
40
|
-
|
37
|
+
version_requirements: *70356965198640
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: premailer
|
40
|
+
requirement: &70356965198160 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
45
|
version: 1.7.1
|
46
46
|
type: :runtime
|
47
|
-
version_requirements: *id003
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: nokogiri
|
50
47
|
prerelease: false
|
51
|
-
|
48
|
+
version_requirements: *70356965198160
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: nokogiri
|
51
|
+
requirement: &70356965197680 !ruby/object:Gem::Requirement
|
52
52
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
53
|
+
requirements:
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
56
|
version: 1.4.4
|
57
57
|
type: :runtime
|
58
|
-
version_requirements: *id004
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
|
-
name: bundler
|
61
58
|
prerelease: false
|
62
|
-
|
59
|
+
version_requirements: *70356965197680
|
60
|
+
- !ruby/object:Gem::Dependency
|
61
|
+
name: rake
|
62
|
+
requirement: &70356965197200 !ruby/object:Gem::Requirement
|
63
63
|
none: false
|
64
|
-
requirements:
|
65
|
-
- -
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version:
|
64
|
+
requirements:
|
65
|
+
- - ! '!='
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: 0.9.0
|
68
68
|
type: :development
|
69
|
-
version_requirements: *id005
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: code-cleaner
|
72
69
|
prerelease: false
|
73
|
-
|
70
|
+
version_requirements: *70356965197200
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: bundler
|
73
|
+
requirement: &70356965196720 !ruby/object:Gem::Requirement
|
74
74
|
none: false
|
75
|
-
requirements:
|
76
|
-
- -
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version:
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: 1.0.10
|
79
79
|
type: :development
|
80
|
-
version_requirements: *id006
|
81
|
-
- !ruby/object:Gem::Dependency
|
82
|
-
name: rspec-core
|
83
80
|
prerelease: false
|
84
|
-
|
81
|
+
version_requirements: *70356965196720
|
82
|
+
- !ruby/object:Gem::Dependency
|
83
|
+
name: code-cleaner
|
84
|
+
requirement: &70356965196240 !ruby/object:Gem::Requirement
|
85
85
|
none: false
|
86
|
-
requirements:
|
87
|
-
- -
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version:
|
86
|
+
requirements:
|
87
|
+
- - ! '>='
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
90
|
type: :development
|
91
|
-
version_requirements: *id007
|
92
|
-
- !ruby/object:Gem::Dependency
|
93
|
-
name: rspec-expectations
|
94
91
|
prerelease: false
|
95
|
-
|
92
|
+
version_requirements: *70356965196240
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: rspec-core
|
95
|
+
requirement: &70356965195760 !ruby/object:Gem::Requirement
|
96
96
|
none: false
|
97
|
-
requirements:
|
98
|
-
- -
|
99
|
-
- !ruby/object:Gem::Version
|
100
|
-
version:
|
97
|
+
requirements:
|
98
|
+
- - ! '>='
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0'
|
101
101
|
type: :development
|
102
|
-
version_requirements: *id008
|
103
|
-
- !ruby/object:Gem::Dependency
|
104
|
-
name: rr
|
105
102
|
prerelease: false
|
106
|
-
|
103
|
+
version_requirements: *70356965195760
|
104
|
+
- !ruby/object:Gem::Dependency
|
105
|
+
name: rspec-expectations
|
106
|
+
requirement: &70356965195280 !ruby/object:Gem::Requirement
|
107
107
|
none: false
|
108
|
-
requirements:
|
109
|
-
- -
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version:
|
108
|
+
requirements:
|
109
|
+
- - ! '>='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
112
|
type: :development
|
113
|
-
version_requirements: *id009
|
114
|
-
- !ruby/object:Gem::Dependency
|
115
|
-
name: faker
|
116
113
|
prerelease: false
|
117
|
-
|
114
|
+
version_requirements: *70356965195280
|
115
|
+
- !ruby/object:Gem::Dependency
|
116
|
+
name: rr
|
117
|
+
requirement: &70356969054480 !ruby/object:Gem::Requirement
|
118
118
|
none: false
|
119
|
-
requirements:
|
120
|
-
- -
|
121
|
-
- !ruby/object:Gem::Version
|
122
|
-
version:
|
119
|
+
requirements:
|
120
|
+
- - ! '>='
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0'
|
123
123
|
type: :development
|
124
|
-
version_requirements: *id010
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rcov
|
127
124
|
prerelease: false
|
128
|
-
|
125
|
+
version_requirements: *70356969054480
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: faker
|
128
|
+
requirement: &70356969054000 !ruby/object:Gem::Requirement
|
129
129
|
none: false
|
130
|
-
requirements:
|
131
|
-
- -
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version:
|
130
|
+
requirements:
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
134
134
|
type: :development
|
135
|
-
version_requirements: *id011
|
136
|
-
- !ruby/object:Gem::Dependency
|
137
|
-
name: metric_fu
|
138
135
|
prerelease: false
|
139
|
-
|
136
|
+
version_requirements: *70356969054000
|
137
|
+
- !ruby/object:Gem::Dependency
|
138
|
+
name: rcov
|
139
|
+
requirement: &70356969053520 !ruby/object:Gem::Requirement
|
140
140
|
none: false
|
141
|
-
requirements:
|
142
|
-
- -
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version:
|
141
|
+
requirements:
|
142
|
+
- - ! '>='
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
145
|
type: :development
|
146
|
-
|
147
|
-
|
146
|
+
prerelease: false
|
147
|
+
version_requirements: *70356969053520
|
148
|
+
description: This git commit notifier sends html mails with nice diffs for every changed
|
149
|
+
file.
|
148
150
|
email: bodo@bitboxer.de
|
149
|
-
executables:
|
151
|
+
executables:
|
150
152
|
- git-commit-notifier
|
151
153
|
extensions: []
|
152
|
-
|
153
|
-
extra_rdoc_files:
|
154
|
+
extra_rdoc_files:
|
154
155
|
- LICENSE
|
155
|
-
- README.
|
156
|
-
files:
|
156
|
+
- README.md
|
157
|
+
files:
|
157
158
|
- .gitignore
|
158
159
|
- .rspec
|
160
|
+
- .travis.yml
|
159
161
|
- Gemfile
|
160
162
|
- LICENSE
|
161
|
-
- README.
|
163
|
+
- README.md
|
162
164
|
- Rakefile
|
163
165
|
- VERSION
|
164
166
|
- bin/git-commit-notifier
|
@@ -181,6 +183,7 @@ files:
|
|
181
183
|
- spec/fixtures/git-notifier-with-branch-restrictions.yml
|
182
184
|
- spec/fixtures/git-notifier-with-merge.yml
|
183
185
|
- spec/fixtures/git_log
|
186
|
+
- spec/fixtures/git_log_name_status
|
184
187
|
- spec/fixtures/git_show_055850e7d925110322b8db4e17c3b840d76e144c
|
185
188
|
- spec/fixtures/git_show_51b986619d88f7ba98be7d271188785cbbb541a0
|
186
189
|
- spec/fixtures/git_show_a4629e707d80a5769f7a71ca6ed9471015e14dc9
|
@@ -197,40 +200,42 @@ files:
|
|
197
200
|
- spec/spec_helper.rb
|
198
201
|
- template/email.html.erb
|
199
202
|
- template/styles.css
|
203
|
+
has_rdoc: true
|
200
204
|
homepage: http://github.com/bitboxer/git-commit-notifier
|
201
205
|
licenses: []
|
202
|
-
|
203
206
|
post_install_message:
|
204
207
|
rdoc_options: []
|
205
|
-
|
206
|
-
require_paths:
|
208
|
+
require_paths:
|
207
209
|
- lib
|
208
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
210
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
209
211
|
none: false
|
210
|
-
requirements:
|
211
|
-
- -
|
212
|
-
- !ruby/object:Gem::Version
|
213
|
-
version:
|
214
|
-
|
212
|
+
requirements:
|
213
|
+
- - ! '>='
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
segments:
|
217
|
+
- 0
|
218
|
+
hash: 1995003777923227847
|
219
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
215
220
|
none: false
|
216
|
-
requirements:
|
217
|
-
- -
|
218
|
-
- !ruby/object:Gem::Version
|
219
|
-
version:
|
221
|
+
requirements:
|
222
|
+
- - ! '>='
|
223
|
+
- !ruby/object:Gem::Version
|
224
|
+
version: '0'
|
220
225
|
requirements: []
|
221
|
-
|
222
226
|
rubyforge_project:
|
223
|
-
rubygems_version: 1.
|
227
|
+
rubygems_version: 1.6.2
|
224
228
|
signing_key:
|
225
229
|
specification_version: 3
|
226
230
|
summary: Sends git commit messages with diffs
|
227
|
-
test_files:
|
231
|
+
test_files:
|
228
232
|
- spec/fixtures/existing_file_one_line.txt
|
229
233
|
- spec/fixtures/git-notifier-group-email-by-push.yml
|
230
234
|
- spec/fixtures/git-notifier-ignore-merge.yml
|
231
235
|
- spec/fixtures/git-notifier-with-branch-restrictions.yml
|
232
236
|
- spec/fixtures/git-notifier-with-merge.yml
|
233
237
|
- spec/fixtures/git_log
|
238
|
+
- spec/fixtures/git_log_name_status
|
234
239
|
- spec/fixtures/git_show_055850e7d925110322b8db4e17c3b840d76e144c
|
235
240
|
- spec/fixtures/git_show_51b986619d88f7ba98be7d271188785cbbb541a0
|
236
241
|
- spec/fixtures/git_show_a4629e707d80a5769f7a71ca6ed9471015e14dc9
|
@@ -245,4 +250,3 @@ test_files:
|
|
245
250
|
- spec/lib/git_commit_notifier/logger_spec.rb
|
246
251
|
- spec/lib/git_commit_notifier/result_processor_spec.rb
|
247
252
|
- spec/spec_helper.rb
|
248
|
-
has_rdoc:
|