smartinez87/exception_notification

View on GitHub
docs/notifiers/mattermost.md

Summary

Maintainability
Test Coverage
### Mattermost notifier

Post notification in a mattermost channel via [incoming webhook](http://docs.mattermost.com/developer/webhooks-incoming.html)

Just add the [HTTParty](https://github.com/jnunemaker/httparty) gem to your `Gemfile`:

```ruby
gem 'httparty'
```

To configure it, you **need** to set the `webhook_url` option.
You can also specify an other channel with `channel` option.

```ruby
Rails.application.config.middleware.use ExceptionNotification::Rack,
                                        email: {
                                          email_prefix: '[PREFIX] ',
                                          sender_address: %{"notifier" <notifier@example.com>},
                                          exception_recipients: %w{exceptions@example.com}
                                        },
                                        mattermost: {
                                          webhook_url: 'http://your-mattermost.com/hooks/blablabla',
                                          channel: 'my-channel'
                                        }
```

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.
By default this will use your Rails application name to match the git repository. If yours differ you can specify `app_name`.


```ruby
Rails.application.config.middleware.use ExceptionNotification::Rack,
                                        email: {
                                          email_prefix: '[PREFIX] ',
                                          sender_address: %{"notifier" <notifier@example.com>},
                                          exception_recipients: %w{exceptions@example.com}
                                        },
                                        mattermost: {
                                          webhook_url: 'http://your-mattermost.com/hooks/blablabla',
                                          git_url: 'github.com/aschen'
                                        }
```

You can also specify the bot name and avatar with `username` and `avatar` options.

```ruby
Rails.application.config.middleware.use ExceptionNotification::Rack,
                                        email: {
                                          email_prefix: 'PREFIX] ',
                                          sender_address: %{"notifier" <notifier@example.com>},
                                          exception_recipients: %w{exceptions@example.com}
                                        },
                                        mattermost: {
                                          webhook_url: 'http://your-mattermost.com/hooks/blablabla',
                                          avatar: 'http://example.com/your-image.png',
                                          username: 'Fail bot'
                                        }
```

Finally since the notifier use HTTParty, you can include all HTTParty options, like basic_auth for example.

```ruby
Rails.application.config.middleware.use ExceptionNotification::Rack,
                                        email: {
                                          email_prefix: '[PREFIX] ',
                                          sender_address: %{"notifier" <notifier@example.com>},
                                          exception_recipients: %w{exceptions@example.com}
                                        },
                                        mattermost: {
                                          webhook_url: 'http://your-mattermost.com/hooks/blablabla',
                                          basic_auth: {
                                            username: 'clara',
                                            password: 'password'
                                          }
                                        }
```

#### Options

##### webhook_url

*String, required*

The Incoming WebHook URL on mattermost.

##### channel

*String, optional*

Message will appear in this channel. Defaults to the channel you set as such on mattermost.

##### username

*String, optional*

Username of the bot. Defaults to "Incoming Webhook"

##### avatar

*String, optional*

Avatar of the bot. Defaults to incoming webhook icon.

##### git_url

*String, optional*

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.

##### app_name

*String, optional*

Your application name used for issue creation link. Defaults to `Rails.application.class.module_parent_name.underscore` for Rails versions >= 6;
`Rails.application.class.parent_name.underscore` otherwise.