{"id":41380493,"url":"https://github.com/ianfoo/github-stargazer","last_synced_at":"2026-01-23T10:56:45.333Z","repository":{"id":57598680,"uuid":"149527594","full_name":"ianfoo/github-stargazer","owner":"ianfoo","description":"Watch a GitHub repo's number of stars, maybe get a back massage.","archived":false,"fork":false,"pushed_at":"2018-09-28T08:32:09.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-20T14:28:41.624Z","etag":null,"topics":["github","golang","sms","twilio"],"latest_commit_sha":null,"homepage":"","language":"Go","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/ianfoo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-20T00:18:24.000Z","updated_at":"2024-06-20T14:28:41.625Z","dependencies_parsed_at":"2022-08-30T01:52:13.346Z","dependency_job_id":null,"html_url":"https://github.com/ianfoo/github-stargazer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ianfoo/github-stargazer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ianfoo%2Fgithub-stargazer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ianfoo%2Fgithub-stargazer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ianfoo%2Fgithub-stargazer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ianfoo%2Fgithub-stargazer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ianfoo","download_url":"https://codeload.github.com/ianfoo/github-stargazer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ianfoo%2Fgithub-stargazer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28689102,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T05:48:07.525Z","status":"ssl_error","status_checked_at":"2026-01-23T05:48:07.129Z","response_time":59,"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":["github","golang","sms","twilio"],"created_at":"2026-01-23T10:56:44.686Z","updated_at":"2026-01-23T10:56:45.320Z","avatar_url":"https://github.com/ianfoo.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# github stargazer 🤩  [![Build Status](https://travis-ci.org/ianfoo/github-stargazer.svg?branch=master)](https://travis-ci.org/ianfoo/github-stargazer)\n\nAll in the hopes of an [unsolicited back\nmassage](https://twitter.com/matryer/status/1042270822923030528) from [Mat\nRyer](https://github.com/matryer) when\n[BitBar](https://github.com/matryer/bitbar) hits 10,000 stargazers.\n\n### Really though, what is it?\n\nThis will watch any GitHub repo for any number of stars, and send an SMS when\nthe target is reached.\n\n### Is that all it does?\n\nYes. Right now, anyway.\n\n### Um, ok.\n\nIt's cool.\n\n### Really?\n\nShut up.\n\n## Fine. How do I use it?\n\nFirst, get it. You'll need [Go](https://golang.org).\n```bash\n$ go get github.com/ianfoo/github-stargazer/...\n```\n\nYou need a [Twilio](https://twilio.com) account so that you can send SMS.  A\n[trial\naccount](https://support.twilio.com/hc/en-us/articles/223136107-How-does-Twilio-s-Free-Trial-work-)\nwill work fine. After you have that, set the following environment variables.\n\n| Variable              | Set to                                            |\n|-----------------------|---------------------------------------------------|\n| `TWILIO_ACCOUNT_SID`  | Your Twilio Account SID                           |\n| `TWILIO_AUTH_TOKEN`   | Your secret Twilio auth token                     |\n| `TWILIO_PHONE_NUMBER` | Your Twilio phone number that should send the SMS |\n\nThen, run it.\n```bash\n$ github-stargazer -phone 8005551212 -repo matryer/bitbar -target 9999\n```\n\nIf you end up getting that unsolicited back massage, though, I'm gonna be\nreally cross with you.\n\n## Complaints and how this could be much better\n\n### There are no tests!\n\nI know, I know. This isn't production quality code, and I don't actually\nrecommend you (or I) write code in this fashion. Tests should be developed at\nleast in step with the base functionality. It promotes writing simpler, more\ntestable code, especially if you write the tests first. I dove in head first,\nand I'm sorry. In having performed a bit of refactoring, I can tell you that\nit would have been a little easier to get things back to a working state if\nI'd had tests to run. I was going to write tests as part of this refactor,\nbut it's getting really late and it's only Wednesday. Well, Thursday morning\nnow.\n\nIn any case, maybe this will become more generally useful at some point, and\nhave thousands of stars, but at this point it was just a diversion and an\nexcuse to poke around Twilio and GitHub's APIs.  It could be improved in many\nways, some of which I am aware of right now, and others I'm sure I would never\nthink of.\n\n### What ways can you think of that it could be improved right now?\n\n* Some testing.\n* Give error handling some actual thought and improve the slapdash job done\n  here.\n* Better logging: forcing starwatcher package to use zap.SugaredLogger is too\n  specific?\n* Separate the orthogonal concerns of GitHub and Twilio interaction.\n* Follow-up checking on Twilio message status/delivery.\n* Graceful shutdown.\n* Other message transports, e.g., FB Messenger, Twitter.\n* Support more than just stargazers.\n\nIf you have other ideas and are so motivated, file issues and/or PRs!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fianfoo%2Fgithub-stargazer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fianfoo%2Fgithub-stargazer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fianfoo%2Fgithub-stargazer/lists"}