This bot connects your team to the outside and makes it addressable.
Go to file
2023-10-09 09:19:20 +02:00
src/teams_bot pyinfra: this order is prettier with most deployments 2023-10-09 09:19:20 +02:00
tests added pickleDB to store crew.id #2 2023-10-08 10:32:44 +02:00
.gitignore added pickleDB to store crew.id #2 2023-10-08 10:32:44 +02:00
LICENSE added necessary project files 2023-10-07 08:50:04 +02:00
pyproject.toml added necessary project files 2023-10-07 08:50:04 +02:00
README.md consistent example email address 2023-10-09 08:07:14 +02:00
setup.cfg pyinfra: started pyinfra deploy.py script 2023-10-09 08:04:47 +02:00

Teams Bot

This bot connects your team to the outside and makes it addressable.

Configure this bot with your team address (e.g. helpdesk@example.org), and add all your team members to the crew. Then, every time an outsider writes to your team address, the bot opens a new relay group with all of you; you can use the relay group to discuss the request in private and when you have come to a conclusion, answer the request. The bot will forward the answer to the outsider in the name of the team, hiding the identities of the team members.

Setup

To install this bot, run:

git clone https://git.0x90.space/missytake/teams-bot
cd teams-bot
pip install .

Now you can configure it with an email address you want to use as a team:

teams-bot init --email helpdesk@example.org --password p455w0rD

This command will show a QR code; scan it with Delta Chat to become part of the "team", the verified group which manages the Teams Bot.

Now to run it, simply execute:

teams-bot init --email helpdesk@example.org --password p455w0rD

The bot only works as long as this command is running. Read more about running bots on bots.delta.chat.

Deploy with pyinfra

If you use pyinfra to manage a server, you can deploy this bot with it. Just import it into your deploy.py file like this:

from teams_bot.pyinfra import deploy_teams_bot

deploy_teams_bot(
    unix_user='root',                   # an existing UNIX user (doesn't need root or sudo privileges)
    bot_email='helpdesk@example.org',   # the email address your team wants to use
    bot_passwd='p4ssw0rd',              # the password to the email account
)

After you deployed it, you need to do two steps manually:

First, login to the user with ssh and run export $(cat ~/.env | xargs) && ~/.local/lib/teams-bot.venv/bin/teams-bot init to initialize the bot, create the crew, and join the crew.

Then run systemctl --user start teams-bot to start the bot and keep it running in the background.

You can view the log output with journalctl --user -fu teams-bot to confirm that it works.

Development Environment

To get started with developing, run:

python3 -m venv venv
. venv/bin/activate
pip install pytest tox black pytest-xdist
pip install -e .
DCC_NEW_TMP_EMAIL='https://ci.testrun.org/new_email?t=1h_2364962873z' tox