Codeberg documentation content
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.8 KiB

[{key MatrixIntegration} {title Integrating with Matrix} {parent Integrations}]

This article will guide you through integrating Codeberg with Matrix, allowing repo updates to be automatically broadcast to your project's Matrix room.

Create a new Matrix account

To set up the Matrix integration, it is recommended that you create a new account dedicated to broadcasting your repo updates. This will act as a bot account. You can create an account on your preferred Matrix server.

Getting an access token

You will need an access token to give Codeberg access to send updates from your dedicated Matrix account. Here's how to do it on the Element web client.

  1. Log in to the Element web client in a private/incognito browser window, with the Matrix account you created earlier.
  2. Click on your account name in the top-left corner, then click on All Settings in the dropdown.
  3. Optionally, you can set a display name and a profile picture for the account here.
  4. Navigate to the Help & About tab on the left.
  5. Scroll to the bottom and click on the Access Token dropdown in the advanced section.
  6. Copy the access token that appears to a safe place.
  7. Do not log out of Element. This will invalidate your access token. Instead, you can simply close your private/incognito browser.

Alternatively, you can get an access token directly from the Matrix API. Read more at Matrix's documentation.

Connecting your repo to your Matrix using webhooks

Now we will connect the Matrix bot to your Codeberg repository. You will need admin permissions for the repo.

  1. In a web browser, go to your repo and click on the Settings button on the top right.

  2. Navigate to the Webhooks settings tab.

  3. Click on the Add Webhook button and select Matrix.

  4. Here are explanations for some key fields:

    • Homeserver URL: for example
    • Room ID: for example ! You can find this on Element in the Advanced tab for the room settings.
    • Access token: paste the access token you got earlier.
    • Message type: m.text is the most basic type of plaintext message, whereas m.notice is intended for bots and behaves slightly differently.

Add your webhook, then click on the webhook URL. At the bottom now, there will be a Test Delivery button. Click this, and you will receive a message on your Matrix room!