codefumes_harvester 0.1.4 → 0.1.6
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/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
|