{"id":16228734,"url":"https://github.com/bibendi/twinkle","last_synced_at":"2025-07-29T07:31:54.567Z","repository":{"id":5990180,"uuid":"54407151","full_name":"bibendi/twinkle","owner":"bibendi","description":"Notification service sending messages to Telegram.","archived":false,"fork":false,"pushed_at":"2022-12-14T08:18:22.000Z","size":31459,"stargazers_count":7,"open_issues_count":9,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-03T03:12:42.547Z","etag":null,"topics":["notifications","ruby","telegram"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/bibendi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-03-21T16:56:04.000Z","updated_at":"2023-08-04T10:05:03.000Z","dependencies_parsed_at":"2023-01-13T13:47:23.715Z","dependency_job_id":null,"html_url":"https://github.com/bibendi/twinkle","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/bibendi/twinkle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bibendi%2Ftwinkle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bibendi%2Ftwinkle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bibendi%2Ftwinkle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bibendi%2Ftwinkle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bibendi","download_url":"https://codeload.github.com/bibendi/twinkle/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bibendi%2Ftwinkle/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267645958,"owners_count":24120902,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"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":["notifications","ruby","telegram"],"created_at":"2024-10-10T12:56:22.070Z","updated_at":"2025-07-29T07:31:53.917Z","avatar_url":"https://github.com/bibendi.png","language":"Ruby","readme":"# Twinkle\n\n[![Code Climate](https://codeclimate.com/github/bibendi/twinkle/badges/gpa.svg)](https://codeclimate.com/github/bibendi/twinkle)\n[![Test Coverage](https://codeclimate.com/github/bibendi/twinkle/badges/coverage.svg)](https://codeclimate.com/github/bibendi/twinkle/coverage)\n[![Build Status](https://travis-ci.org/bibendi/twinkle.svg?branch=master)](https://travis-ci.org/bibendi/twinkle)\n[![DockerHub Status](https://img.shields.io/docker/stars/zendesk/samson.svg)](https://hub.docker.com/r/bibendi/twinkle)\n[![Dependency Status](https://gemnasium.com/bibendi/twinkle.svg)](https://gemnasium.com/bibendi/twinkle)\n\nNotifications service.\n\nAvailable transports: Telegram\n\n## Usage\n\n#### Send message\n\n`curl -X POST --data \"token=user-token\u0026channel=sadness\u0026message=Site+is+Down\" http://twinkle.docker/messages`\n\nSend message with JSON post-vars\n`curl -X POST --data \"token=user-token\u0026channel=sadness\u0026message=json-%{a.b}\u0026json_vars=alert\u0026alert='{\"a\": {\"b\": 1}}'\" http://twinkle.docker/messages`\n\n#### Show Resque statistics\n\nhttp://twinkle.docker/resque_web\n\n## Installation\n\n### Transports\n\n#### Telegram bot\n\nThe first step in creating our bot is to talk to the https://telegram.me/BotFather and get the token. Let’s create our bot using the command `/newbot`. Now we have to register for a username, note: it must end in bot, If our bot is named `TetrisBot` the username must be `tetrisbot`.\n\nIn order to get the group chat id, do as follows:\n* Add the Telegram BOT to the group.\n* Get the list of updates for your BOT: `https://api.telegram.org/bot\u003cYourBOTToken\u003e/getUpdates`\n\n### DIP\n\n#### Requirements\n\n* Docker \u003e= 1.12 https://www.docker.com/\n* Docker Compose \u003e= 1.9.0 https://github.com/docker/compose/releases\n* DIP \u003e= 2.0.0 https://github.com/bibendi/dip\n\n#### Setup and Run\n\n```sh\n  dip dns up\n  dip nginx up\n  dip provision\n  dip rails s\n  dip rails c\n  dip compose down\n\n  RAILS_ENV=test dip rspec\n  RAILS_ENV=test dip compose down\n```\n\nCheck http://twinkle.docker/\n\n## Roadmap\n\n* Add transports: Email, SMS\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbibendi%2Ftwinkle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbibendi%2Ftwinkle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbibendi%2Ftwinkle/lists"}