gitreport 0.0.7 → 0.0.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.
- data/VERSION +1 -1
- data/bin/gitreport +4 -4
- data/gitreport.gemspec +4 -3
- data/lib/batch_sender.rb +5 -46
- data/lib/commit.rb +1 -1
- data/lib/{logger.rb → g_logger.rb} +2 -2
- data/lib/generic_sender.rb +44 -0
- data/lib/gitreport.rb +4 -1
- data/lib/hook.rb +5 -5
- data/lib/sender.rb +5 -50
- data/spec/models/commit_spec.rb +2 -2
- data/spec/models/hook_spec.rb +3 -3
- metadata +21 -20
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.8
|
data/bin/gitreport
CHANGED
@@ -5,7 +5,7 @@ require "rubygems"
|
|
5
5
|
require 'trollop'
|
6
6
|
require "gitreport"
|
7
7
|
|
8
|
-
SUB_COMMANDS = %w(activate deactivate commit sync
|
8
|
+
SUB_COMMANDS = %w(activate deactivate commit sync import)
|
9
9
|
|
10
10
|
def parse_options
|
11
11
|
|
@@ -15,7 +15,7 @@ gitreport is a commandline tool to synchronize your git repo's with gitreport.co
|
|
15
15
|
|
16
16
|
Usage: gitreport <subcommand> [options]
|
17
17
|
|
18
|
-
<subcommand> must be one of activate, deactivate, commit, sync,
|
18
|
+
<subcommand> must be one of activate, deactivate, commit, sync, import
|
19
19
|
|
20
20
|
Examples:
|
21
21
|
|
@@ -23,7 +23,7 @@ gitreport activate - register your project with gitreport.com
|
|
23
23
|
gitreport deactivate - unregister your project from gitreport.com
|
24
24
|
gitreport commit - manually transfer your last and stored (offline) commits to gitreport.com
|
25
25
|
gitreport sync - manually transfer stored (offline) commits to gitreport.com
|
26
|
-
gitreport
|
26
|
+
gitreport import - import all the commits of a project to gitreport.com
|
27
27
|
|
28
28
|
gitreport allows the folling [options]:
|
29
29
|
EOS
|
@@ -48,7 +48,7 @@ gitreport allows the folling [options]:
|
|
48
48
|
GitReport::Sender.send! :last_and_stored
|
49
49
|
when "sync"
|
50
50
|
GitReport::Sender.send! :stored
|
51
|
-
when "
|
51
|
+
when "import"
|
52
52
|
GitReport::BatchSender.send! :history
|
53
53
|
else
|
54
54
|
Trollop::die "unknown subcommand #{cmd.inspect}"
|
data/gitreport.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "gitreport"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.8"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jan Roesner"]
|
12
|
-
s.date = "2011-10-
|
12
|
+
s.date = "2011-10-28"
|
13
13
|
s.description = "gitreport keeps track of your projects. It collects info about commited and pushed data, submits it to our servers and provides a gorgous frontend to examine, discover and extract the data that you need to generate the payment recipes for your customers. No longer searching or `what did I commit when and where`..."
|
14
14
|
s.email = "jan@roesner.it"
|
15
15
|
s.executables = ["gitreport"]
|
@@ -31,6 +31,8 @@ Gem::Specification.new do |s|
|
|
31
31
|
"lib/commit.rb",
|
32
32
|
"lib/configuration.rb",
|
33
33
|
"lib/current_branch.rb",
|
34
|
+
"lib/g_logger.rb",
|
35
|
+
"lib/generic_sender.rb",
|
34
36
|
"lib/git.rb",
|
35
37
|
"lib/git/author.rb",
|
36
38
|
"lib/git/base.rb",
|
@@ -53,7 +55,6 @@ Gem::Specification.new do |s|
|
|
53
55
|
"lib/history.rb",
|
54
56
|
"lib/hook.rb",
|
55
57
|
"lib/log.rb",
|
56
|
-
"lib/logger.rb",
|
57
58
|
"lib/project.rb",
|
58
59
|
"lib/sender.rb",
|
59
60
|
"lib/storage.rb",
|
data/lib/batch_sender.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module GitReport
|
2
2
|
|
3
|
-
class BatchSender
|
3
|
+
class BatchSender < GenericSender
|
4
4
|
|
5
5
|
# send the given commits chunked
|
6
6
|
def self.send! option = nil
|
@@ -36,6 +36,7 @@ module GitReport
|
|
36
36
|
|
37
37
|
# sends the commit batch data to the server
|
38
38
|
def self.send_data! batch, options = nil
|
39
|
+
grlog(1, 'send_data started')
|
39
40
|
begin
|
40
41
|
response = Net::HTTP.Proxy(configuration.proxy_host, configuration.proxy_port).start(configuration.host, configuration.port) do |http|
|
41
42
|
request = Net::HTTP::Post.new(request_path options)
|
@@ -45,40 +46,11 @@ module GitReport
|
|
45
46
|
http.read_timeout = configuration.timeout
|
46
47
|
http.request request unless GitReport.global_opts[:dry_run]
|
47
48
|
end
|
49
|
+
grlog(1, response ? "send_data responded with #{response.code}" : "send_data had no response")
|
48
50
|
raise GitReport::ServerError unless (response.code == "200" or response.code == "401") unless GitReport.global_opts[:dry_run]
|
49
51
|
rescue Exception => e
|
50
|
-
|
51
|
-
|
52
|
-
if GitReport.global_opts[:trace]
|
53
|
-
puts "Exception: #{e}\n"
|
54
|
-
puts "Message: #{JSON.parse(response.body)["message"]}\n"
|
55
|
-
else
|
56
|
-
puts "Run with --trace to get more info."
|
57
|
-
end
|
58
|
-
grlog(0 ,'send_data! - A server error occured during data transfer.')
|
59
|
-
grlog(0, "send_data! - Exception: #{e}")
|
60
|
-
grlog(0, "send_data! - Message: #{JSON.parse(response.body)["message"]}") if response
|
61
|
-
exit
|
62
|
-
else
|
63
|
-
puts "A client error occured during data transfer."
|
64
|
-
if GitReport.global_opts[:trace]
|
65
|
-
puts "Exception: #{e}\n"
|
66
|
-
e.backtrace.each do |line|
|
67
|
-
puts "#{line}\n"
|
68
|
-
end
|
69
|
-
else
|
70
|
-
puts "Run with --trace to get more info."
|
71
|
-
end
|
72
|
-
grlog(0, "send_data! - A client error occures during data transfer.")
|
73
|
-
grlog(0, "send_data! - Exception: #{e}")
|
74
|
-
grlog(0, "send_data! - Backtrace:")
|
75
|
-
e.backtrace.each do |line|
|
76
|
-
grlog(0, line)
|
77
|
-
end
|
78
|
-
exit
|
79
|
-
end
|
80
|
-
|
81
|
-
return false
|
52
|
+
communicate e, response
|
53
|
+
exit
|
82
54
|
end
|
83
55
|
|
84
56
|
true
|
@@ -93,24 +65,11 @@ module GitReport
|
|
93
65
|
}.to_json
|
94
66
|
end
|
95
67
|
|
96
|
-
# returns configuration object
|
97
|
-
def self.configuration
|
98
|
-
@@configuration ||= GitReport.configuration
|
99
|
-
end
|
100
|
-
|
101
68
|
# returns the request path
|
102
69
|
def self.request_path options
|
103
70
|
@@path ||= "/v#{configuration.api_version}/projects"
|
104
71
|
end
|
105
72
|
|
106
|
-
# returns the default headers
|
107
|
-
def self.headers request
|
108
|
-
request['User-Agent'] = 'gitreport-client-ruby'
|
109
|
-
request['Content-Type'] = 'application/json'
|
110
|
-
request['Accept'] = 'application/json'
|
111
|
-
request['X-gitreport-Auth-Token'] = configuration.auth_token
|
112
|
-
end
|
113
|
-
|
114
73
|
end
|
115
74
|
|
116
75
|
end
|
data/lib/commit.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
module GitReport
|
2
2
|
|
3
|
-
class
|
3
|
+
class GLogger
|
4
4
|
|
5
5
|
# logs the given message in case the given level is less or equal the configured log level
|
6
6
|
def self.log level, message
|
@@ -13,7 +13,7 @@ module GitReport
|
|
13
13
|
# provides method grlog in every class
|
14
14
|
class << self.superclass
|
15
15
|
def grlog level, message
|
16
|
-
::GitReport::
|
16
|
+
::GitReport::GLogger.log level, Time.now.to_s + " - " + self.to_s + " #" + message
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -0,0 +1,44 @@
|
|
1
|
+
class GenericSender
|
2
|
+
|
3
|
+
# logs and puts the error according to its conditions and configuration
|
4
|
+
# TODO refactor me!
|
5
|
+
def self.communicate exception, response
|
6
|
+
both, cmd, log = [], [], []
|
7
|
+
if exception.is_a?(GitReport::ServerError)
|
8
|
+
@error_type = "server error"
|
9
|
+
@details = JSON.parse(response.body)["message"] rescue response.body
|
10
|
+
else
|
11
|
+
@error_type = "client error"
|
12
|
+
@details = exception.backtrace
|
13
|
+
end
|
14
|
+
both << "A #{@error_type} occured during data transfer."
|
15
|
+
both << "Exception: #{exception}"
|
16
|
+
if GitReport.global_opts[:trace]
|
17
|
+
cmd << @details
|
18
|
+
else
|
19
|
+
cmd << "Run with --trace to get more info."
|
20
|
+
end
|
21
|
+
log << @details
|
22
|
+
puts (both + cmd).join("\n")
|
23
|
+
(both + log).each{ |line| grlog(0, "send_data! #{line}")}
|
24
|
+
end
|
25
|
+
|
26
|
+
# returns local storage
|
27
|
+
def self.storage
|
28
|
+
@@storage ||= GitReport::Storage.new(ENV['HOME'], '.gitreport_storage')
|
29
|
+
end
|
30
|
+
|
31
|
+
# returns configuration object
|
32
|
+
def self.configuration
|
33
|
+
@@configuration ||= GitReport.configuration
|
34
|
+
end
|
35
|
+
|
36
|
+
# returns the default headers
|
37
|
+
def self.headers request
|
38
|
+
request['User-Agent'] = 'gitreport-client-ruby'
|
39
|
+
request['Content-Type'] = 'application/json'
|
40
|
+
request['Accept'] = 'application/json'
|
41
|
+
request['X-gitreport-Auth-Token'] = configuration.auth_token
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
data/lib/gitreport.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require '
|
1
|
+
require 'g_logger'
|
2
2
|
require 'git'
|
3
3
|
require 'json'
|
4
4
|
require 'net/http'
|
@@ -11,6 +11,7 @@ require 'commit'
|
|
11
11
|
require 'history'
|
12
12
|
require 'configuration'
|
13
13
|
require 'git_configuration'
|
14
|
+
require 'generic_sender'
|
14
15
|
require 'sender'
|
15
16
|
require 'batch_sender'
|
16
17
|
require 'storage'
|
@@ -19,6 +20,8 @@ require 'supplier'
|
|
19
20
|
|
20
21
|
module GitReport
|
21
22
|
|
23
|
+
@@global_opts ||= nil
|
24
|
+
|
22
25
|
class ServerError < StandardError;end
|
23
26
|
|
24
27
|
# mattr_reader
|
data/lib/hook.rb
CHANGED
@@ -54,7 +54,7 @@ module GitReport
|
|
54
54
|
|
55
55
|
# returns true if the hook file already has a hook line in
|
56
56
|
def self.line_exists?
|
57
|
-
if file_content.match(/
|
57
|
+
if file_content.match(/nohup\sbundle\sexec\sgitreport\scommit\s>\s\/dev\/null\s2>\s\/dev\/null\s<\s\/dev\/null\s&/)
|
58
58
|
return true
|
59
59
|
end
|
60
60
|
|
@@ -76,7 +76,7 @@ module GitReport
|
|
76
76
|
"#!/bin/sh\n" +
|
77
77
|
"# This is a post-commit hook created by gitreport (http://gitreport.com)\n" +
|
78
78
|
"#\n" +
|
79
|
-
"# To remove it issue 'bundle exec
|
79
|
+
"# To remove it issue 'bundle exec deactivate' in the projects main directory\n" +
|
80
80
|
"# In case the gitreport gem is not installed anymore, simply remove this hook file\n" +
|
81
81
|
"#\n" +
|
82
82
|
"# Be aware of other post commit hooks that my be mentioned here!\n"
|
@@ -84,7 +84,7 @@ module GitReport
|
|
84
84
|
|
85
85
|
# returns the line to activate gitreport via post commit hook
|
86
86
|
def self.line
|
87
|
-
"\
|
87
|
+
"\nnohup bundle exec gitreport commit > /dev/null 2> /dev/null < /dev/null &\n"
|
88
88
|
end
|
89
89
|
|
90
90
|
# removes the hook
|
@@ -105,7 +105,7 @@ module GitReport
|
|
105
105
|
|
106
106
|
# returns true if the hook file is ours and was not changed
|
107
107
|
def self.hook_file_unchanged?
|
108
|
-
Digest::SHA1.hexdigest(file_content) == "
|
108
|
+
Digest::SHA1.hexdigest(file_content) == "e4032a91bb8e07e09ea637c803d8763e26e165e7"
|
109
109
|
end
|
110
110
|
|
111
111
|
# removes our hook line from hook file
|
@@ -115,7 +115,7 @@ module GitReport
|
|
115
115
|
|
116
116
|
# removes our hook line from given content
|
117
117
|
def self.clean_up content
|
118
|
-
content.gsub(/\
|
118
|
+
content.gsub(/\nnohup\sbundle\sexec\sgitreport\scommit\s>\s\/dev\/null\s2>\s\/dev\/null\s<\s\/dev\/null\s&\n/,'')
|
119
119
|
end
|
120
120
|
|
121
121
|
end
|
data/lib/sender.rb
CHANGED
@@ -1,27 +1,13 @@
|
|
1
1
|
module GitReport
|
2
2
|
|
3
|
-
class Sender
|
3
|
+
class Sender < GenericSender
|
4
4
|
|
5
5
|
# sends or saves the commits
|
6
6
|
def self.send! options = nil
|
7
7
|
begin
|
8
8
|
commits = GitReport::Supplier.commits(options)
|
9
9
|
rescue Exception => e
|
10
|
-
|
11
|
-
if GitReport.global_opts[:trace]
|
12
|
-
puts "Exception: #{e}\n"
|
13
|
-
e.backtrace.each do |line|
|
14
|
-
puts "#{line}\n"
|
15
|
-
end
|
16
|
-
else
|
17
|
-
puts "Run with --trace to get more info."
|
18
|
-
end
|
19
|
-
grlog(0, "send! - A client error occures during data transfer.")
|
20
|
-
grlog(0, "send! - Exception: #{e}")
|
21
|
-
grlog(0, "send! - Backtrace:")
|
22
|
-
e.backtrace.each do |line|
|
23
|
-
grlog(0, line)
|
24
|
-
end
|
10
|
+
communicate e, nil
|
25
11
|
exit
|
26
12
|
end
|
27
13
|
|
@@ -37,6 +23,7 @@ module GitReport
|
|
37
23
|
|
38
24
|
# sends the commit data to the server
|
39
25
|
def self.send_data! commit, options = nil
|
26
|
+
grlog(1, 'send_data started')
|
40
27
|
begin
|
41
28
|
response = Net::HTTP.Proxy(configuration.proxy_host, configuration.proxy_port).start(configuration.host, configuration.port) do |http|
|
42
29
|
request = Net::HTTP::Post.new(request_path options)
|
@@ -46,53 +33,21 @@ module GitReport
|
|
46
33
|
http.read_timeout = configuration.timeout
|
47
34
|
http.request request unless GitReport.global_opts[:dry_run]
|
48
35
|
end
|
36
|
+
grlog(1, response ? "send_data responded with #{response.code}" : "send_data had no response")
|
49
37
|
raise GitReport::ServerError unless (response.code == "201" or response.code == "401") unless GitReport.global_opts[:dry_run]
|
50
38
|
rescue Exception => e
|
51
|
-
|
52
|
-
puts "A server error occured during data transfer."
|
53
|
-
if GitReport.global_opts[:trace]
|
54
|
-
puts "Exception: #{e}\n"
|
55
|
-
puts "Message: #{JSON.parse(response.body)["message"]}\n"
|
56
|
-
else
|
57
|
-
puts "Run with --trace to get more info."
|
58
|
-
end
|
59
|
-
else
|
60
|
-
puts "A client error occured during data transfer."
|
61
|
-
puts "Exception: #{e}\n"
|
62
|
-
end
|
63
|
-
grlog(0 ,'send_data! - A server error occured during data transfer.')
|
64
|
-
grlog(0, "send_data! - Exception: #{e}")
|
65
|
-
grlog(0, "send_data! - Message: #{JSON.parse(response.body)["message"]}") if response
|
66
|
-
|
39
|
+
communicate e, response
|
67
40
|
return false
|
68
41
|
end
|
69
42
|
|
70
43
|
true
|
71
44
|
end
|
72
45
|
|
73
|
-
# returns local storage
|
74
|
-
def self.storage
|
75
|
-
@@storage ||= GitReport::Storage.new(ENV['HOME'], '.gitreport_storage')
|
76
|
-
end
|
77
|
-
|
78
|
-
# returns configuration object
|
79
|
-
def self.configuration
|
80
|
-
@@configuration ||= GitReport.configuration
|
81
|
-
end
|
82
|
-
|
83
46
|
# returns the request path
|
84
47
|
def self.request_path options
|
85
48
|
@@path ||= "/v#{configuration.api_version}/commits"
|
86
49
|
end
|
87
50
|
|
88
|
-
# returns the default headers
|
89
|
-
def self.headers request
|
90
|
-
request['User-Agent'] = 'gitreport-client-ruby'
|
91
|
-
request['Content-Type'] = 'application/json'
|
92
|
-
request['Accept'] = 'application/json'
|
93
|
-
request['X-gitreport-Auth-Token'] = configuration.auth_token
|
94
|
-
end
|
95
|
-
|
96
51
|
end
|
97
52
|
|
98
53
|
end
|
data/spec/models/commit_spec.rb
CHANGED
@@ -45,10 +45,10 @@ describe 'GitReport::Commit' do
|
|
45
45
|
describe '#stats' do
|
46
46
|
it 'should return the commit stats' do
|
47
47
|
stats = GitReport::Commit.new(@project.log.commits.first, @project.identifier).stats
|
48
|
-
stats[:deletions].should ==
|
48
|
+
stats[:deletions].should == 0
|
49
49
|
stats[:files].should == 1
|
50
50
|
stats[:lines].should == 1
|
51
|
-
stats[:insertions].should ==
|
51
|
+
stats[:insertions].should == 1
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
data/spec/models/hook_spec.rb
CHANGED
@@ -18,7 +18,7 @@ describe 'GitReport::Hook' do
|
|
18
18
|
(File.exists?(hook_file)).should be_true
|
19
19
|
content = File.open(hook_file, 'r').read
|
20
20
|
|
21
|
-
content.match(/\
|
21
|
+
content.match(/\nnohup\sbundle\sexec\sgitreport\scommit\s>\s\/dev\/null\s2>\s\/dev\/null\s<\s\/dev\/null\s&\n/).should be_true
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'should insert the gitreport hook into an existing post-commit hook file' do
|
@@ -30,7 +30,7 @@ describe 'GitReport::Hook' do
|
|
30
30
|
|
31
31
|
GitReport::Hook.set!
|
32
32
|
content = File.open(hook_file, 'r').read
|
33
|
-
content.match(/\
|
33
|
+
content.match(/\nnohup\sbundle\sexec\sgitreport\scommit\s>\s\/dev\/null\s2>\s\/dev\/null\s<\s\/dev\/null\s&\n/).should be_true
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
@@ -57,7 +57,7 @@ describe 'GitReport::Hook' do
|
|
57
57
|
(File.exists?(hook_file)).should be_true
|
58
58
|
content = File.open(hook_file, 'r').read
|
59
59
|
content.should match(/\ssome\spreexisting\shook\sfile\n/)
|
60
|
-
content.should_not match(/\
|
60
|
+
content.should_not match(/\nnohup\sbundle\sexec\sgitreport\scommit\s>\s\/dev\/null\s2>\s\/dev\/null\s<\s\/dev\/null\s&\n/)
|
61
61
|
end
|
62
62
|
end
|
63
63
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitreport
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-10-
|
12
|
+
date: 2011-10-28 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
16
|
-
requirement: &
|
16
|
+
requirement: &70284346535700 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70284346535700
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: spork
|
27
|
-
requirement: &
|
27
|
+
requirement: &70284346531340 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>'
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.9.0.rc
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70284346531340
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &70284346525880 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70284346525880
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: webmock
|
49
|
-
requirement: &
|
49
|
+
requirement: &70284346521540 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70284346521540
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: shoulda
|
60
|
-
requirement: &
|
60
|
+
requirement: &70284346518300 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70284346518300
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: bundler
|
71
|
-
requirement: &
|
71
|
+
requirement: &70284346514400 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 1.0.0
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70284346514400
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: jeweler
|
82
|
-
requirement: &
|
82
|
+
requirement: &70284346510280 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ~>
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: 1.6.4
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70284346510280
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: rcov
|
93
|
-
requirement: &
|
93
|
+
requirement: &70284346504540 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,7 +98,7 @@ dependencies:
|
|
98
98
|
version: '0'
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *70284346504540
|
102
102
|
description: gitreport keeps track of your projects. It collects info about commited
|
103
103
|
and pushed data, submits it to our servers and provides a gorgous frontend to examine,
|
104
104
|
discover and extract the data that you need to generate the payment recipes for
|
@@ -124,6 +124,8 @@ files:
|
|
124
124
|
- lib/commit.rb
|
125
125
|
- lib/configuration.rb
|
126
126
|
- lib/current_branch.rb
|
127
|
+
- lib/g_logger.rb
|
128
|
+
- lib/generic_sender.rb
|
127
129
|
- lib/git.rb
|
128
130
|
- lib/git/author.rb
|
129
131
|
- lib/git/base.rb
|
@@ -146,7 +148,6 @@ files:
|
|
146
148
|
- lib/history.rb
|
147
149
|
- lib/hook.rb
|
148
150
|
- lib/log.rb
|
149
|
-
- lib/logger.rb
|
150
151
|
- lib/project.rb
|
151
152
|
- lib/sender.rb
|
152
153
|
- lib/storage.rb
|
@@ -182,7 +183,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
182
183
|
version: '0'
|
183
184
|
segments:
|
184
185
|
- 0
|
185
|
-
hash:
|
186
|
+
hash: 3923250588470254802
|
186
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
188
|
none: false
|
188
189
|
requirements:
|