git-commit-notifier 0.5.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2008 Csoma Zoltan, Primalgrasp
1
+ Copyright (c) 2008, 2010 Bodo Tasche, Csoma Zoltan, Primalgrasp
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person
4
4
  obtaining a copy of this software and associated documentation
data/README.textile CHANGED
@@ -33,12 +33,6 @@ h1. Requirements
33
33
 
34
34
  h1. Installing and Configuring
35
35
 
36
- Before installing the Git Commit Notification script, make sure the following
37
- Git settings are configured correctly.
38
-
39
- * git config hooks.mailinglist (email address of the recipient, probably your mailing list address)
40
- * __Optional:__ git config hooks.emailprefix (application name, used in email subject)
41
-
42
36
  Install the gem:
43
37
 
44
38
  <pre>sudo gem install git-commit-notifier</pre>
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.0
1
+ 0.6.1
@@ -1,5 +1,12 @@
1
- delivery_method: sendmail # smtp or sendmail
2
1
  ignore_merge: false # set to true if you want to ignore empty merge messages
2
+ mailinglist: developers@example.com # recipient for the commit mail
3
+
4
+ # Optional parameter for the subject-line of the mail
5
+ # emailprefix: GIT
6
+
7
+ link_files: none # Decorates files with link to a webview. Possible values: none or gitweb
8
+
9
+ delivery_method: sendmail # smtp or sendmail
3
10
 
4
11
  smtp_server:
5
12
  address: localhost
@@ -14,4 +21,6 @@ sendmail_options:
14
21
  location: /usr/sbin/sendmail
15
22
  arguments:
16
23
 
17
-
24
+ gitweb:
25
+ path: http://developerserver/path_to_gitweb
26
+ project: test.git
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{git-commit-notifier}
8
- s.version = "0.5.0"
8
+ s.version = "0.6.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Bodo Tasche"]
12
- s.date = %q{2010-03-26}
12
+ s.date = %q{2010-03-29}
13
13
  s.default_executable = %q{git-commit-notifier}
14
14
  s.description = %q{This git commit notifier sends html mails with nice diffs for every changed file.}
15
15
  s.email = %q{bodo@wannawork.de}
data/lib/commit_hook.rb CHANGED
@@ -18,8 +18,11 @@ class CommitHook
18
18
  end
19
19
 
20
20
  def self.run(config, rev1, rev2, ref_name)
21
+ @config = {}
22
+ @config = YAML::load_file(config) if File.exist?(config)
23
+
21
24
  project_path = Dir.getwd
22
- recipient = Git.mailing_list_address
25
+ recipient = @config["mailinglist"] || Git.mailing_list_address
23
26
 
24
27
  if (recipient.nil? || recipient.length == 0)
25
28
  CommitHook.show_error(
@@ -31,13 +34,10 @@ class CommitHook
31
34
  puts "Sending mail..."
32
35
  STDOUT.flush
33
36
 
34
- prefix = Git.repo_name
37
+ prefix = @config["emailprefix"] || Git.repo_name
35
38
  branch_name = (ref_name =~ /master$/i) ? "" : "/#{ref_name.split("/").last}"
36
39
 
37
- @config = {}
38
- @config = YAML::load_file(config) if File.exist?(config)
39
-
40
- diff2html = DiffToHtml.new(Dir.pwd)
40
+ diff2html = DiffToHtml.new(Dir.pwd, @config)
41
41
  diff2html.diff_between_revisions rev1, rev2, prefix, ref_name
42
42
 
43
43
  diffresult = diff2html.result
data/lib/diff_to_html.rb CHANGED
@@ -7,11 +7,12 @@ def escape_content(s)
7
7
  end
8
8
 
9
9
  class DiffToHtml
10
- attr_accessor :file_prefix
10
+ attr_accessor :file_prefix, :current_file_name
11
11
  attr_reader :result
12
12
 
13
- def initialize(config_dir = nil)
14
- @previous_dir = config_dir
13
+ def initialize(previous_dir = nil, config = nil)
14
+ @previous_dir = previous_dir
15
+ @config = config || {}
15
16
  end
16
17
 
17
18
  def range_info(range)
@@ -107,7 +108,14 @@ class DiffToHtml
107
108
  else
108
109
  op = "Changed"
109
110
  end
110
- header = "#{op} #{binary}file #{@current_file_name}"
111
+
112
+ file_name = @current_file_name
113
+
114
+ if (@config["link_files"] && @config["link_files"] == "gitweb" && @config["gitweb"])
115
+ file_name = "<a href='#{@config['gitweb']['path']}/gitweb?p=#{@config['gitweb']['project']};f=#{file_name};hb=head'>#{file_name}</a>"
116
+ end
117
+
118
+ header = "#{op} #{binary}file #{file_name}"
111
119
  "<h2>#{header}</h2>\n"
112
120
  end
113
121
 
@@ -286,7 +294,7 @@ class DiffToHtml
286
294
 
287
295
  title = "<div class=\"title\">"
288
296
  title += "<strong>Message:</strong> #{message_array_as_html commit_info[:message]}<br />\n"
289
- title += "<strong>Commit</strong> #{commit_info[:commit]}<br />\n"
297
+ title += "<strong>Commit:</strong> #{commit_info[:commit]}<br />\n"
290
298
  title += "<strong>Branch:</strong> #{branch}\n<br />" unless branch =~ /\/head/
291
299
  title += "<strong>Date:</strong> #{CGI.escapeHTML commit_info[:date]}\n<br />"
292
300
  title += "<strong>Author:</strong> #{CGI.escapeHTML(commit_info[:author])} &lt;#{commit_info[:email]}&gt;\n</div>"
data/lib/emailer.rb CHANGED
@@ -5,8 +5,7 @@ require 'tamtam'
5
5
  class Emailer
6
6
 
7
7
  def initialize(config, project_path, recipient, from_address, from_alias, subject, text_message, html_diff, old_rev, new_rev, ref_name)
8
- @config = config
9
- @config ||= {}
8
+ @config = config || {}
10
9
  @project_path = project_path
11
10
  @recipient = recipient
12
11
  @from_address = from_address
@@ -94,4 +94,23 @@ class DiffToHtmlTest < Test::Unit::TestCase
94
94
  'key',',',' ','scope'], tokens
95
95
  end
96
96
 
97
+ def test_operation_description
98
+ diff = DiffToHtml.new
99
+ diff.current_file_name = "file/to/test.yml"
100
+ assert_equal "<h2>Changed file file/to/test.yml</h2>\n", diff.operation_description
101
+
102
+ config = {
103
+ "link_files" => "gitweb",
104
+ "gitweb" => {
105
+ "path" => "http://developerserver/path_to_gitweb",
106
+ "project" => "test.git"
107
+ }
108
+ }
109
+
110
+ diff = DiffToHtml.new(nil, config)
111
+ diff.current_file_name = "file/to/test.yml"
112
+ assert_equal "<h2>Changed file <a href='http://developerserver/path_to_gitweb/gitweb?p=test.git;f=file/to/test.yml;hb=head'>file/to/test.yml</a></h2>\n", diff.operation_description
113
+
114
+ end
115
+
97
116
  end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 5
8
- - 0
9
- version: 0.5.0
7
+ - 6
8
+ - 1
9
+ version: 0.6.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Bodo Tasche
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-03-26 00:00:00 +01:00
17
+ date: 2010-03-29 00:00:00 +02:00
18
18
  default_executable: git-commit-notifier
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency