Class: RailsErrorDashboard::Plugins::JiraIntegrationPlugin

Inherits:
RailsErrorDashboard::Plugin show all
Defined in:
lib/rails_error_dashboard/plugins/jira_integration_plugin.rb

Overview

Example plugin: Jira integration Automatically creates Jira tickets for critical errors

Usage:

RailsErrorDashboard.register_plugin(
  RailsErrorDashboard::Plugins::JiraIntegrationPlugin.new(
    jira_url: ENV['JIRA_URL'],
    jira_username: ENV['JIRA_USERNAME'],
    jira_api_token: ENV['JIRA_API_TOKEN'],
    jira_project_key: ENV['JIRA_PROJECT_KEY'],
    only_critical: true
  )
)

Instance Method Summary collapse

Methods inherited from RailsErrorDashboard::Plugin

#on_error_recurred, #on_error_resolved, #on_error_viewed, #on_errors_batch_deleted, #on_errors_batch_resolved, #on_register, #safe_execute

Constructor Details

#initialize(jira_url: nil, jira_username: nil, jira_api_token: nil, jira_project_key: nil, only_critical: true) ⇒ JiraIntegrationPlugin

Returns a new instance of JiraIntegrationPlugin.



20
21
22
23
24
25
26
# File 'lib/rails_error_dashboard/plugins/jira_integration_plugin.rb', line 20

def initialize(jira_url: nil, jira_username: nil, jira_api_token: nil, jira_project_key: nil, only_critical: true)
  @jira_url = jira_url
  @jira_username = jira_username
  @jira_api_token = jira_api_token
  @jira_project_key = jira_project_key
  @only_critical = only_critical
end

Instance Method Details

#descriptionObject



32
33
34
# File 'lib/rails_error_dashboard/plugins/jira_integration_plugin.rb', line 32

def description
  "Automatically creates Jira tickets for critical errors"
end

#enabled?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/rails_error_dashboard/plugins/jira_integration_plugin.rb', line 40

def enabled?
  @jira_url.present? && @jira_username.present? && @jira_api_token.present? && @jira_project_key.present?
end

#nameObject



28
29
30
# File 'lib/rails_error_dashboard/plugins/jira_integration_plugin.rb', line 28

def name
  "Jira Integration"
end

#on_error_logged(error_log) ⇒ Object



44
45
46
47
48
# File 'lib/rails_error_dashboard/plugins/jira_integration_plugin.rb', line 44

def on_error_logged(error_log)
  return if @only_critical && !error_log.critical?

  create_jira_ticket(error_log)
end

#versionObject



36
37
38
# File 'lib/rails_error_dashboard/plugins/jira_integration_plugin.rb', line 36

def version
  "1.0.0"
end