errbit_cloudfuji 0.1.5 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/images/cloudfuji_create.png +0 -0
- data/app/assets/images/cloudfuji_goto.png +0 -0
- data/app/assets/images/cloudfuji_inactive.png +0 -0
- data/app/models/issue_trackers/cloudfuji_tracker.rb +40 -0
- data/app/views/issue_trackers/cloudfuji_body.txt.erb +12 -0
- data/errbit_cloudfuji.gemspec +1 -1
- data/lib/errbit/cloudfuji/event_observers/project_task_observer.rb +27 -0
- data/lib/errbit/cloudfuji/event_observers/user_observer.rb +1 -1
- data/lib/errbit/cloudfuji.rb +17 -3
- data/lib/errbit_cloudfuji/engine.rb +3 -0
- data/lib/errbit_cloudfuji/version.rb +1 -1
- metadata +12 -6
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module IssueTrackers
|
2
|
+
class CloudfujiTracker < ::IssueTracker
|
3
|
+
Label = "cloudfuji"
|
4
|
+
Fields = [
|
5
|
+
[:project_id, {
|
6
|
+
:label => "Project Ido ID",
|
7
|
+
:placeholder => "Ido ID of project to create task on"
|
8
|
+
}]
|
9
|
+
]
|
10
|
+
|
11
|
+
def create_issue(problem, reported_by)
|
12
|
+
if ::Cloudfuji::Platform.on_cloudfuji?
|
13
|
+
err = problem.errs.last
|
14
|
+
|
15
|
+
event = {
|
16
|
+
:category => :project_task,
|
17
|
+
:name => :created,
|
18
|
+
:data => {
|
19
|
+
:ido_id => err.ido_id,
|
20
|
+
:title => issue_title(problem),
|
21
|
+
:description => body_template.result(binding),
|
22
|
+
:task_type => 'bug',
|
23
|
+
:state => 'unscheduled',
|
24
|
+
:requested_by_id => reported_by.ido_id,
|
25
|
+
:project_id => project_id,
|
26
|
+
:labels => "errbit"
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
puts "Publishing Cloudfuji Event: #{event.inspect}"
|
31
|
+
|
32
|
+
::Cloudfuji::Event.publish(event)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def body_template
|
37
|
+
@@body_template ||= ERB.new(File.read(File.expand_path("../../../views/issue_trackers/cloudfuji_body.txt.erb", __FILE__)).gsub(/^\s*/, ''))
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
See this exception on Errbit: <%= app_err_url problem.app, problem %>
|
2
|
+
|
3
|
+
<% if notice = problem.notices.first %>
|
4
|
+
<% if notice.request['url'].present? %>URL: <%= notice.request['url'] %> | <% end %>
|
5
|
+
|
6
|
+
Where: <%= notice.where %> |
|
7
|
+
|
8
|
+
Occurred: <%= notice.created_at.to_s :micro %> |
|
9
|
+
|
10
|
+
Similar: <%= (notice.problem.notices_count - 1).to_s %>
|
11
|
+
<% end %>
|
12
|
+
|
data/errbit_cloudfuji.gemspec
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
|
|
12
12
|
s.files = `git ls-files`.split("\n")
|
13
13
|
s.version = Errbit::Cloudfuji::VERSION
|
14
14
|
|
15
|
-
s.add_dependency 'cloudfuji', '>= 0.0.
|
15
|
+
s.add_dependency 'cloudfuji', '>= 0.0.44'
|
16
16
|
s.add_dependency 'devise_cloudfuji_authenticatable'
|
17
17
|
s.add_dependency 'uuid'
|
18
18
|
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Errbit
|
2
|
+
module Cloudfuji
|
3
|
+
module EventObservers
|
4
|
+
class ProjectTaskObserver < ::Cloudfuji::EventObserver
|
5
|
+
|
6
|
+
def project_task_created
|
7
|
+
data = params['data']
|
8
|
+
# Find error with matching ido_id
|
9
|
+
if err = Err.where(:ido_id => data['ido_id']).first
|
10
|
+
# Update issue link on error with task url
|
11
|
+
if data['url'] && err.problem.issue_link != data['url']
|
12
|
+
err.problem.update_attribute :issue_link, data['url']
|
13
|
+
end
|
14
|
+
|
15
|
+
# If task state is 'accepted', then resolve the error
|
16
|
+
if data['state'] == 'accepted'
|
17
|
+
err.problem.resolve!
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
# Use same method for task create and update
|
22
|
+
alias :project_task_updated :project_task_created
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Errbit
|
2
2
|
module Cloudfuji
|
3
3
|
module EventObservers
|
4
|
-
class
|
4
|
+
class UserObserver < ::Cloudfuji::EventObserver
|
5
5
|
def user_added
|
6
6
|
puts "Adding a new user with incoming data #{params.inspect}"
|
7
7
|
puts "Devise username column: #{::Devise.cas_username_column}="
|
data/lib/errbit/cloudfuji.rb
CHANGED
@@ -2,9 +2,10 @@ module Errbit
|
|
2
2
|
module Cloudfuji
|
3
3
|
class << self
|
4
4
|
def enable_cloudfuji!
|
5
|
-
|
5
|
+
load_observers!
|
6
6
|
extend_user!
|
7
7
|
extend_err!
|
8
|
+
extend_app!
|
8
9
|
disable_devise_for_cloudfuji_controllers!
|
9
10
|
end
|
10
11
|
|
@@ -33,8 +34,21 @@ module Errbit
|
|
33
34
|
end
|
34
35
|
end
|
35
36
|
|
36
|
-
def
|
37
|
-
|
37
|
+
def extend_app!
|
38
|
+
# Make CloudfujiTracker the default tracker
|
39
|
+
AppsController.class_eval do
|
40
|
+
def plug_params_with_cloudfuji_tracker(app)
|
41
|
+
plug_params_without_cloudfuji_tracker(app)
|
42
|
+
if app.issue_tracker.class == IssueTracker
|
43
|
+
app.issue_tracker = CloudfujiTracker.new
|
44
|
+
end
|
45
|
+
end
|
46
|
+
alias_method_chain :plug_params, :cloudfuji_tracker
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def load_observers!
|
51
|
+
Dir[File.expand_path("../cloudfuji/event_observers/*.rb", __FILE__)].each { |file| require file }
|
38
52
|
end
|
39
53
|
|
40
54
|
# Temporary hack because all routes require authentication in
|
@@ -12,6 +12,9 @@ Rails::Engine.initializers.detect{|i| i.name == :add_view_paths }.
|
|
12
12
|
module Errbit
|
13
13
|
module Cloudfuji
|
14
14
|
class Engine < Rails::Engine
|
15
|
+
config.to_prepare do
|
16
|
+
Dir[File.expand_path("../../../app/models/issue_trackers/*.rb", __FILE__)].each {|f| require f }
|
17
|
+
end
|
15
18
|
end
|
16
19
|
end
|
17
20
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: errbit_cloudfuji
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-05-
|
13
|
+
date: 2012-05-30 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: cloudfuji
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.0.
|
22
|
+
version: 0.0.44
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -27,7 +27,7 @@ dependencies:
|
|
27
27
|
requirements:
|
28
28
|
- - ! '>='
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version: 0.0.
|
30
|
+
version: 0.0.44
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
32
|
name: devise_cloudfuji_authenticatable
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,7 +72,12 @@ files:
|
|
72
72
|
- MIT-LICENSE
|
73
73
|
- README
|
74
74
|
- Rakefile
|
75
|
+
- app/assets/images/cloudfuji_create.png
|
76
|
+
- app/assets/images/cloudfuji_goto.png
|
77
|
+
- app/assets/images/cloudfuji_inactive.png
|
78
|
+
- app/models/issue_trackers/cloudfuji_tracker.rb
|
75
79
|
- app/observers/cloudfuji_notice_observer.rb
|
80
|
+
- app/views/issue_trackers/cloudfuji_body.txt.erb
|
76
81
|
- app/views/users/_fields.html.haml
|
77
82
|
- app/views/users/index.html.haml
|
78
83
|
- config.ru
|
@@ -84,6 +89,7 @@ files:
|
|
84
89
|
- errbit_cloudfuji.gemspec
|
85
90
|
- lib/errbit/cloudfuji.rb
|
86
91
|
- lib/errbit/cloudfuji/event_observers/app_observer.rb
|
92
|
+
- lib/errbit/cloudfuji/event_observers/project_task_observer.rb
|
87
93
|
- lib/errbit/cloudfuji/event_observers/user_observer.rb
|
88
94
|
- lib/errbit_cloudfuji.rb
|
89
95
|
- lib/errbit_cloudfuji/engine.rb
|
@@ -103,7 +109,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
103
109
|
version: '0'
|
104
110
|
segments:
|
105
111
|
- 0
|
106
|
-
hash:
|
112
|
+
hash: -4071831119419895463
|
107
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
114
|
none: false
|
109
115
|
requirements:
|
@@ -112,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
118
|
version: '0'
|
113
119
|
segments:
|
114
120
|
- 0
|
115
|
-
hash:
|
121
|
+
hash: -4071831119419895463
|
116
122
|
requirements: []
|
117
123
|
rubyforge_project:
|
118
124
|
rubygems_version: 1.8.24
|