This project hosts a collection of our internal bots which are little useful tools which should make our work easier or automate repeating tasks.
- Node.js, we use Node.js 14
- Serverless Framework
- AWS Account
The project uses the Serverless Framework to create lambda functions (serverless functions) on AWS.
Please read the documentation guide for Serverless with AWS and make sure that you have completed the necessary steps.
Add the AWS_ACCESS_KEY_ID
and AWS_SECRET_ACCESS_KEY
to the environment variables in Gitlab (Settings > CI/CD > Variables).
To run the bots locally you first have to install all dependencies
$ npm install
Some Microbot functions depend on external services, e.g. Slack or Moco. Please consult the individual documentation (below) for the required setup and further information.
To then invoke the function locally you have to use
npm run invoke --function=<function-name>
If you want to invoke your function with a payload create a json file in the payloads directory and invoke your function with
npm run invoke --function=<function-name> -- -p ./payloads/<your-json-file.json>
For more information on that visit serverless invoke local
For deployment use
$ serverless deploy
If you want to get more information about the deployment click here.
To get a more detailed description of each bot, click on one of them below ⬇️
Bot | Description |
---|---|
Birthday | reminds us when its someone's birthday |
Completion Notice | facilitates the preparation of a completion notice |
Contact request | automated forwarding of a contact request |
Event Application | automated forwarding of a event application |
Gitlab Issue Reminder | reminds you of the open issues of a specific project |
Mail Signature Bot | generates a personalized mail signature |
Private Channel | opens a private Slack channel |
Vacation Handover | opens Gitlab issues for oncoming vacations |
Lock Project | locks a moco project |
Short Mail | helps you create a short letter faster |
To test our bots we have written unit tests with jest. To run them use this command:
npm run test