{"id":48092797,"url":"https://github.com/connorads/lockbot","last_synced_at":"2026-04-04T15:33:04.664Z","repository":{"id":38755798,"uuid":"259147326","full_name":"connorads/lockbot","owner":"connorads","description":"🔒 Coordinate use of your team's shared resources, in Slack 🤝","archived":false,"fork":false,"pushed_at":"2026-02-10T12:51:30.000Z","size":3415,"stargazers_count":60,"open_issues_count":55,"forks_count":9,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-02-10T17:14:40.264Z","etag":null,"topics":["aws","aws-lambda","bolt-js","dynamodb","mutex","nodejs","serverless","serverless-framework","shared","slack","slack-bot","typescript"],"latest_commit_sha":null,"homepage":"https://lockbot.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/connorads.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-04-26T22:34:00.000Z","updated_at":"2025-08-14T20:06:55.000Z","dependencies_parsed_at":"2023-11-15T19:26:18.798Z","dependency_job_id":"9a7be78a-c561-4b60-8fc4-030e809219cf","html_url":"https://github.com/connorads/lockbot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/connorads/lockbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/connorads%2Flockbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/connorads%2Flockbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/connorads%2Flockbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/connorads%2Flockbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/connorads","download_url":"https://codeload.github.com/connorads/lockbot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/connorads%2Flockbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31403959,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","aws-lambda","bolt-js","dynamodb","mutex","nodejs","serverless","serverless-framework","shared","slack","slack-bot","typescript"],"created_at":"2026-04-04T15:32:54.787Z","updated_at":"2026-04-04T15:33:04.000Z","avatar_url":"https://github.com/connorads.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://lockbot.app\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/10026538/84210020-8ffde000-aaaf-11ea-9568-e579129f4f8a.png\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# Lockbot\n\n![Node.js CI](https://github.com/connorads/lockbot/workflows/Node.js%20CI/badge.svg)\n[![Coverage Status](https://coveralls.io/repos/github/connorads/lockbot/badge.svg?branch=master)](https://coveralls.io/github/connorads/lockbot?branch=master)\n[![Join Slack workspace](https://img.shields.io/badge/slack-join%20workspace-%234A154B)](https://join.slack.com/t/connorads-lockbot/shared_invite/zt-ewpng7t1-Fm78z1SMinWuG_~0DvXa8A)\n![MIT License](https://img.shields.io/github/license/connorads/lockbot)\n\n**Demo**: [lockbot.app](https://lockbot.app)\n\n\u003e Coordinate use of your team's shared resources, in Slack 🤝\n\nLockbot only lets each shared resource be locked by one person at a time - like a Mutex 🔒\n\n_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._\n\n⚠ Lockbot cannot physically prevent naughty or unaware users from using a resource whilst it's locked by someone else.\nYour team must agree to use Lockbot whenever they start or stop using a shared resource.\n\n[![Add Lockbot to Slack](https://platform.slack-edge.com/img/add_to_slack.png)](https://lockbot.app)\n\n## How to use Lockbot\n\nLockbot has three main commands:\n\n- `/locks` Get locked resources list 📜\n- `/lock [resource-name]` Lock a resource 🔒\n- `/unlock [resource-name] [options]` Unlock a resource 🔓\n  - Set `[options]` to `force` if you need to unlock when someone is away on holiday ⛱\n\nEach Slack channel has its own list of resources.\n\nWhen someone successfully locks or unlocks a resource, the channel is notified.\n\n## Lockbot API\n\nIt is possible to view, create and delete locks via the Lockbot HTTP API.\n\nTo explore the API take a look at the [OpenAPI spec](src/handlers/swagger/openapi.json).\n\nThe API is secured using basic access authentication.\n\n- `/lbtoken` Learn about Lockbot API access tokens 💡\n- `/lbtoken new` Generate a new Lockbot API access token 🎫\n\nEach access token is scoped to the Slack `team` and `channel` they were created in and to the `user` who created them.\n\n## Contributing\n\nDon't be a stranger, contributions are welcome ✨\n\nSee the [Contributing Guide](https://github.com/connorads/lockbot/blob/master/CONTRIBUTING.md) for development setup instructions.\n\n- Give this repo a Star ⭐️\n- Ask questions and share your feedback in [issues](https://github.com/connorads/lockbot/issues)\n- Create a PR or issue for bugs, enhancements, ideas and suggestions\n- Join the [Lockbot Community Slack workspace](https://join.slack.com/t/connorads-lockbot/shared_invite/zt-ewpng7t1-Fm78z1SMinWuG_~0DvXa8A)\n- Contact [@connorads](https://connoradams.co.uk)\n\n## Security\n\nIf you discover a security vulnerability, please send an e-mail to security@lockbot.app\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconnorads%2Flockbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconnorads%2Flockbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconnorads%2Flockbot/lists"}