{"id":15405684,"url":"https://github.com/zverok/any_good","last_synced_at":"2025-09-14T20:14:19.708Z","repository":{"id":56842453,"uuid":"118090629","full_name":"zverok/any_good","owner":"zverok","description":"Is this gem any good?","archived":false,"fork":false,"pushed_at":"2019-04-18T20:29:00.000Z","size":118,"stargazers_count":117,"open_issues_count":4,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-09-04T07:27:47.857Z","etag":null,"topics":["gems","quality","quality-estimation","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/zverok.png","metadata":{"files":{"readme":"README.md","changelog":"Changelog.md","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-01-19T07:11:12.000Z","updated_at":"2025-05-12T06:41:35.000Z","dependencies_parsed_at":"2022-08-29T07:42:18.330Z","dependency_job_id":null,"html_url":"https://github.com/zverok/any_good","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/zverok/any_good","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zverok%2Fany_good","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zverok%2Fany_good/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zverok%2Fany_good/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zverok%2Fany_good/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zverok","download_url":"https://codeload.github.com/zverok/any_good/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zverok%2Fany_good/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275160370,"owners_count":25415767,"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-09-14T02:00:10.474Z","response_time":75,"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":["gems","quality","quality-estimation","ruby"],"created_at":"2024-10-01T16:18:14.032Z","updated_at":"2025-09-14T20:14:19.685Z","avatar_url":"https://github.com/zverok.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Gem Version](https://badge.fury.io/rb/any_good.svg)](http://badge.fury.io/rb/any_good)\n\n## What's this?\n\nA thing to quickly evaluate Ruby gem maturity and answer \"Is it any good?\". Like this:\n\n![](https://raw.githubusercontent.com/zverok/any_good/master/doc/example.png)\n\nJust a report of some numbers and facts from rubygems.org and GitHub repo of the gem in\nquestion, to understand how risky it would be to use it.\n\n## Usage\n\n```\n$ gem install any_good\n$ any_good \u003cgem_name\u003e\n```\n\n## Why?\n\nI find myself constantly repeating this process for some new gems I spotted somewhere: going to\ntheir gem page and repo page to understand how well it maintained or is it abandoned, and is it\nsomething new that still have to get its ways and popularity.\n\nThis gem is just a quick one-evening experiment on whether it can be automated in a helpful manner.\n\n## What are the colors? Are you criticizing gems?..\n\nThe colors (green-yellow-red) are just based on my own subjective \"thresholds\". Maybe they could become\nconfigurable in future versions, if any. \"Yellow\" and \"red\" aren't, in fact, \"bad\", it is \"point\nof attention\" when judging whether you'll give a chance to some gem, and how important are they,\ndepends on the situation.\n\nThe colors DO NOT mean to \"score\" the gems (this gem is bad) or to compare \"which gem is better\",\nbut the typically DO give some insights on the gem's current status in the community.\n\nThose insights aren't that accurate: for example, [tzinfo](https://rubygems.org/gems/tzinfo)\nis used by literally everyone, yet its GitHub repo has just ~200 stars. For another,\n[inflecto](https://rubygems.org/gems/inflecto) is explicitly abandoned by its author, the last version\nwas released four years ago, yet it is robust and widely used.\n\n## GitHub?\n\nA large part of stats is taken from gem's GitHub repo.\n\nYes, the gem is not required to have the link to sources published. Yes, there are gems with sources\non GitLab, BitBucket, or even SourceForge, God forbid. But again, as with colors, my _subjective_\nexperience says me to check its GitHub if it is accessible. So the `any_good` does.\n\nBTW, `any_good` connects to GitHub API anonymously, and anonymous connections are subject to harsh\nrate limiting, so if you use it a lot through one day, you may want to provide `GITHUB_ACCESS_TOKEN`\nenvironment variable (tokens are obtained [here](https://github.com/settings/tokens)).\n\n## Is it any good?\n\nWell, it is a quick one-evening experiment. So, no tests, no docs except this README, no config,\nand just hard-coded thresholds. But it works for me.\n\n## Who are you anyways?\n\nJust a humble [@zverok](http://zverok.github.io).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzverok%2Fany_good","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzverok%2Fany_good","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzverok%2Fany_good/lists"}