codefumes_harvester 0.1.4 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +13 -6
- data/Manifest.txt +5 -2
- data/Rakefile +1 -1
- data/lib/codefumes_harvester/integrity_notifier/codefumes.haml +11 -0
- data/lib/codefumes_harvester/integrity_notifier/codefumes.rb +62 -0
- data/lib/codefumes_harvester/quick_build.rb +47 -0
- data/lib/codefumes_harvester.rb +2 -1
- data/spec/{codometer_harvester → codefumes_harvester}/harvester_spec.rb +0 -0
- data/spec/{codometer_harvester → codefumes_harvester}/source_control_spec.rb +0 -0
- data/tasks/codefumes.rake +4 -0
- metadata +66 -32
data/History.txt
CHANGED
@@ -1,29 +1,36 @@
|
|
1
|
-
== 0.1.
|
1
|
+
== 0.1.6 / 09-MAR-2010
|
2
|
+
|
3
|
+
* Added QuickBuild class to simplify adding/updating Build information to a project
|
4
|
+
* Added cf:start_build rake task
|
5
|
+
* Fixed repo path issue in notifier
|
6
|
+
* First version of Integrity notification
|
7
|
+
|
8
|
+
== 0.1.5 / 13-SEP-09
|
2
9
|
|
3
10
|
* Renamed harvest_repo_metrics -> bin/cf_harvest_repo_metrics
|
4
11
|
|
5
|
-
== 0.1.4 /
|
12
|
+
== 0.1.4 / 13-SEP-09
|
6
13
|
|
7
14
|
* Moved feedback printing from publish_data! out to CLI#execute
|
8
15
|
* Renamed #local_revision_identifier to #local_commit_identifier
|
9
16
|
|
10
|
-
== 0.1.3 /
|
17
|
+
== 0.1.3 / 12-SEP-09
|
11
18
|
|
12
19
|
* Cached commit stats when building Payload hash to prevent Grit::Git::GitTimeout exceptions
|
13
20
|
* Documentation updates
|
14
21
|
|
15
|
-
== 0.1.2 /
|
22
|
+
== 0.1.2 / 10-SEP-09
|
16
23
|
|
17
24
|
* Updated gem summary
|
18
25
|
* Updated gem dependency definitions
|
19
26
|
|
20
|
-
== 0.1.1 /
|
27
|
+
== 0.1.1 / 10-SEP-09
|
21
28
|
|
22
29
|
* Updates to gem meta-data
|
23
30
|
* Added/updated summary
|
24
31
|
* Updated list of authors/developers
|
25
32
|
|
26
|
-
== 0.1.0 /
|
33
|
+
== 0.1.0 / 08-SEP-09
|
27
34
|
|
28
35
|
* 1 major enhancement:
|
29
36
|
* Initial release
|
data/Manifest.txt
CHANGED
@@ -7,11 +7,14 @@ lib/cf_harvest_repo_metrics/cli.rb
|
|
7
7
|
lib/codefumes_harvester.rb
|
8
8
|
lib/codefumes_harvester/errors.rb
|
9
9
|
lib/codefumes_harvester/harvester.rb
|
10
|
+
lib/codefumes_harvester/integrity_notifier/codefumes.haml
|
11
|
+
lib/codefumes_harvester/integrity_notifier/codefumes.rb
|
12
|
+
lib/codefumes_harvester/quick_build.rb
|
10
13
|
lib/codefumes_harvester/quick_metric.rb
|
11
14
|
lib/codefumes_harvester/source_control.rb
|
12
15
|
spec/cf_harvest_repo_metrics/cli_spec.rb
|
13
|
-
spec/
|
14
|
-
spec/
|
16
|
+
spec/codefumes_harvester/harvester_spec.rb
|
17
|
+
spec/codefumes_harvester/source_control_spec.rb
|
15
18
|
spec/fixtures/sample_project_dirs/no_scm/description
|
16
19
|
spec/spec.opts
|
17
20
|
spec/spec_helper.rb
|
data/Rakefile
CHANGED
@@ -18,7 +18,7 @@ end
|
|
18
18
|
$hoe = Hoe.spec('codefumes_harvester') do
|
19
19
|
self.rubyforge_name = 'codefumes'
|
20
20
|
self.summary = "Tools for sending repository history and metrics to CodeFumes.com"
|
21
|
-
self.extra_deps = [['codefumes','>= 0.1.
|
21
|
+
self.extra_deps = [['codefumes','>= 0.1.7'],['mojombo-grit','>= 1.1.1']]
|
22
22
|
self.extra_dev_deps = [['jscruggs-metric_fu', ">= 1.1.5"],
|
23
23
|
['mojombo-chronic', ">= 0.3.0"],
|
24
24
|
['rubigen', ">= 1.5.2"]
|
@@ -0,0 +1,11 @@
|
|
1
|
+
%p.normal
|
2
|
+
%label{ :for => "cf_build_name" } Build name
|
3
|
+
%input.text#cf_build_name{ :name => "notifiers[CodeFumes][build_name]", :type => "text", :value => config["build_name"] }
|
4
|
+
|
5
|
+
%p.normal
|
6
|
+
%label{ :for => "cf_public_key" } Public key
|
7
|
+
%input.text#cf_public_key{ :name => "notifiers[CodeFumes][public_key]", :type => "text", :value => config["public_key"] }
|
8
|
+
|
9
|
+
%p.normal
|
10
|
+
%label{ :for => "cf_private_key" } Private key
|
11
|
+
%input.text#cf_private_key{ :name => "notifiers[CodeFumes][private_key]", :type => "text", :value => config["private_key"] }
|
@@ -0,0 +1,62 @@
|
|
1
|
+
begin
|
2
|
+
require 'codefumes_harvester'
|
3
|
+
rescue LoadError
|
4
|
+
abort "Install codefumes_harvester to use the CodeFumes notifier"
|
5
|
+
end
|
6
|
+
|
7
|
+
module CodeFumesHarvester
|
8
|
+
class IntegrityNotifier
|
9
|
+
class CodeFumes < ::Integrity::Notifier::Base
|
10
|
+
attr_reader :private_key, :public_key
|
11
|
+
|
12
|
+
def self.to_haml
|
13
|
+
@haml ||= File.read(File.dirname(__FILE__) + "/codefumes.haml")
|
14
|
+
end
|
15
|
+
|
16
|
+
def initialize(build, config={})
|
17
|
+
@public_key = config["public_key"]
|
18
|
+
@private_key = config["private_key"]
|
19
|
+
@build_name = config["build_name"]
|
20
|
+
@repo_path = Integrity::Repository.new(
|
21
|
+
build.id, build.project.uri, build.project.branch, build.commit.identifier
|
22
|
+
).directory
|
23
|
+
super(build, config)
|
24
|
+
end
|
25
|
+
|
26
|
+
def deliver!
|
27
|
+
Integrity.log "Updating build '#{@build_name}' for '#{@public_key}' (state: #{build_state})"
|
28
|
+
qb_options = {:public_key => @public_key,
|
29
|
+
:private_key => @private_key,
|
30
|
+
:ended_at => @build.completed_at,
|
31
|
+
:repository_path => @repo_path}
|
32
|
+
|
33
|
+
CodeFumesHarvester::QuickBuild.finish(@build_name, build_state, qb_options)
|
34
|
+
end
|
35
|
+
|
36
|
+
def deliver_started_notification!
|
37
|
+
Integrity.log "Adding build '#{@build_name}' for '#{@public_key}' (state: #{build_state})"
|
38
|
+
qb_options = {:public_key => @public_key,
|
39
|
+
:private_key => @private_key,
|
40
|
+
:started_at => @build.started_at,
|
41
|
+
:repository_path => @repo_path}
|
42
|
+
|
43
|
+
CodeFumesHarvester::QuickBuild.start(@build_name, qb_options)
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
def build_state
|
48
|
+
case @build.status
|
49
|
+
when :success then :success
|
50
|
+
when :failed then :failed
|
51
|
+
when :building then :running
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
module Integrity
|
59
|
+
class Notifier
|
60
|
+
register CodeFumesHarvester::IntegrityNotifier::CodeFumes
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module CodeFumesHarvester
|
2
|
+
class QuickBuild
|
3
|
+
# Creates a new build for the CodeFumes project linked
|
4
|
+
# at the specified repository path and associates
|
5
|
+
# it with the current local commit identifier
|
6
|
+
#
|
7
|
+
# Returns +true+ if the request succeeded.
|
8
|
+
#
|
9
|
+
# Returns +false+ if the request failed.
|
10
|
+
def self.start(build_name, options = {})
|
11
|
+
repo = SourceControl.new(options[:repository_path] || './')
|
12
|
+
|
13
|
+
commit_identifier = options[:commit_identifier] || repo.local_commit_identifier
|
14
|
+
public_key = options[:public_key] || repo.public_key
|
15
|
+
private_key = options[:private_key] || repo.private_key
|
16
|
+
started_at = options[:started_at] || Time.now
|
17
|
+
|
18
|
+
build = CodeFumes::Build.new(:public_key => public_key,
|
19
|
+
:private_key => private_key,
|
20
|
+
:commit_identifier => commit_identifier,
|
21
|
+
:name => build_name,
|
22
|
+
:state => "running",
|
23
|
+
:started_at => started_at,
|
24
|
+
:ended_at => "")
|
25
|
+
build.save
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.finish(build_name, success_or_failure, options = {})
|
29
|
+
repo = SourceControl.new(options[:repository_path] || './')
|
30
|
+
|
31
|
+
commit_identifier = options[:commit_identifier] || repo.local_commit_identifier
|
32
|
+
public_key = options[:public_key] || repo.public_key
|
33
|
+
private_key = options[:private_key] || repo.private_key
|
34
|
+
ended_at = options[:ended_at] || Time.now
|
35
|
+
|
36
|
+
build = CodeFumes::Build.find(:public_key => public_key,
|
37
|
+
:private_key => private_key,
|
38
|
+
:commit_identifier => commit_identifier,
|
39
|
+
:identifier => build_name
|
40
|
+
)
|
41
|
+
return false if build.nil?
|
42
|
+
build.state = success_or_failure.to_s
|
43
|
+
build.ended_at = ended_at
|
44
|
+
build.save
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/lib/codefumes_harvester.rb
CHANGED
@@ -5,11 +5,12 @@ require 'codefumes_harvester/harvester'
|
|
5
5
|
require 'codefumes_harvester/source_control'
|
6
6
|
require 'codefumes_harvester/errors'
|
7
7
|
require 'codefumes_harvester/quick_metric'
|
8
|
+
require 'codefumes_harvester/quick_build'
|
8
9
|
|
9
10
|
include CodeFumesHarvester
|
10
11
|
|
11
12
|
module CodeFumesHarvester
|
12
|
-
VERSION = '0.1.
|
13
|
+
VERSION = '0.1.6' unless defined?(CodeFumesHarvester::VERSION)
|
13
14
|
LIB_ROOT = File.dirname(__FILE__)
|
14
15
|
end
|
15
16
|
|
File without changes
|
File without changes
|
data/tasks/codefumes.rake
CHANGED
@@ -7,6 +7,10 @@ namespace :cf do
|
|
7
7
|
sh "#{harvest_repo_metrics_executable} #{options}"
|
8
8
|
end
|
9
9
|
|
10
|
+
desc "Create a new build for the local current commit identifier"
|
11
|
+
task :start_build, [:name] do |tsk, args|
|
12
|
+
QuickBuild.start(args.name)
|
13
|
+
end
|
10
14
|
|
11
15
|
namespace :metric_fu do
|
12
16
|
desc "Collect commit's overall code coverage statistic from metric_fu output"
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codefumes_harvester
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 6
|
9
|
+
version: 0.1.6
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Tom Kersten
|
@@ -10,69 +15,93 @@ autorequire:
|
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
17
|
|
13
|
-
date: 2010-
|
18
|
+
date: 2010-03-27 00:00:00 -05:00
|
14
19
|
default_executable:
|
15
20
|
dependencies:
|
16
21
|
- !ruby/object:Gem::Dependency
|
17
22
|
name: codefumes
|
18
|
-
|
19
|
-
|
20
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
21
25
|
requirements:
|
22
26
|
- - ">="
|
23
27
|
- !ruby/object:Gem::Version
|
24
|
-
|
25
|
-
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
- 1
|
31
|
+
- 7
|
32
|
+
version: 0.1.7
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
26
35
|
- !ruby/object:Gem::Dependency
|
27
36
|
name: mojombo-grit
|
28
|
-
|
29
|
-
|
30
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
31
39
|
requirements:
|
32
40
|
- - ">="
|
33
41
|
- !ruby/object:Gem::Version
|
42
|
+
segments:
|
43
|
+
- 1
|
44
|
+
- 1
|
45
|
+
- 1
|
34
46
|
version: 1.1.1
|
35
|
-
|
47
|
+
type: :runtime
|
48
|
+
version_requirements: *id002
|
36
49
|
- !ruby/object:Gem::Dependency
|
37
50
|
name: jscruggs-metric_fu
|
38
|
-
|
39
|
-
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
41
53
|
requirements:
|
42
54
|
- - ">="
|
43
55
|
- !ruby/object:Gem::Version
|
56
|
+
segments:
|
57
|
+
- 1
|
58
|
+
- 1
|
59
|
+
- 5
|
44
60
|
version: 1.1.5
|
45
|
-
|
61
|
+
type: :development
|
62
|
+
version_requirements: *id003
|
46
63
|
- !ruby/object:Gem::Dependency
|
47
64
|
name: mojombo-chronic
|
48
|
-
|
49
|
-
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
prerelease: false
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
51
67
|
requirements:
|
52
68
|
- - ">="
|
53
69
|
- !ruby/object:Gem::Version
|
70
|
+
segments:
|
71
|
+
- 0
|
72
|
+
- 3
|
73
|
+
- 0
|
54
74
|
version: 0.3.0
|
55
|
-
|
75
|
+
type: :development
|
76
|
+
version_requirements: *id004
|
56
77
|
- !ruby/object:Gem::Dependency
|
57
78
|
name: rubigen
|
58
|
-
|
59
|
-
|
60
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
prerelease: false
|
80
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
81
|
requirements:
|
62
82
|
- - ">="
|
63
83
|
- !ruby/object:Gem::Version
|
84
|
+
segments:
|
85
|
+
- 1
|
86
|
+
- 5
|
87
|
+
- 2
|
64
88
|
version: 1.5.2
|
65
|
-
|
89
|
+
type: :development
|
90
|
+
version_requirements: *id005
|
66
91
|
- !ruby/object:Gem::Dependency
|
67
92
|
name: hoe
|
68
|
-
|
69
|
-
|
70
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
prerelease: false
|
94
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
71
95
|
requirements:
|
72
96
|
- - ">="
|
73
97
|
- !ruby/object:Gem::Version
|
98
|
+
segments:
|
99
|
+
- 2
|
100
|
+
- 5
|
101
|
+
- 0
|
74
102
|
version: 2.5.0
|
75
|
-
|
103
|
+
type: :development
|
104
|
+
version_requirements: *id006
|
76
105
|
description: |-
|
77
106
|
CodeFumesHarvester provides a set of high-level tools for gathering
|
78
107
|
history and common metrics from a local repository and sending them to
|
@@ -98,11 +127,14 @@ files:
|
|
98
127
|
- lib/codefumes_harvester.rb
|
99
128
|
- lib/codefumes_harvester/errors.rb
|
100
129
|
- lib/codefumes_harvester/harvester.rb
|
130
|
+
- lib/codefumes_harvester/integrity_notifier/codefumes.haml
|
131
|
+
- lib/codefumes_harvester/integrity_notifier/codefumes.rb
|
132
|
+
- lib/codefumes_harvester/quick_build.rb
|
101
133
|
- lib/codefumes_harvester/quick_metric.rb
|
102
134
|
- lib/codefumes_harvester/source_control.rb
|
103
135
|
- spec/cf_harvest_repo_metrics/cli_spec.rb
|
104
|
-
- spec/
|
105
|
-
- spec/
|
136
|
+
- spec/codefumes_harvester/harvester_spec.rb
|
137
|
+
- spec/codefumes_harvester/source_control_spec.rb
|
106
138
|
- spec/fixtures/sample_project_dirs/no_scm/description
|
107
139
|
- spec/spec.opts
|
108
140
|
- spec/spec_helper.rb
|
@@ -122,18 +154,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
122
154
|
requirements:
|
123
155
|
- - ">="
|
124
156
|
- !ruby/object:Gem::Version
|
157
|
+
segments:
|
158
|
+
- 0
|
125
159
|
version: "0"
|
126
|
-
version:
|
127
160
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
161
|
requirements:
|
129
162
|
- - ">="
|
130
163
|
- !ruby/object:Gem::Version
|
164
|
+
segments:
|
165
|
+
- 0
|
131
166
|
version: "0"
|
132
|
-
version:
|
133
167
|
requirements: []
|
134
168
|
|
135
169
|
rubyforge_project: codefumes
|
136
|
-
rubygems_version: 1.3.
|
170
|
+
rubygems_version: 1.3.6
|
137
171
|
signing_key:
|
138
172
|
specification_version: 3
|
139
173
|
summary: Tools for sending repository history and metrics to CodeFumes.com
|