class ErrbitJiraPlugin::IssueTracker
Constants
- FIELDS
- LABEL
- NOTE
Public Class Methods
body_template()
click to toggle source
# File lib/errbit_jira_plugin/issue_tracker.rb, line 63 def self.body_template @body_template ||= ERB.new(File.read( File.join( ErrbitJiraPlugin.root, 'views', 'jira_issues_body.txt.erb' ) )) end
fields()
click to toggle source
# File lib/errbit_jira_plugin/issue_tracker.rb, line 45 def self.fields FIELDS end
icons()
click to toggle source
# File lib/errbit_jira_plugin/issue_tracker.rb, line 49 def self.icons @icons ||= { create: [ 'image/png', ErrbitJiraPlugin.read_static_file('jira_create.png') ], goto: [ 'image/png', ErrbitJiraPlugin.read_static_file('jira_goto.png'), ], inactive: [ 'image/png', ErrbitJiraPlugin.read_static_file('jira_inactive.png'), ] } end
label()
click to toggle source
# File lib/errbit_jira_plugin/issue_tracker.rb, line 37 def self.label LABEL end
note()
click to toggle source
# File lib/errbit_jira_plugin/issue_tracker.rb, line 41 def self.note NOTE end
Public Instance Methods
client()
click to toggle source
# File lib/errbit_jira_plugin/issue_tracker.rb, line 87 def client options = { :username => params['username'], :password => params['password'], :site => params['base_url'], :auth_type => :basic, :context_path => (params['context_path'] == '/') ? params['context_path'] = '' : params['context_path'] } JIRA::Client.new(options) end
comments_allowed?()
click to toggle source
# File lib/errbit_jira_plugin/issue_tracker.rb, line 83 def comments_allowed? false end
configured?()
click to toggle source
# File lib/errbit_jira_plugin/issue_tracker.rb, line 71 def configured? params['project_id'].present? end
create_issue(problem, reported_by = nil)
click to toggle source
# File lib/errbit_jira_plugin/issue_tracker.rb, line 98 def create_issue(problem, reported_by = nil) begin issue_title = "[#{ problem.environment }][#{ problem.where }] #{problem.message.to_s.truncate(100)}".delete!("\n") issue_description = self.class.body_template.result(binding).unpack('C*').pack('U*') issue = {"fields"=>{"summary"=>issue_title, "description"=>issue_description,"project"=>{"key"=>params['project_id']},"issuetype"=>{"id"=>"3"},"priority"=>{"name"=>params['issue_priority']}}} issue_build = client.Issue.build issue_build.save(issue) problem.update_attributes( :issue_link => jira_url(issue_build.key), :issue_type => params['issue_type'] ) rescue JIRA::HTTPError raise ErrbitJiraPlugin::IssueError, "Could not create an issue with Jira. Please check your credentials." end end
ctx_path()
click to toggle source
# File lib/errbit_jira_plugin/issue_tracker.rb, line 121 def ctx_path (params['context_path'] == '') ? '/' : params['context_path'] end
errors()
click to toggle source
# File lib/errbit_jira_plugin/issue_tracker.rb, line 75 def errors errors = [] if self.class.fields.detect {|f| options[f[0]].blank? } errors << [:base, 'You must specify all non optional values!'] end errors end
jira_url(project_id)
click to toggle source
# File lib/errbit_jira_plugin/issue_tracker.rb, line 117 def jira_url(project_id) "#{params['base_url']}#{ctx_path}browse/#{project_id}" end
url()
click to toggle source
# File lib/errbit_jira_plugin/issue_tracker.rb, line 125 def url params['base_url'] end