Skip to main content
Plugins / Discord

Discord

by appleboy

Send message to Discord channel using Webhook


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

The webhook provided by discord is a single URL which contains the webhook_id and the webhook_token. The URL follows the following pattern.

https://discord.com/api/webhooks/<webhook_id>/<webhook_token>

The discord plugin posts build status messages to discord channel. The below pipeline configuration demonstrates simple usage:

- name: discord notification
  image: appleboy/drone-discord
  settings:
    webhook_id: xxxxxxxxxx
    webhook_token: xxxxxxxxxx

Example configuration with TTS (text-to-speech) message:

  - name: discord notification
    image: appleboy/drone-discord
    settings:
      webhook_id: xxxxxxxxxx
      webhook_token: xxxxxxxxxx
+     tts: true
      message: "Testing from drone image"

Example configuration with override the default username of the webhook:

  - name: discord notification
    image: appleboy/drone-discord
    settings:
      webhook_id: xxxxxxxxxx
      webhook_token: xxxxxxxxxx
+     username: appleboy
      message: "Testing from drone image"

Example configuration with override the default avatar of the webhook:

  - name: discord notification
    image: appleboy/drone-discord
    settings:
      webhook_id: xxxxxxxxxx
      webhook_token: xxxxxxxxxx
+     avatar_url: http://exampple.com/appleboy.png
      message: "Testing from drone image"

Example configuration with a custom message template:

  - name: discord notification
    image: appleboy/drone-discord
    settings:
      webhook_id: xxxxxxxxxx
      webhook_token: xxxxxxxxxx
+     message: >
+       {{#success build.status}}
+         build {{build.number}} succeeded. Good job.
+       {{else}}
+         build {{build.number}} failed. Fix me please.
+       {{/success}}

Example configuration using credentials from secrets:

  - name: discord notification
    image: appleboy/drone-discord
    settings:
      webhook_id:
        from_secret: discord_webhook_id
      webhook_token:
        from_secret: discord_webhook_token
      message: "Testing from drone image"

Secret Reference

discord_webhook_id : discord webhook id

discord_webhook_token : discord webhook token

Parameter Reference

webhook_id : webhook id

webhook_token : webhook token

avatar_url : override the default avatar of the webhook

username : override the default username of the webhook

tts : true if this is a TTS message

message : the message contents (up to 2000 characters)

Template Reference

repo.owner : repository owner

repo.name : repository name

build.status : build status type enumeration, either success or failure

build.event : build event type enumeration, one of push, pull_request, tag, deployment

build.number : build number

build.commit : git sha for current commit

build.message : git commit messsage for current commit

build.branch : git branch for current commit

build.tag : git tag for current commit

build.ref : git ref for current commit

build.author : git author for current commit

build.link : link the the build results in drone

build.started : unix timestamp for build started

build.finished : unix timestamp for build finished

Template Function Reference

uppercasefirst : converts the first letter of a string to uppercase

uppercase : converts a string to uppercase

lowercase : converts a string to lowercase. Example {{lowercase build.author}}

datetime : converts a unix timestamp to a date time string. Example {{datetime build.started}}

success : returns true if the build is successful

failure : returns true if the build is failed

truncate : returns a truncated string to n characters. Example {{truncate build.sha 8}}

urlencode : returns a url encoded string

since : returns a duration string between now and the given timestamp. Example {{since build.started}}