Bots

For the full list of available bots and to get help, join #bots:mbot.ethz.ch. New bots and updates will be posted in this room.

To manage bots /invite or /kick them like regular users. They respond to !commands or react to patterns or words.

Most of them support encryption, but it can be unreliable. It is probably a bad idea anyway to include a bot in your encrypted conversations.

Maubot

Most of them are documented on the maubot github page or on t2bot.io (a public integration network for Matrix).

Gitlab

A bot for showing Gitlab activity in your Matrix room and for interacting with your Gitlab repositories.

Getting notifications in your room

Apply the following steps:

  1. Invite gitlab (@gitlab:mbot.ethz.ch) to your room.
  2. Log in to Gitlab and open your repository's webhooks settings.
  3. For the URL, put https://mbot.ethz.ch/_matrix/maubot/plugin/gitlab/webhooks?room=!your_room_id. Your room ID can be found on the "Advanced" tab of your room settings in Element.
  4. For the Secret Token, put mbot
  5. Check off the triggers you'd like to have in your room and click "Add webhook". Although not all are handled, many do result in notifications to your room.

To later remove the bot from your room, delete the webhook in Gitlab and kick the bot from the room.

Managing your repositories with the bot

The bot has several commands to do things like create issues which require access to your Gitlab account.

  1. Invite gitlab (@gitlab:mbot.ethz.ch) to a private chat.
  2. Log in to Gitlab and go to your account settings. Once there, click "Access Tokens" on the left side.
  3. Generate a new access token with a name and optional expiration date. Ensure the token has all available scopes assigned. These are required so that it can create issues and such on your behalf.
  4. In your private chat with the bot, say !gitlab login your_access_token
  5. If successful, say !gitlab help to see what the bot can do.

Reminders

  • Supports recurring reminders, cron-style reminders, room reminders

Usage

  • Invite reminder (@reminderbot:mbot.ethz.ch) to your room
  • Type !help reminders or have a look at the readme
  • For room reminders set the appropriate power level (Moderator)

Community Invite

A bot that tracks community - and community room - membership based on a "reception" room.

Invite your users to one room, once they accept they'll automatically be invited to the linked community, and all rooms that are part of the community.

It only handles invites for now (no disinvites, kicks, bans), see readme.

Initial Setup

  • Create a new "reception" room with end-to-end encryption disabled
  • Invite community invite (@invite:mbot.ethz.ch) to the "reception" room
  • Type !invite help for a list of available commands
  • Invite the bot to your community - and all community rooms
  • Set the appropriate power level (Moderator) in all rooms
  • In the "reception" room link it to your community: !invite link +community:example.com
  • The bot will then join your community and most probably complain about missing admin rights
  • Optional: Ask your homeserver admin to give community admin rights to the bot

Usage

  • Invite someone/many to the "reception" room
  • As soon as they accept your invite, the bot will send invitations for all tracked rooms (and community if possible)

Notes

  • To re-send invites to a user: kick + invite the user in the "reception" room
  • This bot fills the gap for a missing feature, until (hopefully) communities v2 will make it obsolete

Stickers

Create your own sticker packs to share with others (or to keep to yourself). This requires an integration manager which supports custom sticker packs.

Usage

  • Invite stickers (@stickers:mbot.ethz.ch) to a private chat.
  • Say !stickers newpack and follow the directions.
  • Open the integration manager and edit your sticker packs.
  • Paste the URL the bot gave you into the "Add Sitcker Packs" box.
  • Click "Add Stickerpack"