Files
plugin-drone-discord/DOCS.md
T
qwerty287 2000a2e484 Add Woodpecker support to docs (#57)
* Update README.md

* Add files via upload

* Update DOCS.md

* Update main.go
2024-04-29 15:23:23 +08:00

200 lines
4.4 KiB
Markdown

---
date: 2017-06-10T00:00:00+00:00
title: Discord
name: Discord
description: Send message to Discord channel using Webhook
author: appleboy
tags: [ notifications, chat ]
repo: appleboy/drone-discord
logo: discord.svg
icon: https://raw.githubusercontent.com/appleboy/drone-discord/main/images/discord-mark-blue.svg
image: appleboy/drone-discord
containerImage: appleboy/drone-discord
containerImageUrl: https://hub.docker.com/r/appleboy/drone-discord
url: https://github.com/appleboy/drone-discord
---
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.
```sh
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:
```yaml
- name: discord notification
image: appleboy/drone-discord
settings:
webhook_id: xxxxxxxxxx
webhook_token: xxxxxxxxxx
```
Example configuration with TTS (text-to-speech) message:
```diff
- 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:
```diff
- 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:
```diff
- 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:
```diff
- 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:
```diff
- 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}}`