Bo-Yi Wu 7ad00de109 add discord notification
Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2017-06-10 13:27:37 +08:00
2017-06-10 13:02:56 +08:00
2017-06-10 13:27:37 +08:00
2017-06-10 11:14:12 +08:00
2017-06-10 13:14:50 +08:00
2017-06-10 13:11:26 +08:00
2017-06-10 13:11:26 +08:00
2017-06-10 10:07:36 +08:00
2017-06-10 13:01:10 +08:00
2017-06-10 13:14:50 +08:00
2017-06-10 13:01:10 +08:00
2017-06-10 12:08:14 +08:00
2017-06-10 11:18:30 +08:00

drone-discord

Drone plugin for sending message to Discord channel using Webhook.

GoDoc Build Status codecov Go Report Card Docker Pulls Release

Webhooks are a low-effort way to post messages to channels in Discord. They do not require a bot user or authentication to use. See more api document information.

Sending discord message using a binary, docker or Drone CI.

Build or Download a binary

The pre-compiled binaries can be downloaded from release page. Support the following OS type.

  • Windows amd64/386
  • Linux amd64/386
  • Darwin amd64/386

With Go installed

$ go get -u -v github.com/appleboy/drone-discord

or build the binary with the following command:

$ make build

Docker

Build the docker image with the following commands:

$ make docker

Please note incorrectly building the image for the correct x64 linux and with CGO disabled will result in an error when running the Docker image:

docker: Error response from daemon: Container command
'/bin/drone-discord' not found or does not exist..

Usage

There are three ways to send notification.

Usage from binary

Setup Webhook service

Setup Webhook service as default port 8088.

drone-discord \
  --secret xxxx \
  --token xxxx \
  webhook

Change default webhook port to 8089.

drone-discord \
  --port 8089 \
  --secret xxxx \
  --token xxxx \
  webhook

Use localtunnel to tunnel your locally running bot so that Line can reach the webhook.

drone-discord \
  -s secret \
  -t token \
  --tunnel \
  --port 2002 \
  webhook

Use Let's Encrypt. Please make sure you have permission to listen on 443 port.

drone-discord \
  -s secret \
  -t token \
  -autotls \
  -host example.com \
  -cache /var/www/.cache \
  --port 443 \
  webhook

Tips: Another way to use ngrok to tunnel your locally running bot so that Line can reach the webhook.

Send Notification

Setup the --to flag after fetch user id from webhook service.

drone-discord \
  --secret xxxx \
  --token xxxx \
  --to xxxx \
  --message "Test Message"

Usage from docker

Setup Webhook service

Setup Webhook service as default port 8088.

docker run --rm \
  -e LINE_CHANNEL_SECRET=xxxxxxx \
  -e LINE_CHANNEL_TOKEN=xxxxxxx \
  appleboy/drone-discord webhook

Change default webhook port to 8089.

docker run --rm \
  -e LINE_CHANNEL_SECRET=xxxxxxx \
  -e LINE_CHANNEL_TOKEN=xxxxxxx \
  -e LINE_PORT=8089 \
  appleboy/drone-discord webhook

Tips: Use ngrok to tunnel your locally running bot so that Line can reach the webhook.

Send Notification

docker run --rm \
  -e LINE_CHANNEL_SECRET=xxxxxxx \
  -e LINE_CHANNEL_TOKEN=xxxxxxx \
  -e LINE_TO=xxxxxxx \
  -e LINE_MESSAGE=test \
  -e LINE_IMAGES=https://example.com/1.png \
  -e LINE_VIDEOS=https://example.com/1.mp4 \
  -e LINE_AUDIOS=https://example.com/1.mp3::1000 \
  -e LINE_STICKERS=1::1 \
  -e LINE_LOCATIONS=title::address::latitude::longitude \
  -e LINE_DELIMITER=:: \
  appleboy/drone-discord

Usage from drone ci

Send Notification

Execute from the working directory:

docker run --rm \
  -e PLUGIN_CHANNEL_SECRET=xxxxxxx \
  -e PLUGIN_CHANNEL_TOKEN=xxxxxxx \
  -e PLUGIN_TO=xxxxxxx \
  -e PLUGIN_MESSAGE=test \
  -e PLUGIN_IMAGES=https://example.com/1.png \
  -e PLUGIN_VIDEOS=https://example.com/1.mp4 \
  -e PLUGIN_AUDIOS=https://example.com/1.mp3::1000 \
  -e PLUGIN_STICKERS=1::1 \
  -e PLUGIN_LOCATIONS=title::address::latitude::longitude \
  -e PLUGIN_DELIMITER=:: \
  -e PLUGIN_ONLY_MATCH_EMAIL=false \
  -e DRONE_REPO_OWNER=appleboy \
  -e DRONE_REPO_NAME=go-hello \
  -e DRONE_COMMIT_SHA=e5e82b5eb3737205c25955dcc3dcacc839b7be52 \
  -e DRONE_COMMIT_BRANCH=master \
  -e DRONE_COMMIT_AUTHOR=appleboy \
  -e DRONE_COMMIT_AUTHOR_EMAIL=appleboy@gmail.com \
  -e DRONE_COMMIT_MESSAGE=Test_Your_Commit \
  -e DRONE_BUILD_NUMBER=1 \
  -e DRONE_BUILD_STATUS=success \
  -e DRONE_BUILD_LINK=http://github.com/appleboy/go-hello \
  -e DRONE_JOB_STARTED=1477550550 \
  -e DRONE_JOB_FINISHED=1477550750 \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-discord

You can get more information about how to use scp plugin in drone.

Testing

Test the package with the following command:

$ make test
S
Description
Languages
Go 90.4%
Makefile 7.6%
Dockerfile 2%