Skip to content

Commit

Permalink
Add task notify-matrix
Browse files Browse the repository at this point in the history
This PR adds a new task, `notify-matrix` which sends messages to a [Matrix](https://matrix.org/) room on its corresponding endpoint.
  • Loading branch information
sherine-k committed Jun 13, 2023
1 parent df36b38 commit b93eaaf
Show file tree
Hide file tree
Showing 5 changed files with 110 additions and 0 deletions.
35 changes: 35 additions & 0 deletions task/notify-matrix/0.1/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# `notify-matrix`

The `notify-marix` `Task` sends messages to a [Matrix](https://matrix.org/) room on its corresponding endpoint.

## Parameters

This `Task` has the following required inputs:

1. **`matrix-secret`**: the name of a secret, containing a valid matrix access token (see below)
2. **`room`**: the matrix roomID where the notification will be sent, in the format `#ROOM_NAME:SERVER_NAME`
3. **`endpoint`**: URI of the matrix server to connect and send the message from
4. **`message`**: the message to be sent

## Setting up the `matrix-secret`

In order for the task to be able to send a message to the selected matrix room, make sure you create a secret, of type generic. It should contain a key `token`, containing the access token to the matrix endpoint.

Ex:
```yaml
kind: Secret
apiVersion: v1
metadata:
name: matrix-access-token
stringData:
token: {OAuth token for the user/bot with access to the room}
```
## Platforms
The Task can be run on `linux/amd64`, `linux/s390x`, `linux/386`, and `linux/ppc64le` platforms.

## Usage

[This TaskRun](./samples/notify-matrix-run.yaml) demonstrate usage of the notify-matrix Task.

45 changes: 45 additions & 0 deletions task/notify-matrix/0.1/notify-matrix.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: notify-matrix
labels:
app.kubernetes.io/version: "0.1"
annotations:
tekton.dev/pipelines.minVersion: "0.12.1"
tekton.dev/categories: Messaging
tekton.dev/tags: messaging
tekton.dev/platforms: "linux/386,linux/amd64,linux/s390x,linux/ppc64le"
tekton.dev/displayName: "Notify Matrix Room"
spec:
description: >-
These tasks post a simple message to a matrix room.
This task uses Matrix's Client-Server REST api to send the message.
params:
- name: matrix-secret
type: string
description: secret name containing matrix access token (key is token)
- name: room
type: string
description: room id (in the format !<ROOM_ID>:<SERVER_NAME>)
- name: endpoint
type: string
description: Matrix server URL to which to send the message
- name: message
type: string
description: plain text message
steps:
- name: post
image: docker.io/curlimages/curl:7.70.0@sha256:031df77a11e5edded840bc761a845eab6e3c2edee22669fb8ad6d59484b6a1c4 #tag: 7.70.0
script: |
#!/usr/bin/env bash
if [[ -z "$(params.room)" || -z "$(params.endpoint)" ]]; then
echo "No Matrix parameters found - no notification sent"
else
/usr/bin/curl -X POST -H 'Content-type: application/json' --data "{\"msgtype\":\"m.text\", \"body\":\"$(params.message)\"}" "https://$(params.endpoint)/_matrix/client/r0/rooms/$(params.room)/send/m.room.message?access_token=$TOKEN"
fi
env:
- name: TOKEN
valueFrom:
secretKeyRef:
name: $(params.matrix-secret)
key: token
6 changes: 6 additions & 0 deletions task/notify-matrix/0.1/samples/matrix-access-token.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
kind: Secret
apiVersion: v1
metadata:
name: matrix-access-token
stringData:
token: {OAuth token for the bot app}
20 changes: 20 additions & 0 deletions task/notify-matrix/0.1/samples/notify-matrix-run.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
name: notify-matrix-run
spec:
params:
- name: matrix-secret
value: matrix-access-token
- name: room
value: "!yKXXPqFwfCOTipZMxp:matrix.org"
- name: endpoint
value: matrix.org
- name: message
value: hello
resources: {}
serviceAccountName: default
taskRef:
kind: Task
name: notify-matrix
timeout: 1h0m0s
4 changes: 4 additions & 0 deletions task/notify-matrix/OWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
approvers:
- sherine-k
reviewers:
- sherine-k

0 comments on commit b93eaaf

Please sign in to comment.