releasetools/mutex
Guard a shared resource with a distributed lock, using the mutex CLI
Guard a shared resource with a distributed lock, using the mutex CLI over its PostgreSQL lock table. Use when the user asks to lock, unlock, guard, serialise or hold something while a step runs - a deploy, a migration, a staging environment, a release - or asks who holds a lock, to extend one, or to hand one back. Triggers on: lock staging, take a lock, guard this deploy, unlock, renew the lock, extend the lock, who holds the lock, mutex status, mutex list, mutex prune. The user decides which steps need guarding; wait to be asked.
Decide which lock an operation takes and what that lock is called, before any lock exists. Use when the user asks to name a lock, wants the lock id for a resource, asks which lock an operation needs or whether it needs one at all, or asks what something would be called - an issue, a PR, a branch, an environment - before locking a shared resource. Triggers on: name a lock, lock id, which lock, what would this be called, before locking a shared resource. Taking, renewing and releasing locks belongs to the mutex skill, not here.