connorads / lockbot

🔒 Coordinate use of your team's shared resources, in Slack 🤝
https://lockbot.app
MIT License
57 stars 7 forks source link
aws aws-lambda bolt-js dynamodb mutex nodejs serverless serverless-framework shared slack slack-bot typescript

Lockbot

Node.js CI Coverage Status Join Slack workspace MIT License

Demo: lockbot.app

Coordinate use of your team's shared resources, in Slack 🤝

Lockbot only lets each shared resource be locked by one person at a time - like a Mutex 🔒

Example use case: One person wants to deploy and test on a shared staging environment without someone else deploying and overwriting their deployed code, so they use /lock staging-env to lock the staging environment and notify the channel.

⚠ Lockbot cannot physically prevent naughty or unaware users from using a resource whilst it's locked by someone else. Your team must agree to use Lockbot whenever they start or stop using a shared resource.

Add Lockbot to Slack

How to use Lockbot

Lockbot has three main commands:

Each Slack channel has its own list of resources.

When someone successfully locks or unlocks a resource, the channel is notified.

Lockbot API

It is possible to view, create and delete locks via the Lockbot HTTP API.

To explore the API take a look at the OpenAPI spec.

The API is secured using basic access authentication.

Each access token is scoped to the Slack team and channel they were created in and to the user who created them.

Contributing

Don't be a stranger, contributions are welcome ✨

See the Contributing Guide for development setup instructions.

Security

If you discover a security vulnerability, please send an e-mail to security@lockbot.app