2023-07-22 16:22:35 +02:00
|
|
|
# drone-matrixchat-notify
|
|
|
|
|
|
|
|
A [drone.io] [plugin] to send notifications to Matrix chat rooms from
|
|
|
|
CI pipeline steps.
|
|
|
|
|
|
|
|
Example pipeline configuration:
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
kind: pipeline
|
|
|
|
type: docker
|
|
|
|
name: default
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: build
|
|
|
|
image: alpine
|
|
|
|
commands:
|
|
|
|
- ./build
|
|
|
|
|
|
|
|
- name: notify
|
|
|
|
image: spotlightkid/drone-matrixchat-notify
|
|
|
|
settings:
|
|
|
|
homeserver: 'https://matrix.org'
|
|
|
|
roomid: '!xxxxxx@matrix.org'
|
|
|
|
userid: '@drone-bot@matrix.org'
|
|
|
|
password:
|
|
|
|
from_secret: drone-bot-pw
|
|
|
|
template: '${DRONE_REPO} ${DRONE_COMMIT_SHA} ${DRONE_BUILD_STATUS}'
|
|
|
|
```
|
|
|
|
|
2023-07-22 16:44:50 +02:00
|
|
|
## Configuration settings
|
2023-07-22 16:22:35 +02:00
|
|
|
|
2023-07-23 23:15:08 +02:00
|
|
|
|
|
|
|
* `allowed_attrs` *(default:* [`DEFAULT_ALLOWED_ATTRS`]*)*
|
|
|
|
|
|
|
|
List or string with comma-separated list of HTML attribute names or
|
|
|
|
dict mapping tag names to lists of attributes names.
|
|
|
|
|
|
|
|
See the bleach documentation on [allowed attributes] for more information.
|
|
|
|
|
2023-07-23 23:09:55 +02:00
|
|
|
* `allowed_tags` *(default:* [`DEFAULT_ALLOWED_TAGS`]*)*
|
|
|
|
|
|
|
|
List or set or string with comma-separated list of HTML tag names. HTML
|
|
|
|
tags not included, will be stripped from the HTML output generated by
|
|
|
|
rendering a Markdown message template.
|
|
|
|
|
|
|
|
Note that the default list does not include any tags, which allow to load
|
|
|
|
external resources when the generated HTML is displayed, notably `img`
|
|
|
|
is not included.
|
|
|
|
|
2023-07-22 16:22:35 +02:00
|
|
|
* `accesstoken`
|
|
|
|
|
|
|
|
Access token to use for authentication instead of `password`. Either an
|
|
|
|
access token or a password is required.
|
|
|
|
|
|
|
|
* `deviceid`
|
|
|
|
|
|
|
|
Device ID to send with access token.
|
|
|
|
|
|
|
|
* `devicename`
|
|
|
|
|
|
|
|
Device name to send with access token.
|
|
|
|
|
|
|
|
* `homeserver` *(default:* `https://matrix.org`*)*
|
|
|
|
|
|
|
|
The Matrix homeserver URL.
|
|
|
|
|
|
|
|
* `markdown`
|
|
|
|
|
|
|
|
If set to `yes`, `y`, `true` or `on`, the message resulting from template
|
|
|
|
substtution is considered to be in Markdown format and will be rendered to
|
|
|
|
HTML and sent as a formatted message with `org.matrix.custom.html` format.
|
|
|
|
|
2023-07-23 23:09:55 +02:00
|
|
|
* `markdown_extensions` *(default:* `admonition, extra, sane_lists, smarty`)
|
|
|
|
|
|
|
|
Comma-separated list of enabled Markdown extensions. See this
|
|
|
|
[list of extensions] for valid extension names. Including an invalid
|
|
|
|
extension name in this list will disable Markdown rendering.
|
|
|
|
|
2023-07-23 19:34:25 +02:00
|
|
|
* `pass_environment` *(default:* `DRONE_*`*)*
|
|
|
|
|
|
|
|
Comma-separated white-list of environment variable names or name patterns.
|
|
|
|
Patterns are shell-glob style patterns and case-sensitive.
|
|
|
|
|
|
|
|
Only environment variables matching any of the given names or patterns will
|
|
|
|
be available as valid placeholders in the message template.
|
|
|
|
|
2023-07-22 16:22:35 +02:00
|
|
|
* `password`
|
|
|
|
|
|
|
|
Password to use for authenticating the user set with `userid`. Either a
|
|
|
|
password or an access token is required.
|
|
|
|
|
|
|
|
* `roomid` *(required)*
|
|
|
|
|
|
|
|
ID of matrix chat room to send messages to (ID, not alias).
|
|
|
|
|
|
|
|
* `template` *(default:* `${DRONE_BUILD_STATUS}`*)*
|
|
|
|
|
|
|
|
The message template. Valid placeholders of the form `${PLACEHOLDER}` will
|
2023-07-23 19:34:25 +02:00
|
|
|
be substituted with the values of the matching environment variables
|
|
|
|
(subject to filtering according to the `pass_environment` setting).
|
2023-07-22 16:22:35 +02:00
|
|
|
|
2023-07-22 22:13:59 +02:00
|
|
|
See this [reference] for environment variables available in drone.io CI
|
2023-07-22 16:22:35 +02:00
|
|
|
pipelines.
|
|
|
|
|
|
|
|
* `userid` *(required)*
|
|
|
|
|
|
|
|
ID of user on homeserver to send message as (ID, not username).
|
|
|
|
|
|
|
|
|
2023-07-23 23:09:55 +02:00
|
|
|
[`DEFAULT_ALLOWED_ATTRS`]: ./matrixchat-notify.py#L29
|
|
|
|
[`DEFAULT_ALLOWED_TAGS`]: ./matrixchat-notify.py#L35
|
|
|
|
[allowed attributes]: https://bleach.readthedocs.io/en/latest/clean.html#allowed-attributes-attributes
|
2023-07-22 16:22:35 +02:00
|
|
|
[drone.io]: https://drone.io/
|
2023-07-23 23:09:55 +02:00
|
|
|
[list of extensions]: https://python-markdown.github.io/extensions/
|
2023-07-22 16:22:35 +02:00
|
|
|
[plugin]: https://docs.drone.io/plugins/overview/
|
|
|
|
[reference]: https://docs.drone.io/pipeline/environment/reference/
|