https://github.com/connorads/lockbot
🔒 Coordinate use of your team's shared resources, in Slack 🤝
https://github.com/connorads/lockbot
aws aws-lambda bolt-js dynamodb mutex nodejs serverless serverless-framework shared slack slack-bot typescript
Last synced: 2 days ago
JSON representation
🔒 Coordinate use of your team's shared resources, in Slack 🤝
- Host: GitHub
- URL: https://github.com/connorads/lockbot
- Owner: connorads
- License: mit
- Created: 2020-04-26T22:34:00.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2026-02-10T12:51:30.000Z (about 2 months ago)
- Last Synced: 2026-02-10T17:14:40.264Z (about 2 months ago)
- Topics: aws, aws-lambda, bolt-js, dynamodb, mutex, nodejs, serverless, serverless-framework, shared, slack, slack-bot, typescript
- Language: TypeScript
- Homepage: https://lockbot.app
- Size: 3.26 MB
- Stars: 60
- Watchers: 2
- Forks: 9
- Open Issues: 55
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Lockbot

[](https://coveralls.io/github/connorads/lockbot?branch=master)
[](https://join.slack.com/t/connorads-lockbot/shared_invite/zt-ewpng7t1-Fm78z1SMinWuG_~0DvXa8A)

**Demo**: [lockbot.app](https://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.
[](https://lockbot.app)
## How to use Lockbot
Lockbot has three main commands:
- `/locks` Get locked resources list 📜
- `/lock [resource-name]` Lock a resource 🔒
- `/unlock [resource-name] [options]` Unlock a resource 🔓
- Set `[options]` to `force` if you need to unlock when someone is away on holiday ⛱
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](src/handlers/swagger/openapi.json).
The API is secured using basic access authentication.
- `/lbtoken` Learn about Lockbot API access tokens 💡
- `/lbtoken new` Generate a new Lockbot API access token 🎫
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](https://github.com/connorads/lockbot/blob/master/CONTRIBUTING.md) for development setup instructions.
- Give this repo a Star ⭐️
- Ask questions and share your feedback in [issues](https://github.com/connorads/lockbot/issues)
- Create a PR or issue for bugs, enhancements, ideas and suggestions
- Join the [Lockbot Community Slack workspace](https://join.slack.com/t/connorads-lockbot/shared_invite/zt-ewpng7t1-Fm78z1SMinWuG_~0DvXa8A)
- Contact [@connorads](https://connoradams.co.uk)
## Security
If you discover a security vulnerability, please send an e-mail to security@lockbot.app