releasetools/Advisory lock service for CI/CD pipelines
Prevents race conditions in CI workflows by ensuring mutual exclusion: only one job can access shared resources concurrently
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit May 17, 2026
- License
- Apache 2.0
Pinned Snippet
uses: releasetools/mutex@c43feb89589aa9acd7b35652ab0338fe04b17126 # v1.0.1tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| GITHUB_TOKEN | GitHub token used to authenticate API requests. Pass it from "secrets.GITHUB_TOKEN". Can also be specified as an environment variable. | no | — |
| DATABASE_URL | Database credentials for storing the locks. | no | — |
| command | The command to execute: 'lock' or 'release'. | yes | — |
| id | An unique identifier for the lock. | yes | — |
| reason | Optional: Why was the lock acquired in the first place? | no | "" |
| expiration | Defines the lock's expiration. Defaults to 60 seconds. | no | 60 |
| max-wait | The maximum time to wait for a lock, in seconds. Use -1 to wait for a time equal to the lock duration - this is the default behavior. | no | -1 |
| poll-interval | The time to wait between retrying to acquire a lock, in seconds. Defaults to every 10 seconds. | no | 10 |
| auto-release | Decides if the lock should be automatically released at the end of the job. Defaults to true. | no | true |
| disable-pr-updates | Decides if a status update comment should be posted on a PR when the lock is acquired or released. Defaults to true. | no | false |
| SLACK_BOT_TOKEN | Specify a Slack bot token (xoxb-...) to post updates to a channel. Needs the `chat:write` permission. Can also be passed as an environment variable. If not specified, no Slack notifications will be sent. | no | — |
| slack-channel | The channel ID where to post Slack notifications. Required if SLACK_BOT_TOKEN is specified. | no | — |
Outputs
| name | description |
|---|---|
| status | The status of the action: 'locked', 'released', 'failed', or 'skipped'. |