exception_notification 4.3.0 → 4.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (131) hide show
  1. checksums.yaml +4 -4
  2. data/Appraisals +2 -2
  3. data/CHANGELOG.rdoc +14 -0
  4. data/CONTRIBUTING.md +18 -0
  5. data/Gemfile +1 -1
  6. data/README.md +64 -935
  7. data/Rakefile +2 -2
  8. data/docs/notifiers/campfire.md +50 -0
  9. data/docs/notifiers/custom.md +42 -0
  10. data/docs/notifiers/datadog.md +51 -0
  11. data/docs/notifiers/email.md +195 -0
  12. data/docs/notifiers/google_chat.md +31 -0
  13. data/docs/notifiers/hipchat.md +66 -0
  14. data/docs/notifiers/irc.md +97 -0
  15. data/docs/notifiers/mattermost.md +115 -0
  16. data/docs/notifiers/slack.md +161 -0
  17. data/docs/notifiers/sns.md +37 -0
  18. data/docs/notifiers/teams.md +54 -0
  19. data/docs/notifiers/webhook.md +60 -0
  20. data/examples/sample_app.rb +54 -0
  21. data/examples/sinatra/Gemfile +6 -6
  22. data/examples/sinatra/config.ru +1 -1
  23. data/examples/sinatra/sinatra_app.rb +14 -10
  24. data/exception_notification.gemspec +27 -22
  25. data/gemfiles/rails4_0.gemfile +3 -3
  26. data/gemfiles/rails4_1.gemfile +3 -3
  27. data/gemfiles/rails4_2.gemfile +3 -3
  28. data/gemfiles/rails5_0.gemfile +3 -3
  29. data/gemfiles/rails5_1.gemfile +3 -3
  30. data/gemfiles/rails5_2.gemfile +7 -0
  31. data/gemfiles/rails6_0.gemfile +7 -0
  32. data/lib/exception_notification.rb +1 -0
  33. data/lib/exception_notification/rack.rb +8 -21
  34. data/lib/exception_notification/resque.rb +8 -10
  35. data/lib/exception_notification/sidekiq.rb +8 -12
  36. data/lib/exception_notification/version.rb +3 -0
  37. data/lib/exception_notifier.rb +20 -3
  38. data/lib/exception_notifier/base_notifier.rb +2 -3
  39. data/lib/exception_notifier/campfire_notifier.rb +12 -13
  40. data/lib/exception_notifier/datadog_notifier.rb +153 -0
  41. data/lib/exception_notifier/email_notifier.rb +64 -87
  42. data/lib/exception_notifier/google_chat_notifier.rb +25 -119
  43. data/lib/exception_notifier/hipchat_notifier.rb +11 -12
  44. data/lib/exception_notifier/irc_notifier.rb +32 -30
  45. data/lib/exception_notifier/mattermost_notifier.rb +47 -140
  46. data/lib/exception_notifier/modules/backtrace_cleaner.rb +0 -2
  47. data/lib/exception_notifier/modules/error_grouping.rb +5 -5
  48. data/lib/exception_notifier/modules/formatter.rb +118 -0
  49. data/lib/exception_notifier/notifier.rb +5 -6
  50. data/lib/exception_notifier/slack_notifier.rb +63 -40
  51. data/lib/exception_notifier/sns_notifier.rb +17 -11
  52. data/lib/exception_notifier/teams_notifier.rb +58 -44
  53. data/lib/exception_notifier/views/exception_notifier/_backtrace.html.erb +1 -1
  54. data/lib/exception_notifier/views/exception_notifier/_environment.text.erb +1 -1
  55. data/lib/exception_notifier/views/exception_notifier/_request.text.erb +1 -1
  56. data/lib/exception_notifier/views/exception_notifier/exception_notification.html.erb +2 -2
  57. data/lib/exception_notifier/views/exception_notifier/exception_notification.text.erb +2 -2
  58. data/lib/exception_notifier/webhook_notifier.rb +14 -11
  59. data/lib/generators/exception_notification/install_generator.rb +5 -5
  60. data/lib/generators/exception_notification/templates/{exception_notification.rb → exception_notification.rb.erb} +13 -11
  61. data/test/exception_notification/rack_test.rb +27 -11
  62. data/test/exception_notification/resque_test.rb +52 -0
  63. data/test/exception_notifier/campfire_notifier_test.rb +42 -42
  64. data/test/exception_notifier/datadog_notifier_test.rb +151 -0
  65. data/test/exception_notifier/email_notifier_test.rb +269 -153
  66. data/test/exception_notifier/google_chat_notifier_test.rb +154 -101
  67. data/test/exception_notifier/hipchat_notifier_test.rb +78 -81
  68. data/test/exception_notifier/irc_notifier_test.rb +34 -34
  69. data/test/exception_notifier/mattermost_notifier_test.rb +164 -67
  70. data/test/exception_notifier/modules/error_grouping_test.rb +39 -40
  71. data/test/exception_notifier/modules/formatter_test.rb +150 -0
  72. data/test/exception_notifier/sidekiq_test.rb +6 -6
  73. data/test/exception_notifier/slack_notifier_test.rb +61 -60
  74. data/test/exception_notifier/sns_notifier_test.rb +27 -32
  75. data/test/exception_notifier/teams_notifier_test.rb +23 -26
  76. data/test/exception_notifier/webhook_notifier_test.rb +48 -46
  77. data/test/exception_notifier_test.rb +41 -38
  78. data/test/{dummy/app → support}/views/exception_notifier/_new_bkg_section.html.erb +0 -0
  79. data/test/{dummy/app → support}/views/exception_notifier/_new_bkg_section.text.erb +0 -0
  80. data/test/{dummy/app → support}/views/exception_notifier/_new_section.html.erb +0 -0
  81. data/test/{dummy/app → support}/views/exception_notifier/_new_section.text.erb +0 -0
  82. data/test/test_helper.rb +11 -14
  83. metadata +136 -166
  84. data/test/dummy/.gitignore +0 -4
  85. data/test/dummy/Rakefile +0 -7
  86. data/test/dummy/app/controllers/application_controller.rb +0 -3
  87. data/test/dummy/app/controllers/posts_controller.rb +0 -30
  88. data/test/dummy/app/helpers/application_helper.rb +0 -2
  89. data/test/dummy/app/helpers/posts_helper.rb +0 -2
  90. data/test/dummy/app/models/post.rb +0 -2
  91. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  92. data/test/dummy/app/views/posts/_form.html.erb +0 -0
  93. data/test/dummy/app/views/posts/new.html.erb +0 -0
  94. data/test/dummy/app/views/posts/show.html.erb +0 -0
  95. data/test/dummy/config.ru +0 -4
  96. data/test/dummy/config/application.rb +0 -42
  97. data/test/dummy/config/boot.rb +0 -6
  98. data/test/dummy/config/database.yml +0 -22
  99. data/test/dummy/config/environment.rb +0 -17
  100. data/test/dummy/config/environments/development.rb +0 -25
  101. data/test/dummy/config/environments/production.rb +0 -50
  102. data/test/dummy/config/environments/test.rb +0 -35
  103. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  104. data/test/dummy/config/initializers/inflections.rb +0 -10
  105. data/test/dummy/config/initializers/mime_types.rb +0 -5
  106. data/test/dummy/config/initializers/secret_token.rb +0 -8
  107. data/test/dummy/config/initializers/session_store.rb +0 -8
  108. data/test/dummy/config/locales/en.yml +0 -5
  109. data/test/dummy/config/routes.rb +0 -3
  110. data/test/dummy/db/migrate/20110729022608_create_posts.rb +0 -15
  111. data/test/dummy/db/schema.rb +0 -24
  112. data/test/dummy/db/seeds.rb +0 -7
  113. data/test/dummy/lib/tasks/.gitkeep +0 -0
  114. data/test/dummy/public/404.html +0 -26
  115. data/test/dummy/public/422.html +0 -26
  116. data/test/dummy/public/500.html +0 -26
  117. data/test/dummy/public/favicon.ico +0 -0
  118. data/test/dummy/public/images/rails.png +0 -0
  119. data/test/dummy/public/index.html +0 -239
  120. data/test/dummy/public/javascripts/application.js +0 -2
  121. data/test/dummy/public/javascripts/controls.js +0 -965
  122. data/test/dummy/public/javascripts/dragdrop.js +0 -974
  123. data/test/dummy/public/javascripts/effects.js +0 -1123
  124. data/test/dummy/public/javascripts/prototype.js +0 -6001
  125. data/test/dummy/public/javascripts/rails.js +0 -191
  126. data/test/dummy/public/robots.txt +0 -5
  127. data/test/dummy/public/stylesheets/.gitkeep +0 -0
  128. data/test/dummy/public/stylesheets/scaffold.css +0 -56
  129. data/test/dummy/script/rails +0 -6
  130. data/test/dummy/test/functional/posts_controller_test.rb +0 -237
  131. data/test/dummy/test/test_helper.rb +0 -7
@@ -0,0 +1,97 @@
1
+ ### IRC notifier
2
+
3
+ This notifier sends notifications to an IRC channel using the carrier-pigeon gem.
4
+
5
+ #### Usage
6
+
7
+ Just add the [carrier-pigeon](https://github.com/portertech/carrier-pigeon) gem to your `Gemfile`:
8
+
9
+ ```ruby
10
+ gem 'carrier-pigeon'
11
+ ```
12
+
13
+ To configure it, you need to set at least the 'domain' option, like this:
14
+
15
+ ```ruby
16
+ Rails.application.config.middleware.use ExceptionNotification::Rack,
17
+ email: {
18
+ email_prefix: '[PREFIX] ',
19
+ sender_address: %{"notifier" <notifier@example.com>},
20
+ exception_recipients: %w{exceptions@example.com}
21
+ },
22
+ irc: {
23
+ domain: 'irc.example.com'
24
+ }
25
+ ```
26
+
27
+ There are several other options, which are described below. For example, to use ssl and a password, add a prefix, post to the '#log' channel, and include recipients in the message (so that they will be notified), your configuration might look like this:
28
+
29
+ ```ruby
30
+ Rails.application.config.middleware.use ExceptionNotification::Rack,
31
+ irc: {
32
+ domain: 'irc.example.com',
33
+ nick: 'BadNewsBot',
34
+ password: 'secret',
35
+ port: 6697,
36
+ channel: '#log',
37
+ ssl: true,
38
+ prefix: '[Exception Notification]',
39
+ recipients: ['peter', 'michael', 'samir']
40
+ }
41
+ ```
42
+
43
+ #### Options
44
+
45
+ ##### domain
46
+
47
+ *String, required*
48
+
49
+ The domain name of your IRC server.
50
+
51
+ ##### nick
52
+
53
+ *String, optional*
54
+
55
+ The message will appear from this nick. Default : 'ExceptionNotifierBot'.
56
+
57
+ ##### password
58
+
59
+ *String, optional*
60
+
61
+ Password for your IRC server.
62
+
63
+ ##### port
64
+
65
+ *String, optional*
66
+
67
+ Port your IRC server is listening on. Default : 6667.
68
+
69
+ ##### channel
70
+
71
+ *String, optional*
72
+
73
+ Message will appear in this channel. Default : '#log'.
74
+
75
+ ##### notice
76
+
77
+ *Boolean, optional*
78
+
79
+ Send a notice. Default : false.
80
+
81
+ ##### ssl
82
+
83
+ *Boolean, optional*
84
+
85
+ Whether to use SSL. Default : false.
86
+
87
+ ##### join
88
+
89
+ *Boolean, optional*
90
+
91
+ Join a channel. Default : false.
92
+
93
+ ##### recipients
94
+
95
+ *Array of strings, optional*
96
+
97
+ Nicks to include in the message. Default: []
@@ -0,0 +1,115 @@
1
+ ### Mattermost notifier
2
+
3
+ Post notification in a mattermost channel via [incoming webhook](http://docs.mattermost.com/developer/webhooks-incoming.html)
4
+
5
+ Just add the [HTTParty](https://github.com/jnunemaker/httparty) gem to your `Gemfile`:
6
+
7
+ ```ruby
8
+ gem 'httparty'
9
+ ```
10
+
11
+ To configure it, you **need** to set the `webhook_url` option.
12
+ You can also specify an other channel with `channel` option.
13
+
14
+ ```ruby
15
+ Rails.application.config.middleware.use ExceptionNotification::Rack,
16
+ email: {
17
+ email_prefix: '[PREFIX] ',
18
+ sender_address: %{"notifier" <notifier@example.com>},
19
+ exception_recipients: %w{exceptions@example.com}
20
+ },
21
+ mattermost: {
22
+ webhook_url: 'http://your-mattermost.com/hooks/blablabla',
23
+ channel: 'my-channel'
24
+ }
25
+ ```
26
+
27
+ If you are using Github or Gitlab for issues tracking, you can specify `git_url` as follow to add a *Create issue* link in you notification.
28
+ By default this will use your Rails application name to match the git repository. If yours differ you can specify `app_name`.
29
+
30
+
31
+ ```ruby
32
+ Rails.application.config.middleware.use ExceptionNotification::Rack,
33
+ email: {
34
+ email_prefix: '[PREFIX] ',
35
+ sender_address: %{"notifier" <notifier@example.com>},
36
+ exception_recipients: %w{exceptions@example.com}
37
+ },
38
+ mattermost: {
39
+ webhook_url: 'http://your-mattermost.com/hooks/blablabla',
40
+ git_url: 'github.com/aschen'
41
+ }
42
+ ```
43
+
44
+ You can also specify the bot name and avatar with `username` and `avatar` options.
45
+
46
+ ```ruby
47
+ Rails.application.config.middleware.use ExceptionNotification::Rack,
48
+ email: {
49
+ email_prefix: 'PREFIX] ',
50
+ sender_address: %{"notifier" <notifier@example.com>},
51
+ exception_recipients: %w{exceptions@example.com}
52
+ },
53
+ mattermost: {
54
+ webhook_url: 'http://your-mattermost.com/hooks/blablabla',
55
+ avatar: 'http://example.com/your-image.png',
56
+ username: 'Fail bot'
57
+ }
58
+ ```
59
+
60
+ Finally since the notifier use HTTParty, you can include all HTTParty options, like basic_auth for example.
61
+
62
+ ```ruby
63
+ Rails.application.config.middleware.use ExceptionNotification::Rack,
64
+ email: {
65
+ email_prefix: '[PREFIX] ',
66
+ sender_address: %{"notifier" <notifier@example.com>},
67
+ exception_recipients: %w{exceptions@example.com}
68
+ },
69
+ mattermost: {
70
+ webhook_url: 'http://your-mattermost.com/hooks/blablabla',
71
+ basic_auth: {
72
+ username: 'clara',
73
+ password: 'password'
74
+ }
75
+ }
76
+ ```
77
+
78
+ #### Options
79
+
80
+ ##### webhook_url
81
+
82
+ *String, required*
83
+
84
+ The Incoming WebHook URL on mattermost.
85
+
86
+ ##### channel
87
+
88
+ *String, optional*
89
+
90
+ Message will appear in this channel. Defaults to the channel you set as such on mattermost.
91
+
92
+ ##### username
93
+
94
+ *String, optional*
95
+
96
+ Username of the bot. Defaults to "Incoming Webhook"
97
+
98
+ ##### avatar
99
+
100
+ *String, optional*
101
+
102
+ Avatar of the bot. Defaults to incoming webhook icon.
103
+
104
+ ##### git_url
105
+
106
+ *String, optional*
107
+
108
+ Url of your gitlab or github with your organisation name for issue creation link (Eg: `github.com/aschen`). Defaults to nil and don't add link to the notification.
109
+
110
+ ##### app_name
111
+
112
+ *String, optional*
113
+
114
+ Your application name used for issue creation link. Defaults to `Rails.application.class.module_parent_name.underscore` for Rails versions >= 6;
115
+ `Rails.application.class.parent_name.underscore` otherwise.
@@ -0,0 +1,161 @@
1
+ ### Slack notifier
2
+
3
+ This notifier sends notifications to a slack channel using the slack-notifier gem.
4
+
5
+ #### Usage
6
+
7
+ Just add the [slack-notifier](https://github.com/stevenosloan/slack-notifier) gem to your `Gemfile`:
8
+
9
+ ```ruby
10
+ gem 'slack-notifier'
11
+ ```
12
+
13
+ To configure it, you need to set at least the 'webhook_url' option, like this:
14
+
15
+ ```ruby
16
+ Rails.application.config.middleware.use ExceptionNotification::Rack,
17
+ email: {
18
+ email_prefix: '[PREFIX] ',
19
+ sender_address: %{"notifier" <notifier@example.com>},
20
+ exception_recipients: %w{exceptions@example.com}
21
+ },
22
+ slack: {
23
+ webhook_url: '[Your webhook url]',
24
+ channel: '#exceptions',
25
+ additional_parameters: {
26
+ icon_url: 'http://image.jpg',
27
+ mrkdwn: true
28
+ }
29
+ }
30
+ ```
31
+
32
+ The slack notification will include any data saved under `env['exception_notifier.exception_data']`.
33
+
34
+ An example of how to send the server name to Slack in Rails (put this code in application_controller.rb):
35
+
36
+ ```ruby
37
+ before_action :set_notification
38
+
39
+ def set_notification
40
+ request.env['exception_notifier.exception_data'] = { 'server' => request.env['SERVER_NAME'] }
41
+ # can be any key-value pairs
42
+ end
43
+ ```
44
+
45
+ If you find this too verbose, you can determine to exclude certain information by doing the following:
46
+
47
+ ```ruby
48
+ Rails.application.config.middleware.use ExceptionNotification::Rack,
49
+ slack: {
50
+ webhook_url: '[Your webhook url]',
51
+ channel: '#exceptions',
52
+ additional_parameters: {
53
+ icon_url: 'http://image.jpg',
54
+ mrkdwn: true
55
+ },
56
+ ignore_data_if: lambda {|key, value|
57
+ "#{key}" == 'key_to_ignore' || value.is_a?(ClassToBeIgnored)
58
+ }
59
+ }
60
+ ```
61
+
62
+ Any evaluation to `true` will cause the key / value pair not be be sent along to Slack.
63
+
64
+
65
+ the `slack-notifier` gem allows to override the channel default value, if you ever
66
+ need to send a notification to a different slack channel. Simply add the
67
+ `channel` option when calling `.notify_exception`
68
+
69
+ ```ruby
70
+ ExceptionNotifier.notify_exception(
71
+ exception,
72
+ env: request.env,
73
+ channel: '#my-custom-channel', # Make sure the channel name starts with `#`
74
+ data: {
75
+ error: error_variable,
76
+ server: server_name
77
+ }
78
+ )
79
+ ```
80
+
81
+ If you ever need to add more `slack-notifier` specific options, and
82
+ particularly to the `#ping` method of the slack notifier, you can use
83
+ the `pre_callback` option when defining the middleware.
84
+ ```ruby
85
+ pre_callback: proc { |opts, _notifier, _backtrace, _message, message_opts|
86
+ message_opts[:channel] = opts[:channel] if opts.key?(:channel)
87
+ }
88
+
89
+ ```
90
+ - `message_opts` is the hash you want to append to if you need to add an option.
91
+ - `options` is the hash containing the values when you call
92
+ `ExceptionNotification.notify_exception`
93
+
94
+ An example implementation would be:
95
+ ```ruby
96
+ config.middleware.use ExceptionNotification::Rack,
97
+ slack: {
98
+ webhook_url: '[Your webhook url]',
99
+ pre_callback: proc { |opts, _notifier, _backtrace, _message, message_opts|
100
+ message_opts[:ping_option] = opts[:ping_option] if
101
+ opts.key?(:ping_option)
102
+ }
103
+ },
104
+ error_grouping: true
105
+ ```
106
+ Then when calling from within your application code:
107
+ ```ruby
108
+ ExceptionNotifier.notify_exception(
109
+ exception,
110
+ env: request.env,
111
+ ping_option: 'value',
112
+ # this will be passed to the slack notifier's `#ping`
113
+ # method, as a parameter. The `:pre_callback` hook will catch it
114
+ # and do that for you.
115
+ # Helpful, if the API evolves, you only need to update
116
+ # the `slack-notifier` gem
117
+ data: {
118
+ error: error_variable,
119
+ server: server_name
120
+ }
121
+ )
122
+
123
+ ```
124
+ #### Options
125
+
126
+ ##### webhook_url
127
+
128
+ *String, required*
129
+
130
+ The Incoming WebHook URL on slack.
131
+
132
+ ##### channel
133
+
134
+ *String, optional*
135
+
136
+ Message will appear in this channel. Defaults to the channel you set as such on slack.
137
+
138
+ ##### username
139
+
140
+ *String, optional*
141
+
142
+ Username of the bot. Defaults to the name you set as such on slack
143
+
144
+ ##### custom_hook
145
+
146
+ *String, optional*
147
+
148
+ Custom hook name. See [slack-notifier](https://github.com/stevenosloan/slack-notifier#custom-hook-name) for
149
+ more information. Default: 'incoming-webhook'
150
+
151
+ ##### additional_parameters
152
+
153
+ *Hash of strings, optional*
154
+
155
+ Contains additional payload for a message (e.g avatar, attachments, etc). See [slack-notifier](https://github.com/stevenosloan/slack-notifier#additional-parameters) for more information.. Default: '{}'
156
+
157
+ ##### additional_fields
158
+
159
+ *Array of Hashes, optional*
160
+
161
+ Contains additional fields that will be added to the attachement. See [Slack documentation](https://api.slack.com/docs/message-attachments).
@@ -0,0 +1,37 @@
1
+ ### Amazon SNS Notifier
2
+
3
+ Notify all exceptions Amazon - Simple Notification Service: [SNS](https://aws.amazon.com/sns/).
4
+
5
+ #### Usage
6
+
7
+ Add the [aws-sdk-sns](https://github.com/aws/aws-sdk-ruby/tree/master/gems/aws-sdk-sns) gem to your `Gemfile`:
8
+
9
+ ```ruby
10
+ gem 'aws-sdk-sns', '~> 1.5'
11
+ ```
12
+
13
+ To configure it, you **need** to set 3 required options for aws: `region`, `access_key_id` and `secret_access_key`, and one more option for sns: `topic_arn`.
14
+
15
+ ```ruby
16
+ Rails.application.config.middleware.use ExceptionNotification::Rack,
17
+ sns: {
18
+ region: 'us-east-x',
19
+ access_key_id: 'access_key_id',
20
+ secret_access_key: 'secret_access_key',
21
+ topic_arn: 'arn:aws:sns:us-east-x:XXXX:my-topic'
22
+ }
23
+ ```
24
+
25
+ ##### sns_prefix
26
+ *String, optional *
27
+
28
+ Prefix in the notification subject, by default: "[Error]"
29
+
30
+ ##### backtrace_lines
31
+ *Integer, optional *
32
+
33
+ Number of backtrace lines to be displayed in the notification message. By default: 10
34
+
35
+ #### Note:
36
+ * You may need to update your previous `aws-sdk-*` gems in order to setup `aws-sdk-sns` correctly.
37
+ * If you need any further information about the available regions or any other SNS related topic consider: [SNS faqs](https://aws.amazon.com/sns/faqs/)
@@ -0,0 +1,54 @@
1
+ ### Teams notifier
2
+
3
+ Post notification in a Microsoft Teams channel via [Incoming Webhook Connector](https://docs.microsoft.com/en-us/outlook/actionable-messages/actionable-messages-via-connectors)
4
+ Just add the [HTTParty](https://github.com/jnunemaker/httparty) gem to your `Gemfile`:
5
+
6
+ ```ruby
7
+ gem 'httparty'
8
+ ```
9
+
10
+ To configure it, you **need** to set the `webhook_url` option.
11
+ If you are using GitLab for issue tracking, you can specify `git_url` as follows to add a *Create issue* button in your notification.
12
+ By default this will use your Rails application name to match the git repository. If yours differs, you can specify `app_name`.
13
+ By that same notion, you may also set a `jira_url` to get a button that will send you to the New Issue screen in Jira.
14
+
15
+ ```ruby
16
+ Rails.application.config.middleware.use ExceptionNotification::Rack,
17
+ email: {
18
+ email_prefix: "[PREFIX] ",
19
+ sender_address: %{"notifier" <notifier@example.com>},
20
+ exception_recipients: %w{exceptions@example.com}
21
+ },
22
+ teams: {
23
+ webhook_url: 'https://outlook.office.com/webhook/your-guid/IncomingWebhook/team-guid',
24
+ git_url: 'https://your-gitlab.com/Group/Project',
25
+ jira_url: 'https://your-jira.com'
26
+ }
27
+ ```
28
+
29
+ #### Options
30
+
31
+ ##### webhook_url
32
+
33
+ *String, required*
34
+
35
+ The Incoming WebHook URL on Teams.
36
+
37
+ ##### git_url
38
+
39
+ *String, optional*
40
+
41
+ Url of your gitlab or github with your organisation name for issue creation link (Eg: `github.com/aschen`). Defaults to nil and doesn't add link to the notification.
42
+
43
+ ##### jira_url
44
+
45
+ *String, optional*
46
+
47
+ Url of your Jira instance, adds button for Create Issue screen. Defaults to nil and doesn't add a button to the card.
48
+
49
+ ##### app_name
50
+
51
+ *String, optional*
52
+
53
+ Your application name used for git issue creation link. Defaults to `Rails.application.class.module_parent_name.underscore` for Rails versions >= 6;
54
+ `Rails.application.class.parent_name.underscore` otherwise.