{"id":34671608,"url":"https://github.com/dy0gu/slack-ring-bot","last_synced_at":"2026-04-19T16:03:35.433Z","repository":{"id":324406716,"uuid":"1096739859","full_name":"dy0gu/slack-ring-bot","owner":"dy0gu","description":"Slack bot that posts Ring camera recordings to a channel whenever someone presses the doorbell.","archived":false,"fork":false,"pushed_at":"2025-11-15T16:58:26.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-26T19:42:56.977Z","etag":null,"topics":["ring","slack"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/dy0gu/slack-ring-bot","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dy0gu.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"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},"funding":{"github":"dy0gu","patreon":"dy0gu"}},"created_at":"2025-11-14T21:57:44.000Z","updated_at":"2025-11-15T16:58:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dy0gu/slack-ring-bot","commit_stats":null,"previous_names":["dy0gu/slack-ring-bot"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/dy0gu/slack-ring-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dy0gu%2Fslack-ring-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dy0gu%2Fslack-ring-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dy0gu%2Fslack-ring-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dy0gu%2Fslack-ring-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dy0gu","download_url":"https://codeload.github.com/dy0gu/slack-ring-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dy0gu%2Fslack-ring-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32012789,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ring","slack"],"created_at":"2025-12-24T19:58:16.658Z","updated_at":"2026-04-19T16:03:35.428Z","avatar_url":"https://github.com/dy0gu.png","language":"Python","funding_links":["https://github.com/sponsors/dy0gu","https://patreon.com/dy0gu"],"categories":[],"sub_categories":[],"readme":"# Ring Ring 🔔💬\n\nSlack bot that listens to Ring doorbell events and automatically sends video recordings to your Slack team channel. Built with the unofficial (reverse-engineered) [python-ring-doorbell](https://github.com/python-ring-doorbell/python-ring-doorbell) API library.\n\n**NOTE:** At the moment you need to have at least a basic Ring subscription (the cheapest plan) assigned to the device you want to get video clips from. Otherwise, the bot won't be able to retrieve any recordings.\n\n## Development 🛠️\n\n- ### Requirements 📋\n\n  - Python ([version](pyproject.toml#L4))\n\n- ### Setup ⚙️\n\n  - Clone the repository and open a terminal **inside** it.\n\n  - Install the dependencies:\n\n    ```shell\n    # Creating a virtual environment is recommended before installing any project dependencies!\n    pip install .\n    ```\n\n  - Create a `.env` file based on the [`.env.example`](.env.example) file.\n\n  - Be aware that while Ring's authentication gives some leeway for code validity, you'll have to quickly start the bot after\n  setting up the Ring OTP environment variable. If you don't have Ring 2FA enabled you **still** need to set this variable, but it can be any value, you won't need to worry about it.\n\n  - Start the app:\n\n    ```shell\n    python src/bot.py\n    ```\n\n  - Alternatively, you can also force the build property of the provided `docker-compose.yaml` to run, allowing you to test the\n    Docker setup in development:\n\n    ```shell\n    docker compose up --build\n    ```\n\n- ### Tooling 🧰\n\n  - Ruff is used as a linter and formatter:\n\n    ```shell\n    pip install .[check]\n    ruff check --fix\n    ruff format\n\n    # To automatically lint and format on every commit install the pre-commit hooks:\n    pre-commit install\n\n    # When using pre-commit hooks, commits may fail if files with errors are checked.\n    # Changed files must be added to the staged area and commited again to apply fixes.\n    # If you run into any issues just manually run the linter commands above to address them.\n    ```\n\n## Deployment 🚀\n\nThe bot is designed to run continuously as a Docker container.\n\n- Supply the [required environment variables](.env.example) when running the container, just like in development.\n\n- Start the container, e.g using the provided `docker-compose.yaml`:\n\n  ```shell\n  docker compose up\n  ```\n\n- Serve it using your server configuration of choice!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdy0gu%2Fslack-ring-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdy0gu%2Fslack-ring-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdy0gu%2Fslack-ring-bot/lists"}