mirror of
https://github.com/valitydev/botkube.git
synced 2024-11-06 08:25:19 +00:00
ad9a738cdd
#### ISSUE TYPE <!--- Pick one below and delete the rest: --> - Feature Pull Request ##### SUMMARY <!--- Describe the change, including rationale and design decisions --> **Add support for Discord:** This PR, - adds discord bot - adds discord notifier - adds required discord configurations into comm_config.yaml - adds discordgo module into go.mod - adds discord configs into all yaml files <!--- If you are fixing an existing issue, please include "Fixes #nnn" in your PR comment; and describe briefly what the change does. --> <!--- Please list dependencies added with your change also --> Fixes #97 ### Steps For Creation and Integration: 1. Reach https://discordapp.com/developers/applications 2. Create New Application named Botkube and add a bot named **Botkube** into the Application 3. Copy the Application **CLIENT ID** and place it under _Dischord.botid_ in comm-config.yaml 4. Copy Bot **TOKEN** and place it under _Dischord.token_ in comm-config.yaml 5. Generate the URL with suitable permissions using the OAuth2 URL Generator available under OAuth2 section to the add bot to your Discord server ``` https://discordapp.com/oauth2/authorize?&client_id=<YOUR_CLIENT_ID>&scope=bot&permissions=<SET_OF_PERMISSIONS> ``` 6. Paste the generated URL in a new tab, select the discord sever to which you want to add the bot and Authorise Bot addition. 7. Create a new channel and/or copy the **CHANNEL ID** of an existing one that you want to use and place it under _Dischord.channel_ ```yaml # Settings for Discord discord: enabled: true token: 'DISCORD_TOKEN' # BotKube Bot Token botid: 'DISCORD_BOT_ID' # BotKube Application Client ID channel: 'DISCORD_CHANNEL_ID' # Discord Channel id for receiving BotKube alerts notiftype: short # Change notification type short/long you want to receive. notiftype is optional and Default notification type is short (if not specified) ``` #### Note: Follow the first 4 mins of this [Video Tutorial](https://youtu.be/8o25pRbXdFw) to understand the process visually. ### Preview: ![ping](https://user-images.githubusercontent.com/30741615/80600577-3931cf00-8a4a-11ea-9215-a725a0b17256.png) ![pod-create-short](https://user-images.githubusercontent.com/30741615/80600638-55357080-8a4a-11ea-976f-b91e823c93bd.png) ![pod-error-long](https://user-images.githubusercontent.com/30741615/80600803-8dd54a00-8a4a-11ea-90e4-a205e93aba5f.png) ![file-attachment](https://user-images.githubusercontent.com/30741615/80600724-75fdc600-8a4a-11ea-9b10-1b5ac0e79548.png)
55 lines
2.5 KiB
YAML
55 lines
2.5 KiB
YAML
# Copyright (c) 2019 InfraCloud Technologies
|
|
#
|
|
# Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
# this software and associated documentation files (the "Software"), to deal in
|
|
# the Software without restriction, including without limitation the rights to
|
|
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
# the Software, and to permit persons to whom the Software is furnished to do so,
|
|
# subject to the following conditions:
|
|
#
|
|
# The above copyright notice and this permission notice shall be included in all
|
|
# copies or substantial portions of the Software.
|
|
#
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
|
# Communication settings
|
|
communications:
|
|
# Settings for Slack
|
|
slack:
|
|
enabled: true
|
|
channel: 'cloud-alerts'
|
|
token: 'ABCDEFG'
|
|
notiftype: short # Change notification type short/long you want to receive. notiftype is optional and Default notification type is short (if not specified)
|
|
|
|
# Settings for Mattermost
|
|
mattermost:
|
|
enabled: false
|
|
url: 'MATTERMOST_SERVER_URL' # URL where Mattermost is running. e.g https://example.com:9243
|
|
token: 'MATTERMOST_TOKEN' # Personal Access token generated by BotKube user
|
|
team: 'MATTERMOST_TEAM' # Mattermost Team to configure with BotKube
|
|
channel: 'MATTERMOST_CHANNEL' # Mattermost Channel for receiving BotKube alerts
|
|
notiftype: short # Change notification type short/long you want to receive. notiftype is optional and Default notification type is short (if not specified)
|
|
|
|
# Settings for ELS
|
|
elasticsearch:
|
|
enabled: false
|
|
server: 'ELASTICSEARCH_ADDRESS' # e.g https://example.com:9243
|
|
username: 'ELASTICSEARCH_USERNAME'
|
|
password: 'ELASTICSEARCH_PASSWORD'
|
|
# ELS index settings
|
|
index:
|
|
name: botkube
|
|
type: botkube-event
|
|
shards: 1
|
|
replicas: 0
|
|
|
|
# Settings for Webhook
|
|
webhook:
|
|
enabled: true
|
|
url: 'WEBHOOK_URL' # e.g https://example.com:80
|