A drone.io plugin to send notifications to Matrix chat rooms from CI pipeline steps. https://hub.docker.com/r/spotlightkid/drone-matrixchat-notify
Go to file
Christopher Arndt 92d85d31bf fix: do not require bleach module by default
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
2023-07-23 23:54:03 +02:00
.dockerignore Initial commit 2023-07-22 16:22:35 +02:00
.gitignore Initial commit 2023-07-22 16:22:35 +02:00
Dockerfile feat: support markdown extension and bleach generated HTML 2023-07-23 23:09:55 +02:00
LICENSE docs: add license file 2023-07-22 16:35:26 +02:00
README.md fix: do not require bleach module by default 2023-07-23 23:54:03 +02:00
matrixchat-notify-config.json Initial commit 2023-07-22 16:22:35 +02:00
matrixchat-notify.py fix: do not require bleach module by default 2023-07-23 23:54:03 +02:00

README.md

drone-matrixchat-notify

A drone.io plugin to send notifications to Matrix chat rooms from CI pipeline steps.

Example pipeline configuration:

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}'

Configuration settings

  • 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.

  • 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.

  • 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.

    Using this feature requires the markdown and bleach Python modules to be available (the plugin's docker image has them installed).

  • 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.

  • 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.

  • 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 be substituted with the values of the matching environment variables (subject to filtering according to the pass_environment setting).

    See this reference for environment variables available in drone.io CI pipelines.

  • userid (required)

    ID of user on homeserver to send message as (ID, not username).