Categorygithub.com/appleboy/drone-discord
modulepackage
1.3.2
Repository: https://github.com/appleboy/drone-discord.git
Documentation: pkg.go.dev

# README

drone-discord

logo

Drone / Woodpecker plugin for sending message to Discord channel using Webhook.

GoDoc codecov Go Report Card Docker Pulls

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. For the usage information and a listing of the available options please take a look at the docs.

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

Features

  • Send Multiple Messages
  • Send Multiple Files

Build or Download a binary

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

  • Windows amd64/386
  • Linux arm/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:

export GOOS=linux
export GOARCH=amd64
export CGO_ENABLED=0
export GO111MODULE=on

go test -cover ./...

go build -v -a -tags netgo -o release/linux/amd64/drone-discord

Usage

There are three ways to send notification.

Usage from binary

drone-discord \
  --webhook-id xxxx \
  --webhook-token xxxx \
  --message "Test Message"

Usage from docker

docker run --rm \
  -e WEBHOOK_ID=xxxxxxx \
  -e WEBHOOK_TOKEN=xxxxxxx \
  -e WAIT=false \
  -e TTS=false \
  -e USERNAME=test \
  -e AVATAR_URL=http://example.com/xxxx.png \
  -e MESSAGE=test \
  appleboy/drone-discord

Usage from drone ci

Send Notification

Execute from the working directory:

docker run --rm \
  -e WEBHOOK_ID=xxxxxxx \
  -e WEBHOOK_TOKEN=xxxxxxx \
  -e WAIT=false \
  -e TTS=false \
  -e USERNAME=test \
  -e AVATAR_URL=http://example.com/xxxx.png \
  -e MESSAGE=test \
  -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 [email protected] \
  -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

Declarative environment config usage

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

- name: msg status
  image: appleboy/drone-discord
  settings:
    webhook_id:
      from_secret: discord_id
    webhook_token:
      from_secret: discord_token
    message: "{{#success build.status}}✅{{else}}❌{{/success}}  Repository `[{{repo.name}}/{{commit.branch}}]` triggered by event `[{{uppercase build.event}}]` for build.\n    - Commit [[{{commit.sha}}]({{commit.link}})]\n    - Author `[{{commit.author}} / {{commit.email}}]`\n    - Message: {{commit.message}}    - Drone build [[#{{build.number}}]({{build.link}})] reported `[{{uppercase build.status}}]` at `[{{datetime build.finished \"2006.01.02 15:04\" \"\"}}]`\n"
    when:
      status: [ success, failure, changed ]
- name: multi line msg status 
  ...
    message: >
      Line one
      Line two

Testing

Test the package with the following command:

make test

# Constants

DroneDesc default drone description.
DroneIconURL default drone logo url.

# Variables

Version set at compile-time.

# Structs

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author