Skip to content

connorads/lockbot

Repository files navigation

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:

  • /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.

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 for development setup instructions.

Security

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